1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-06-20 03:29:32 +00:00

Changed control flow graph to print procedure signatures.

This commit is contained in:
jespergravgaard 2019-09-18 23:00:30 +02:00
parent 6e767862e8
commit 51d1e6f41f
1085 changed files with 10020 additions and 3 deletions

View File

@ -163,14 +163,11 @@ public class ControlFlowBlock implements Serializable {
ControlFlowGraph graph = program.getGraph();
StringBuffer out = new StringBuffer();
// TODO: Print signature for procedures (requires updating all tests data)
/*
if(isProcedureEntry(program)) {
Procedure procedure = (Procedure) program.getScope().getScope(scope);
out.append("\n");
out.append(procedure.toString(program)+"\n");
}
*/
out.append(label.getFullName() + ":");
out.append(" scope:[" + this.scope.getFullName() + "] ");

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] (byte) main::b#0 ← (byte) 0
to:main::@1

View File

@ -5,6 +5,8 @@ Culled Empty Block (label) main::@2
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
(byte*) main::SCREEN#0 ← ((byte*)) (number) $400
(byte) main::b#0 ← (byte) 0
@ -109,6 +111,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] (byte) main::b#0 ← (byte) 0
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] (byte) main::b1#0 ← (byte) 0
[5] (byte) main::b2#0 ← (byte) 0
@ -29,6 +31,8 @@ main::@3: scope:[main] from main::@2
main::@return: scope:[main] from main::@3
[15] return
to:@return
(void()) setByte((byte*) setByte::ptr , (byte) setByte::b)
setByte: scope:[setByte] from main main::@1 main::@2
[16] (byte*) setByte::ptr#3 ← phi( main/&(byte) main::b1#0 main::@1/&(byte) main::b2#0 main::@2/&(byte) main::b3#0 )
[16] (byte) setByte::b#3 ← phi( main/(byte) 'c' main::@1/(byte) 'm' main::@2/(byte) 'l' )

View File

@ -7,6 +7,8 @@ Culled Empty Block (label) @1
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@2
(void()) main()
main: scope:[main] from @2
(byte*) main::SCREEN#0 ← ((byte*)) (number) $400
(byte) main::b1#0 ← (number) 0
@ -46,6 +48,8 @@ main::@3: scope:[main] from main::@2
main::@return: scope:[main] from main::@3
return
to:@return
(void()) setByte((byte*) setByte::ptr , (byte) setByte::b)
setByte: scope:[setByte] from main main::@1 main::@2
(byte*) setByte::ptr#3 ← phi( main/(byte*) setByte::ptr#0 main::@1/(byte*) setByte::ptr#1 main::@2/(byte*) setByte::ptr#2 )
(byte) setByte::b#3 ← phi( main/(byte) setByte::b#0 main::@1/(byte) setByte::b#1 main::@2/(byte) setByte::b#2 )
@ -198,6 +202,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] (byte) main::b1#0 ← (byte) 0
[5] (byte) main::b2#0 ← (byte) 0
@ -220,6 +226,8 @@ main::@3: scope:[main] from main::@2
main::@return: scope:[main] from main::@3
[15] return
to:@return
(void()) setByte((byte*) setByte::ptr , (byte) setByte::b)
setByte: scope:[setByte] from main main::@1 main::@2
[16] (byte*) setByte::ptr#3 ← phi( main/&(byte) main::b1#0 main::@1/&(byte) main::b2#0 main::@2/&(byte) main::b3#0 )
[16] (byte) setByte::b#3 ← phi( main/(byte) 'c' main::@1/(byte) 'm' main::@2/(byte) 'l' )

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::SCREEN1#0) ← (byte) val#0
[5] *((const byte*) main::SCREEN2#0) ← (byte) '.'
@ -33,12 +35,16 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[21] return
to:@return
(void()) setp((byte*) setp::p , (byte) setp::v)
setp: scope:[setp] from main::@1
[22] *((const byte*) main::ptr#0) ← (const byte) setp::v#0
to:setp::@return
setp::@return: scope:[setp] from setp
[23] return
to:@return
(void()) setv((byte) setv::v)
setv: scope:[setv] from main
[24] (byte) val#12 ← (const byte) setv::v#0
to:setv::@return

View File

@ -6,6 +6,8 @@ CONTROL FLOW GRAPH SSA
@begin: scope:[] from
(byte) val#0 ← (number) 0
to:@3
(void()) main()
main: scope:[main] from @3
(byte) val#8 ← phi( @3/(byte) val#14 )
(byte*) main::SCREEN1#0 ← ((byte*)) (number) $400
@ -57,6 +59,8 @@ main::@return: scope:[main] from main::@2
(byte) val#4 ← (byte) val#11
return
to:@return
(void()) setv((byte) setv::v)
setv: scope:[setv] from main
(byte) setv::v#1 ← phi( main/(byte) setv::v#0 )
(byte) val#5 ← (byte) setv::v#1
@ -66,6 +70,8 @@ setv::@return: scope:[setv] from setv
(byte) val#6 ← (byte) val#12
return
to:@return
(void()) setp((byte*) setp::p , (byte) setp::v)
setp: scope:[setp] from main::@1
(byte*) setp::p#1 ← phi( main::@1/(byte*) setp::p#0 )
(byte) setp::v#1 ← phi( main::@1/(byte) setp::v#0 )
@ -298,6 +304,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::SCREEN1#0) ← (byte) val#0
[5] *((const byte*) main::SCREEN2#0) ← (byte) '.'
@ -324,12 +332,16 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[21] return
to:@return
(void()) setp((byte*) setp::p , (byte) setp::v)
setp: scope:[setp] from main::@1
[22] *((const byte*) main::ptr#0) ← (const byte) setp::v#0
to:setp::@return
setp::@return: scope:[setp] from setp
[23] return
to:@return
(void()) setv((byte) setv::v)
setv: scope:[setv] from main
[24] (byte) val#12 ← (const byte) setv::v#0
to:setv::@return

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call print
@ -28,6 +30,8 @@ main::@3: scope:[main] from main::@1
main::@return: scope:[main] from main::@3
[14] return
to:@return
(void()) print((signed word*) print::p)
print: scope:[print] from main main::@1 main::@2
[15] (signed word*) print::p#3 ← phi( main/(const signed word[]) VALS#0 main::@1/(signed word*) print::p#2 main::@2/(const signed word[]) VALS#0+(byte) 1*(const byte) SIZEOF_SIGNED_WORD )
[15] (byte) idx#12 ← phi( main/(byte) 0 main::@1/(byte) idx#13 main::@2/(byte) idx#13 )

View File

@ -7,6 +7,8 @@ CONTROL FLOW GRAPH SSA
@begin: scope:[] from
(signed word[]) VALS#0 ← { (number) 1, (number) 2, (number) 3, (number) 4 }
to:@1
(void()) main()
main: scope:[main] from @2
(byte) idx#15 ← phi( @2/(byte) idx#17 )
(signed word*) print::p#0 ← (signed word[]) VALS#0
@ -50,6 +52,8 @@ main::@return: scope:[main] from main::@5
(signed word*) SCREEN#0 ← ((signed word*)) (number) $400
(byte) idx#4 ← (number) 0
to:@2
(void()) print((signed word*) print::p)
print: scope:[print] from main main::@1 main::@3
(signed word*) print::p#3 ← phi( main/(signed word*) print::p#0 main::@1/(signed word*) print::p#2 main::@3/(signed word*) print::p#1 )
(byte) idx#12 ← phi( main/(byte) idx#15 main::@1/(byte) idx#16 main::@3/(byte) idx#0 )
@ -249,6 +253,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call print
@ -270,6 +276,8 @@ main::@3: scope:[main] from main::@1
main::@return: scope:[main] from main::@3
[14] return
to:@return
(void()) print((signed word*) print::p)
print: scope:[print] from main main::@1 main::@2
[15] (signed word*) print::p#3 ← phi( main/(const signed word[]) VALS#0 main::@1/(signed word*) print::p#2 main::@2/(const signed word[]) VALS#0+(byte) 1*(const byte) SIZEOF_SIGNED_WORD )
[15] (byte) idx#12 ← phi( main/(byte) 0 main::@1/(byte) idx#13 main::@2/(byte) idx#13 )

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1
@ -26,6 +28,8 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[14] return
to:@return
(word()) getValue((word) getValue::index)
getValue: scope:[getValue] from main::@1
[15] (byte~) getValue::$0 ← (word) getValue::index#0 & (byte) $7f
[16] (byte~) getValue::$4 ← (byte~) getValue::$0 << (byte) 1

View File

@ -7,6 +7,8 @@ Culled Empty Block (label) getValue::@1
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @2
(word*) main::SCREEN#0 ← ((word*)) (number) $400
(byte) main::idx#0 ← (byte) 0
@ -33,6 +35,8 @@ main::@return: scope:[main] from main::@3
@1: scope:[] from @begin
(word[$80]) arr16#0 ← { fill( $80, 0) }
to:@2
(word()) getValue((word) getValue::index)
getValue: scope:[getValue] from main::@1
(word) getValue::index#1 ← phi( main::@1/(word) getValue::index#0 )
(number~) getValue::$0 ← (word) getValue::index#1 & (number) $7f
@ -182,6 +186,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1
@ -201,6 +207,8 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[14] return
to:@return
(word()) getValue((word) getValue::index)
getValue: scope:[getValue] from main::@1
[15] (byte~) getValue::$0 ← (word) getValue::index#0 & (byte) $7f
[16] (byte~) getValue::$4 ← (byte~) getValue::$0 << (byte) 1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -6,6 +6,8 @@ CONTROL FLOW GRAPH SSA
(byte) SZ#0 ← (number) $f
(byte[SZ#0]) items#0 ← { fill( SZ#0, 0) }
to:@1
(void()) main()
main: scope:[main] from @1
(byte*) main::cur_item#0 ← (byte[SZ#0]) items#0
(byte) main::sub#0 ← (byte) 0
@ -113,6 +115,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -9,6 +9,8 @@ CONTROL FLOW GRAPH SSA
(byte~) $0 ← (byte) ITEM_COUNT#0 * (byte) ITEM_SIZE#0
(byte[$0]) items#0 ← { (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0 }
to:@1
(void()) main()
main: scope:[main] from @1
(byte*) main::cur_item#0 ← (byte[$0]) items#0
(number~) main::$0 ← (byte) ITEM_COUNT#0 - (number) 1
@ -224,6 +226,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) SCREEN#0) ← *((const byte[$100]) SINTAB#0)
to:main::@return

View File

@ -6,6 +6,8 @@ CONTROL FLOW GRAPH SSA
}}
(byte*) SCREEN#0 ← ((byte*)) (number) $400
to:@1
(void()) main()
main: scope:[main] from @1
*((byte*) SCREEN#0 + (number) 0) ← *((byte[$100]) SINTAB#0 + (number) 0)
to:main::@return
@ -74,6 +76,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) SCREEN#0) ← *((const byte[$100]) SINTAB#0)
to:main::@return

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -14,6 +14,8 @@ CONTROL FLOW GRAPH SSA
(byte[$10]) msg2#0 ← { (byte) 'c', (byte) 'm', (byte) 'l' }
(byte*) SCREEN#0 ← ((byte*)) (number) $400
to:@1
(void()) main()
main: scope:[main] from @1
(byte) main::i#0 ← (number) 0
to:main::@1
@ -164,6 +166,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte[3]) b#0) ← (byte) 'c'
[5] *((const byte*) SCREEN#0) ← *((const byte[3]) b#0)

View File

@ -7,6 +7,8 @@ CONTROL FLOW GRAPH SSA
(byte[]) d#0 ← (const string) $0
(byte*) SCREEN#0 ← ((byte*)) (number) $400
to:@1
(void()) main()
main: scope:[main] from @1
*((byte[3]) b#0 + (number) 0) ← (byte) 'c'
*((byte*) SCREEN#0) ← *((byte[3]) b#0 + (number) 0)
@ -117,6 +119,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte[3]) b#0) ← (byte) 'c'
[5] *((const byte*) SCREEN#0) ← *((const byte[3]) b#0)

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { jmpqwe .byte0,25,51,76,102,128,153,179,204,230 qwe: lda#50 }
[5] *((byte*) 1024) ← (byte) 'c'

View File

@ -2,6 +2,8 @@
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
asm { jmpqwe .byte0,25,51,76,102,128,153,179,204,230 qwe: lda#50 }
(byte*~) main::$0 ← ((byte*)) (number) $400
@ -58,6 +60,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { jmpqwe .byte0,25,51,76,102,128,153,179,204,230 qwe: lda#50 }
[5] *((byte*) 1024) ← (byte) 'c'

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) lda#0) ← (const byte) main::jmp#0
[5] call bne
@ -17,6 +19,8 @@ main::@1: scope:[main] from main
main::@return: scope:[main] from main::@1
[7] return
to:@return
(void()) bne((byte) bne::jsr)
bne: scope:[bne] from main
[8] *((const byte*) lda#0+(byte) 1) ← (const byte) main::jmp#0
to:bne::@return

View File

@ -5,6 +5,8 @@ CONTROL FLOW GRAPH SSA
@begin: scope:[] from
(byte*) lda#0 ← ((byte*)) (number) $400
to:@2
(void()) main()
main: scope:[main] from @2
(byte) main::jmp#0 ← (number) 1
*((byte*) lda#0) ← (byte) main::jmp#0
@ -17,6 +19,8 @@ main::@1: scope:[main] from main
main::@return: scope:[main] from main::@1
return
to:@return
(void()) bne((byte) bne::jsr)
bne: scope:[bne] from main
(byte) bne::jsr#1 ← phi( main/(byte) bne::jsr#0 )
*((byte*) lda#0 + (number) 1) ← (byte) bne::jsr#1
@ -99,6 +103,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) lda#0) ← (const byte) main::jmp#0
[5] call bne
@ -109,6 +115,8 @@ main::@1: scope:[main] from main
main::@return: scope:[main] from main::@1
[7] return
to:@return
(void()) bne((byte) bne::jsr)
bne: scope:[bne] from main
[8] *((const byte*) lda#0+(byte) 1) ← (const byte) main::jmp#0
to:bne::@return

View File

@ -7,12 +7,16 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { jsrinit }
to:main::@return
main::@return: scope:[main] from main
[5] return
to:@return
(void()) init()
init: scope:[init] from
[6] *((const byte*) BGCOL#0) ← (byte) 0
to:init::@return

View File

@ -3,6 +3,8 @@ Resolved forward reference init to (void()) init()
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @2
asm { jsrinit }
to:main::@return
@ -12,6 +14,8 @@ main::@return: scope:[main] from main
@1: scope:[] from @begin
(byte*) BGCOL#0 ← ((byte*)) (number) $d020
to:@2
(void()) init()
init: scope:[init] from
*((byte*) BGCOL#0) ← (number) 0
to:init::@return
@ -77,12 +81,16 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { jsrinit }
to:main::@return
main::@return: scope:[main] from main
[5] return
to:@return
(void()) init()
init: scope:[init] from
[6] *((const byte*) BGCOL#0) ← (byte) 0
to:init::@return

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::screen#0) ← (byte) 'c'
[5] *((const byte*) main::screen#0+(byte) $28) ← (byte) 'c'

View File

@ -3,6 +3,8 @@ Identified constant variable (byte*) main::screen
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
(byte*) main::screen#0 ← ((byte*)) (number) $400
(byte) main::a#0 ← (byte) 0
@ -122,6 +124,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::screen#0) ← (byte) 'c'
[5] *((const byte*) main::screen#0+(byte) $28) ← (byte) 'c'

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call test
@ -54,6 +56,8 @@ main::@10: scope:[main] from main::@9
main::@return: scope:[main] from main::@10
[26] return
to:@return
(void()) test((byte) test::i , (byte) test::a)
test: scope:[test] from main main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
[27] (byte) test::i#11 ← phi( main/(byte) 0 main::@1/(byte) 1 main::@10/(byte) $a main::@2/(byte) 2 main::@3/(byte) 3 main::@4/(byte) 4 main::@5/(byte) 5 main::@6/(byte) 6 main::@7/(byte) 7 main::@8/(byte) 8 main::@9/(byte) 9 )
[27] (byte) test::a#11 ← phi( main/(byte) 3 main::@1/(byte) 3+(byte) 1 main::@10/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2>>(byte) 1^(byte) 6|(byte) 1&(byte) 1 main::@2/(byte) 3+(byte) 1-(byte) 1 main::@3/(byte) 3+(byte) 1-(byte) 1*(byte) 6 main::@4/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2 main::@5/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2 main::@6/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2 main::@7/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2>>(byte) 1 main::@8/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2>>(byte) 1^(byte) 6 main::@9/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2>>(byte) 1^(byte) 6|(byte) 1 )

View File

@ -16,6 +16,8 @@ CONTROL FLOW GRAPH SSA
(byte) GREEN#0 ← (number) 5
(byte) RED#0 ← (number) 2
to:@2
(void()) main()
main: scope:[main] from @2
(byte*) screen2#2 ← phi( @2/(byte*) screen2#13 )
(byte) main::i#0 ← (number) 0
@ -131,6 +133,8 @@ main::@11: scope:[main] from main::@10
main::@return: scope:[main] from main::@11
return
to:@return
(void()) test((byte) test::i , (byte) test::a)
test: scope:[test] from main main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
(byte*) screen2#1 ← phi( main/(byte*) screen2#2 main::@1/(byte*) screen2#3 main::@10/(byte*) screen2#4 main::@2/(byte*) screen2#5 main::@3/(byte*) screen2#6 main::@4/(byte*) screen2#7 main::@5/(byte*) screen2#8 main::@6/(byte*) screen2#9 main::@7/(byte*) screen2#10 main::@8/(byte*) screen2#11 main::@9/(byte*) screen2#12 )
(byte) test::i#11 ← phi( main/(byte) test::i#0 main::@1/(byte) test::i#1 main::@10/(byte) test::i#10 main::@2/(byte) test::i#2 main::@3/(byte) test::i#3 main::@4/(byte) test::i#4 main::@5/(byte) test::i#5 main::@6/(byte) test::i#6 main::@7/(byte) test::i#7 main::@8/(byte) test::i#8 main::@9/(byte) test::i#9 )
@ -653,6 +657,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call test
@ -700,6 +706,8 @@ main::@10: scope:[main] from main::@9
main::@return: scope:[main] from main::@10
[26] return
to:@return
(void()) test((byte) test::i , (byte) test::a)
test: scope:[test] from main main::@1 main::@10 main::@2 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
[27] (byte) test::i#11 ← phi( main/(byte) 0 main::@1/(byte) 1 main::@10/(byte) $a main::@2/(byte) 2 main::@3/(byte) 3 main::@4/(byte) 4 main::@5/(byte) 5 main::@6/(byte) 6 main::@7/(byte) 7 main::@8/(byte) 8 main::@9/(byte) 9 )
[27] (byte) test::a#11 ← phi( main/(byte) 3 main::@1/(byte) 3+(byte) 1 main::@10/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2>>(byte) 1^(byte) 6|(byte) 1&(byte) 1 main::@2/(byte) 3+(byte) 1-(byte) 1 main::@3/(byte) 3+(byte) 1-(byte) 1*(byte) 6 main::@4/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2 main::@5/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2 main::@6/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2 main::@7/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2>>(byte) 1 main::@8/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2>>(byte) 1^(byte) 6 main::@9/(byte) 3+(byte) 1-(byte) 1*(byte) 6/(byte) 2%(byte) 2<<(byte) 2>>(byte) 1^(byte) 6|(byte) 1 )

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) BGCOL#0) ← (const byte) BLACK#0
to:main::@return

View File

@ -4,6 +4,8 @@ CONTROL FLOW GRAPH SSA
(byte*) BGCOL#0 ← ((byte*)) (number) $d021
(byte) BLACK#0 ← (number) 0
to:@1
(void()) main()
main: scope:[main] from @1
*((byte*) BGCOL#0) ← (byte) BLACK#0
to:main::@return
@ -66,6 +68,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) BGCOL#0) ← (const byte) BLACK#0
to:main::@return

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call fill
@ -34,6 +36,8 @@ main::@2: scope:[main] from main::@1
main::@6: scope:[main] from main::@2
[16] (signed word) main::i#1 ← (signed word) main::i#2 + (signed byte) 5
to:main::@1
(void()) circle((signed word) circle::xc , (signed word) circle::yc , (signed word) circle::r)
circle: scope:[circle] from main::@2
[17] (signed word~) circle::$0 ← (signed word) circle::r#0 << (signed byte) 1
[18] (signed word) circle::p#0 ← (signed byte) 3 - (signed word~) circle::$0
@ -107,6 +111,8 @@ circle::@3: scope:[circle] from circle::@2
[55] (signed word~) circle::$10 ← (signed word) circle::p#3 + (signed word~) circle::$9
[56] (signed word) circle::p#1 ← (signed word~) circle::$10 + (signed byte) 6
to:circle::@4
(void()) plot((signed word) plot::x , (signed word) plot::y)
plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9
[57] (signed word) plot::y#8 ← phi( circle::@6/(signed word) plot::y#1 circle::@7/(signed word) plot::y#2 circle::@8/(signed word) plot::y#3 circle::@9/(signed word) plot::y#4 circle::@10/(signed word) plot::y#5 circle::@11/(signed word) plot::y#6 circle::@12/(signed word) plot::y#7 circle::@4/(signed word) plot::y#0 )
[57] (signed word) plot::x#8 ← phi( circle::@6/(signed word) plot::x#1 circle::@7/(signed word) plot::x#2 circle::@8/(signed word) plot::x#3 circle::@9/(signed word) plot::x#4 circle::@10/(signed word) plot::x#5 circle::@11/(signed word) plot::x#6 circle::@12/(signed word) plot::x#7 circle::@4/(signed word) plot::x#0 )
@ -139,6 +145,8 @@ plot::@1: scope:[plot] from plot::@2
plot::@return: scope:[plot] from plot plot::@1 plot::@2 plot::@3 plot::@4
[75] return
to:@return
(void()) fill((byte*) fill::start , (signed word) fill::size , (byte) fill::val)
fill: scope:[fill] from main main::@4
[76] (byte) fill::val#4 ← phi( main/(byte) 0 main::@4/(byte) $16 )
[76] (signed word) fill::size#2 ← phi( main/(signed word)(number) $28*(number) $19*(number) 8 main::@4/(signed word)(number) $28*(number) $19 )

View File

@ -38,6 +38,8 @@ CONTROL FLOW GRAPH SSA
(byte*) BITMAP#0 ← ((byte*)) (number) $2000
(byte[]) bitmask#0 ← { (number) $80, (number) $40, (number) $20, (number) $10, (number) 8, (number) 4, (number) 2, (number) 1 }
to:@8
(void()) main()
main: scope:[main] from @8
(byte*) fill::start#0 ← (byte*) BITMAP#0
(signed word) fill::size#0 ← (number) $28*(number) $19*(number) 8
@ -89,6 +91,8 @@ main::@7: scope:[main] from main::@1 main::@7
main::@return: scope:[main] from main::@7
return
to:@return
(void()) circle((signed word) circle::xc , (signed word) circle::yc , (signed word) circle::r)
circle: scope:[circle] from main::@2
(signed word) circle::yc#13 ← phi( main::@2/(signed word) circle::yc#0 )
(signed word) circle::xc#13 ← phi( main::@2/(signed word) circle::xc#0 )
@ -249,6 +253,8 @@ circle::@18: scope:[circle] from circle::@17
circle::@return: scope:[circle] from circle::@1
return
to:@return
(void()) plot((signed word) plot::x , (signed word) plot::y)
plot: scope:[plot] from circle::@11 circle::@12 circle::@13 circle::@14 circle::@15 circle::@16 circle::@17 circle::@5
(signed word) plot::y#8 ← phi( circle::@11/(signed word) plot::y#1 circle::@12/(signed word) plot::y#2 circle::@13/(signed word) plot::y#3 circle::@14/(signed word) plot::y#4 circle::@15/(signed word) plot::y#5 circle::@16/(signed word) plot::y#6 circle::@17/(signed word) plot::y#7 circle::@5/(signed word) plot::y#0 )
(signed word) plot::x#8 ← phi( circle::@11/(signed word) plot::x#1 circle::@12/(signed word) plot::x#2 circle::@13/(signed word) plot::x#3 circle::@14/(signed word) plot::x#4 circle::@15/(signed word) plot::x#5 circle::@16/(signed word) plot::x#6 circle::@17/(signed word) plot::x#7 circle::@5/(signed word) plot::x#0 )
@ -281,6 +287,8 @@ plot::@1: scope:[plot] from plot
plot::@return: scope:[plot] from plot plot::@1
return
to:@return
(void()) fill((byte*) fill::start , (signed word) fill::size , (byte) fill::val)
fill: scope:[fill] from main main::@9
(byte) fill::val#4 ← phi( main/(byte) fill::val#0 main::@9/(byte) fill::val#1 )
(signed word) fill::size#2 ← phi( main/(signed word) fill::size#0 main::@9/(signed word) fill::size#1 )
@ -991,6 +999,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call fill
@ -1018,6 +1028,8 @@ main::@2: scope:[main] from main::@1
main::@6: scope:[main] from main::@2
[16] (signed word) main::i#1 ← (signed word) main::i#2 + (signed byte) 5
to:main::@1
(void()) circle((signed word) circle::xc , (signed word) circle::yc , (signed word) circle::r)
circle: scope:[circle] from main::@2
[17] (signed word~) circle::$0 ← (signed word) circle::r#0 << (signed byte) 1
[18] (signed word) circle::p#0 ← (signed byte) 3 - (signed word~) circle::$0
@ -1091,6 +1103,8 @@ circle::@3: scope:[circle] from circle::@2
[55] (signed word~) circle::$10 ← (signed word) circle::p#3 + (signed word~) circle::$9
[56] (signed word) circle::p#1 ← (signed word~) circle::$10 + (signed byte) 6
to:circle::@4
(void()) plot((signed word) plot::x , (signed word) plot::y)
plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9
[57] (signed word) plot::y#8 ← phi( circle::@6/(signed word) plot::y#1 circle::@7/(signed word) plot::y#2 circle::@8/(signed word) plot::y#3 circle::@9/(signed word) plot::y#4 circle::@10/(signed word) plot::y#5 circle::@11/(signed word) plot::y#6 circle::@12/(signed word) plot::y#7 circle::@4/(signed word) plot::y#0 )
[57] (signed word) plot::x#8 ← phi( circle::@6/(signed word) plot::x#1 circle::@7/(signed word) plot::x#2 circle::@8/(signed word) plot::x#3 circle::@9/(signed word) plot::x#4 circle::@10/(signed word) plot::x#5 circle::@11/(signed word) plot::x#6 circle::@12/(signed word) plot::x#7 circle::@4/(signed word) plot::x#0 )
@ -1123,6 +1137,8 @@ plot::@1: scope:[plot] from plot::@2
plot::@return: scope:[plot] from plot plot::@1 plot::@2 plot::@3 plot::@4
[75] return
to:@return
(void()) fill((byte*) fill::start , (signed word) fill::size , (byte) fill::val)
fill: scope:[fill] from main main::@4
[76] (byte) fill::val#4 ← phi( main/(byte) 0 main::@4/(byte) $16 )
[76] (signed word) fill::size#2 ← phi( main/(signed word)(number) $28*(number) $19*(number) 8 main::@4/(signed word)(number) $28*(number) $19 )

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call fill
@ -24,6 +26,8 @@ main::@3: scope:[main] from main::@2
main::@1: scope:[main] from main::@1 main::@3
[12] phi()
to:main::@1
(void()) circle((signed word) circle::xc , (signed word) circle::yc , (signed word) circle::r)
circle: scope:[circle] from main::@3
[13] phi()
to:circle::@1
@ -96,6 +100,8 @@ circle::@3: scope:[circle] from circle::@2
[50] (signed word~) circle::$10 ← (signed word) circle::p#3 + (signed word~) circle::$9
[51] (signed word) circle::p#1 ← (signed word~) circle::$10 + (signed byte) 6
to:circle::@4
(void()) plot((signed word) plot::x , (signed word) plot::y)
plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9
[52] (signed word) plot::y#8 ← phi( circle::@6/(signed word) plot::y#1 circle::@7/(signed word) plot::y#2 circle::@8/(signed word) plot::y#3 circle::@9/(signed word) plot::y#4 circle::@10/(signed word) plot::y#5 circle::@11/(signed word) plot::y#6 circle::@12/(signed word) plot::y#7 circle::@4/(signed word) plot::y#0 )
[52] (signed word) plot::x#8 ← phi( circle::@6/(signed word) plot::x#1 circle::@7/(signed word) plot::x#2 circle::@8/(signed word) plot::x#3 circle::@9/(signed word) plot::x#4 circle::@10/(signed word) plot::x#5 circle::@11/(signed word) plot::x#6 circle::@12/(signed word) plot::x#7 circle::@4/(signed word) plot::x#0 )
@ -116,6 +122,8 @@ plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::
plot::@return: scope:[plot] from plot
[66] return
to:@return
(void()) fill((byte*) fill::start , (signed word) fill::size , (byte) fill::val)
fill: scope:[fill] from main main::@2
[67] (byte) fill::val#4 ← phi( main/(byte) 0 main::@2/(byte) $16 )
[67] (signed word) fill::size#2 ← phi( main/(signed word)(number) $28*(number) $19*(number) 8 main::@2/(signed word)(number) $28*(number) $19 )

View File

@ -32,6 +32,8 @@ CONTROL FLOW GRAPH SSA
(byte*) BITMAP#0 ← ((byte*)) (number) $2000
(byte[]) bitmask#0 ← { (number) $80, (number) $40, (number) $20, (number) $10, (number) 8, (number) 4, (number) 2, (number) 1 }
to:@8
(void()) main()
main: scope:[main] from @8
(byte*) fill::start#0 ← (byte*) BITMAP#0
(signed word) fill::size#0 ← (number) $28*(number) $19*(number) 8
@ -72,6 +74,8 @@ main::@1: scope:[main] from main::@1 main::@5
main::@return: scope:[main] from main::@1
return
to:@return
(void()) circle((signed word) circle::xc , (signed word) circle::yc , (signed word) circle::r)
circle: scope:[circle] from main::@4
(signed word) circle::yc#13 ← phi( main::@4/(signed word) circle::yc#0 )
(signed word) circle::xc#13 ← phi( main::@4/(signed word) circle::xc#0 )
@ -232,6 +236,8 @@ circle::@18: scope:[circle] from circle::@17
circle::@return: scope:[circle] from circle::@1
return
to:@return
(void()) plot((signed word) plot::x , (signed word) plot::y)
plot: scope:[plot] from circle::@11 circle::@12 circle::@13 circle::@14 circle::@15 circle::@16 circle::@17 circle::@5
(signed word) plot::y#8 ← phi( circle::@11/(signed word) plot::y#1 circle::@12/(signed word) plot::y#2 circle::@13/(signed word) plot::y#3 circle::@14/(signed word) plot::y#4 circle::@15/(signed word) plot::y#5 circle::@16/(signed word) plot::y#6 circle::@17/(signed word) plot::y#7 circle::@5/(signed word) plot::y#0 )
(signed word) plot::x#8 ← phi( circle::@11/(signed word) plot::x#1 circle::@12/(signed word) plot::x#2 circle::@13/(signed word) plot::x#3 circle::@14/(signed word) plot::x#4 circle::@15/(signed word) plot::x#5 circle::@16/(signed word) plot::x#6 circle::@17/(signed word) plot::x#7 circle::@5/(signed word) plot::x#0 )
@ -251,6 +257,8 @@ plot: scope:[plot] from circle::@11 circle::@12 circle::@13 circle::@14 circle:
plot::@return: scope:[plot] from plot
return
to:@return
(void()) fill((byte*) fill::start , (signed word) fill::size , (byte) fill::val)
fill: scope:[fill] from main main::@3
(byte) fill::val#4 ← phi( main/(byte) fill::val#0 main::@3/(byte) fill::val#1 )
(signed word) fill::size#2 ← phi( main/(signed word) fill::size#0 main::@3/(signed word) fill::size#1 )
@ -901,6 +909,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call fill
@ -918,6 +928,8 @@ main::@3: scope:[main] from main::@2
main::@1: scope:[main] from main::@1 main::@3
[12] phi()
to:main::@1
(void()) circle((signed word) circle::xc , (signed word) circle::yc , (signed word) circle::r)
circle: scope:[circle] from main::@3
[13] phi()
to:circle::@1
@ -990,6 +1002,8 @@ circle::@3: scope:[circle] from circle::@2
[50] (signed word~) circle::$10 ← (signed word) circle::p#3 + (signed word~) circle::$9
[51] (signed word) circle::p#1 ← (signed word~) circle::$10 + (signed byte) 6
to:circle::@4
(void()) plot((signed word) plot::x , (signed word) plot::y)
plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::@6 circle::@7 circle::@8 circle::@9
[52] (signed word) plot::y#8 ← phi( circle::@6/(signed word) plot::y#1 circle::@7/(signed word) plot::y#2 circle::@8/(signed word) plot::y#3 circle::@9/(signed word) plot::y#4 circle::@10/(signed word) plot::y#5 circle::@11/(signed word) plot::y#6 circle::@12/(signed word) plot::y#7 circle::@4/(signed word) plot::y#0 )
[52] (signed word) plot::x#8 ← phi( circle::@6/(signed word) plot::x#1 circle::@7/(signed word) plot::x#2 circle::@8/(signed word) plot::x#3 circle::@9/(signed word) plot::x#4 circle::@10/(signed word) plot::x#5 circle::@11/(signed word) plot::x#6 circle::@12/(signed word) plot::x#7 circle::@4/(signed word) plot::x#0 )
@ -1010,6 +1024,8 @@ plot: scope:[plot] from circle::@10 circle::@11 circle::@12 circle::@4 circle::
plot::@return: scope:[plot] from plot
[66] return
to:@return
(void()) fill((byte*) fill::start , (signed word) fill::size , (byte) fill::val)
fill: scope:[fill] from main main::@2
[67] (byte) fill::val#4 ← phi( main/(byte) 0 main::@2/(byte) $16 )
[67] (signed word) fill::size#2 ← phi( main/(signed word)(number) $28*(number) $19*(number) 8 main::@2/(signed word)(number) $28*(number) $19 )

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) BORDERCOL#0) ← (byte) 0
[5] *((const byte*) BGCOL#0) ← (byte) 0
@ -30,6 +32,8 @@ main::@1: scope:[main] from main::@3 main::@4
main::@4: scope:[main] from main::@1
[16] (byte) next#1 ← ++ (byte) next#4
to:main::@1
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from main::@1
[17] if((const byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
to:bitmap_line::@2
@ -66,6 +70,8 @@ bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@6
[31] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1
[32] call bitmap_line_xdyi
to:bitmap_line::@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@7
[33] phi()
to:bitmap_line_xdyi::@1
@ -95,6 +101,8 @@ bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
[46] return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[47] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
[47] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -107,6 +115,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[53] return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@8
[54] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1
to:bitmap_line_ydxi::@1
@ -135,6 +145,8 @@ bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[66] return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@4
[67] phi()
to:bitmap_line_xdyd::@1
@ -163,6 +175,8 @@ bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
[79] return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@5
[80] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1
to:bitmap_line_ydxd::@1
@ -191,6 +205,8 @@ bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[92] return
to:@return
(void()) init_screen()
init_screen: scope:[init_screen] from main::@3
[93] phi()
to:init_screen::@1
@ -205,6 +221,8 @@ init_screen::@2: scope:[init_screen] from init_screen::@1
[97] *((byte*) init_screen::c#2) ← (byte) $14
[98] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2
to:init_screen::@1
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from main::@2
[99] (word) bitmap_clear::bitmap#0 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0)
[100] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
@ -228,6 +246,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
[109] return
to:@return
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from main
[110] phi()
to:bitmap_init::@1

View File

@ -53,6 +53,8 @@ CONTROL FLOW GRAPH SSA
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
to:@12
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from main
(byte*) bitmap_init::bitmap#2 ← phi( main/(byte*) bitmap_init::bitmap#0 )
(byte) bitmap_init::bits#0 ← (number) $80
@ -120,6 +122,8 @@ bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
return
to:@return
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from main::@3
(byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_xhi#0 + (number) 0), *((byte[$100]) bitmap_plot_xlo#0 + (number) 0) }
(byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$0
@ -150,6 +154,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
(byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
(byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -163,6 +169,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
return
to:@return
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from main::@1
(byte) bitmap_line::y1#13 ← phi( main::@1/(byte) bitmap_line::y1#0 )
(byte) bitmap_line::y0#13 ← phi( main::@1/(byte) bitmap_line::y0#0 )
@ -360,6 +368,8 @@ bitmap_line::@36: scope:[bitmap_line] from bitmap_line::@27
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@29 bitmap_line::@30 bitmap_line::@31 bitmap_line::@32 bitmap_line::@33 bitmap_line::@34 bitmap_line::@35 bitmap_line::@36
return
to:@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@11 bitmap_line::@25
(byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@25/(byte) bitmap_line_xdyi::x1#1 )
(byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@25/(byte) bitmap_line_xdyi::xd#1 )
@ -419,6 +429,8 @@ bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@5
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@15 bitmap_line::@21
(byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@21/(byte) bitmap_line_xdyd::x1#1 )
(byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@21/(byte) bitmap_line_xdyd::xd#1 )
@ -478,6 +490,8 @@ bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@5
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@27 bitmap_line::@5
(byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@5/(byte) bitmap_line_ydxi::y1#0 )
(byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@5/(byte) bitmap_line_ydxi::yd#0 )
@ -537,6 +551,8 @@ bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@5
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@17 bitmap_line::@8
(byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@8/(byte) bitmap_line_ydxd::y1#1 )
(byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@8/(byte) bitmap_line_ydxd::yd#1 )
@ -602,6 +618,8 @@ bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
(byte*) BITMAP#0 ← ((byte*)) (number) $2000
(byte) next#0 ← (number) 0
to:@14
(void()) main()
main: scope:[main] from @14
(byte) next#12 ← phi( @14/(byte) next#9 )
*((byte*) BORDERCOL#0) ← (number) 0
@ -651,6 +669,8 @@ main::@return: scope:[main] from main::@6
(byte) next#2 ← (byte) next#6
return
to:@return
(void()) init_screen()
init_screen: scope:[init_screen] from main::@4
(byte*) init_screen::c#0 ← (byte*) SCREEN#0
to:init_screen::@1
@ -2015,6 +2035,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) BORDERCOL#0) ← (byte) 0
[5] *((const byte*) BGCOL#0) ← (byte) 0
@ -2038,6 +2060,8 @@ main::@1: scope:[main] from main::@3 main::@4
main::@4: scope:[main] from main::@1
[16] (byte) next#1 ← ++ (byte) next#4
to:main::@1
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from main::@1
[17] if((const byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
to:bitmap_line::@2
@ -2074,6 +2098,8 @@ bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@6
[31] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1
[32] call bitmap_line_xdyi
to:bitmap_line::@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@7
[33] phi()
to:bitmap_line_xdyi::@1
@ -2103,6 +2129,8 @@ bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
[46] return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[47] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
[47] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -2115,6 +2143,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[53] return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@8
[54] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1
to:bitmap_line_ydxi::@1
@ -2143,6 +2173,8 @@ bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[66] return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@4
[67] phi()
to:bitmap_line_xdyd::@1
@ -2171,6 +2203,8 @@ bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
[79] return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@5
[80] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1
to:bitmap_line_ydxd::@1
@ -2199,6 +2233,8 @@ bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[92] return
to:@return
(void()) init_screen()
init_screen: scope:[init_screen] from main::@3
[93] phi()
to:init_screen::@1
@ -2213,6 +2249,8 @@ init_screen::@2: scope:[init_screen] from init_screen::@1
[97] *((byte*) init_screen::c#2) ← (byte) $14
[98] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2
to:init_screen::@1
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from main::@2
[99] (word) bitmap_clear::bitmap#0 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0)
[100] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
@ -2236,6 +2274,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
[109] return
to:@return
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from main
[110] phi()
to:bitmap_init::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) BORDERCOL#0) ← (byte) 0
[5] *((const byte*) BGCOL#0) ← (byte) 0
@ -33,6 +35,8 @@ main::@5: scope:[main] from main::@4
main::@2: scope:[main] from main::@4 main::@5
[17] (word) next#3 ← phi( main::@4/(byte) 0 main::@5/(word) next#1 )
to:main::@1
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
bitmap_line: scope:[bitmap_line] from main::@1
[18] (word) abs_u16::w#0 ← (word) bitmap_line::x2#0
[19] call abs_u16
@ -128,6 +132,8 @@ bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18
[64] phi()
[65] call bitmap_plot
to:bitmap_line::@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
[66] (word) bitmap_plot::x#4 ← phi( bitmap_line::@9/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(const word) bitmap_line::x1#0 bitmap_line::@6/(word) bitmap_plot::x#1 )
[66] (byte) bitmap_plot::y#4 ← phi( bitmap_line::@9/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) 0 bitmap_line::@6/(byte) bitmap_plot::y#1 )
@ -140,6 +146,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[72] return
to:@return
(word()) sgn_u16((word) sgn_u16::w)
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
[73] (word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@14/(const word) bitmap_line::y2#0 )
[74] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
@ -153,6 +161,8 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
[78] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(byte) -1 sgn_u16/(byte) 1 )
[79] return
to:@return
(word()) abs_u16((word) abs_u16::w)
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
[80] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@12/(const word) bitmap_line::y2#0 )
[81] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
@ -166,6 +176,8 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
[85] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
[86] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@3
[87] phi()
[88] call memset
@ -177,6 +189,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[91] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[92] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[92] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -198,6 +212,8 @@ memset::@3: scope:[memset] from memset::@2
[99] *((byte*) memset::dst#2) ← (byte) memset::c#4
[100] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
[101] phi()
to:bitmap_init::@1

View File

@ -46,6 +46,8 @@ CONTROL FLOW GRAPH SSA
(byte) WHITE#0 ← (number) 1
(byte) PURPLE#0 ← (number) 4
to:@8
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
(byte) memset::c#5 ← phi( bitmap_clear/(byte) memset::c#0 bitmap_clear::@1/(byte) memset::c#1 )
(void*) memset::str#4 ← phi( bitmap_clear/(void*) memset::str#0 bitmap_clear::@1/(void*) memset::str#1 )
@ -95,6 +97,8 @@ memset::@return: scope:[memset] from memset::@1
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
to:@14
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
(byte*) bitmap_init::screen#1 ← phi( main/(byte*) bitmap_init::screen#0 )
(byte*) bitmap_init::gfx#1 ← phi( main/(byte*) bitmap_init::gfx#0 )
@ -179,6 +183,8 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
(byte*) bitmap_screen#2 ← (byte*) bitmap_screen#6
return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@5
(byte*) bitmap_gfx#12 ← phi( main::@5/(byte*) bitmap_gfx#3 )
(byte*) bitmap_screen#7 ← phi( main::@5/(byte*) bitmap_screen#3 )
@ -206,6 +212,8 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2
return
to:@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@12 bitmap_line::@3 bitmap_line::@4 bitmap_line::@7
(word) bitmap_plot::x#4 ← phi( bitmap_line::@12/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(word) bitmap_plot::x#0 bitmap_line::@7/(word) bitmap_plot::x#1 )
(byte) bitmap_plot::y#4 ← phi( bitmap_line::@12/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) bitmap_plot::y#0 bitmap_line::@7/(byte) bitmap_plot::y#1 )
@ -219,6 +227,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@12 bitmap_line::@3 bitmap_l
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
return
to:@return
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
bitmap_line: scope:[bitmap_line] from main::@1
(word) bitmap_line::y2#4 ← phi( main::@1/(word) bitmap_line::y2#0 )
(word) bitmap_line::x2#1 ← phi( main::@1/(word) bitmap_line::x2#0 )
@ -458,6 +468,8 @@ bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@23
(word) bitmap_line::y#2 ← (word) bitmap_line::y#9 + (word) bitmap_line::sy#2
(word) bitmap_line::e1#2 ← (word) bitmap_line::e1#4 - (word) bitmap_line::dx#6
to:bitmap_line::@13
(word()) abs_u16((word) abs_u16::w)
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@16
(word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@16/(word) abs_u16::w#1 )
(byte~) abs_u16::$0 ← > (word) abs_u16::w#2
@ -479,6 +491,8 @@ abs_u16::@return: scope:[abs_u16] from abs_u16::@1 abs_u16::@3
(word) abs_u16::return#4 ← (word) abs_u16::return#7
return
to:@return
(word()) sgn_u16((word) sgn_u16::w)
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@18
(word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@18/(word) sgn_u16::w#1 )
(byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
@ -504,6 +518,8 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16::@1 sgn_u16::@3
(byte*) BITMAP#0 ← ((byte*)) (number) $2000
(word) next#0 ← (number) 0
to:@15
(void()) main()
main: scope:[main] from @15
(word) next#13 ← phi( @15/(word) next#11 )
(byte*) bitmap_screen#12 ← phi( @15/(byte*) bitmap_screen#14 )
@ -1818,6 +1834,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) BORDERCOL#0) ← (byte) 0
[5] *((const byte*) BGCOL#0) ← (byte) 0
@ -1844,6 +1862,8 @@ main::@5: scope:[main] from main::@4
main::@2: scope:[main] from main::@4 main::@5
[17] (word) next#3 ← phi( main::@4/(byte) 0 main::@5/(word) next#1 )
to:main::@1
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
bitmap_line: scope:[bitmap_line] from main::@1
[18] (word) abs_u16::w#0 ← (word) bitmap_line::x2#0
[19] call abs_u16
@ -1939,6 +1959,8 @@ bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18
[64] phi()
[65] call bitmap_plot
to:bitmap_line::@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
[66] (word) bitmap_plot::x#4 ← phi( bitmap_line::@9/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(const word) bitmap_line::x1#0 bitmap_line::@6/(word) bitmap_plot::x#1 )
[66] (byte) bitmap_plot::y#4 ← phi( bitmap_line::@9/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) 0 bitmap_line::@6/(byte) bitmap_plot::y#1 )
@ -1951,6 +1973,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[72] return
to:@return
(word()) sgn_u16((word) sgn_u16::w)
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
[73] (word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@14/(const word) bitmap_line::y2#0 )
[74] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
@ -1964,6 +1988,8 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
[78] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(byte) -1 sgn_u16/(byte) 1 )
[79] return
to:@return
(word()) abs_u16((word) abs_u16::w)
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
[80] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@12/(const word) bitmap_line::y2#0 )
[81] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
@ -1977,6 +2003,8 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
[85] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
[86] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@3
[87] phi()
[88] call memset
@ -1988,6 +2016,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[91] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[92] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[92] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -2009,6 +2039,8 @@ memset::@3: scope:[memset] from memset::@2
[99] *((byte*) memset::dst#2) ← (byte) memset::c#4
[100] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
[101] phi()
to:bitmap_init::@1

View File

@ -10,6 +10,8 @@
to:@end
@end: scope:[] from @2
[4] phi()
(void()) main()
main: scope:[main] from @2
[5] phi()
[6] call bitmap_init
@ -64,6 +66,8 @@ main::@4: scope:[main] from main::@12 main::@6
[26] (byte) main::vy#8 ← phi( main::@12/(byte) main::vy#2 main::@6/(byte) main::vy#1 )
[27] *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0) ← ++ *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0)
to:main::@1
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@2
[28] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0)
[29] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word) $fff8
@ -74,6 +78,8 @@ bitmap_plot: scope:[bitmap_plot] from main::@2
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[33] return
to:@return
(void()) init_irq()
init_irq: scope:[init_irq] from main::@7
asm { sei }
[35] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -88,6 +94,8 @@ init_irq: scope:[init_irq] from main::@7
init_irq::@return: scope:[init_irq] from init_irq
[43] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@8
[44] phi()
[45] call memset
@ -99,6 +107,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[48] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[49] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[49] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -120,6 +130,8 @@ memset::@3: scope:[memset] from memset::@2
[56] *((byte*) memset::dst#2) ← (byte) memset::c#4
[57] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
[58] phi()
to:bitmap_init::@1
@ -160,6 +172,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[79] return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
[80] *((const byte*) BGCOL#0) ← (const byte) WHITE#0
[81] if((byte) 0==(byte) frame_cnt#0) goto irq::@1

View File

@ -58,6 +58,8 @@ CONTROL FLOW GRAPH SSA
(byte) BLACK#0 ← (number) 0
(byte) WHITE#0 ← (number) 1
to:@8
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
(byte) memset::c#5 ← phi( bitmap_clear/(byte) memset::c#0 bitmap_clear::@1/(byte) memset::c#1 )
(void*) memset::str#4 ← phi( bitmap_clear/(void*) memset::str#0 bitmap_clear::@1/(void*) memset::str#1 )
@ -107,6 +109,8 @@ memset::@return: scope:[memset] from memset::@1
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
to:@14
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
(byte*) bitmap_init::screen#1 ← phi( main/(byte*) bitmap_init::screen#0 )
(byte*) bitmap_init::gfx#1 ← phi( main/(byte*) bitmap_init::gfx#0 )
@ -191,6 +195,8 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
(byte*) bitmap_screen#2 ← (byte*) bitmap_screen#6
return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@12
(byte*) bitmap_gfx#12 ← phi( main::@12/(byte*) bitmap_gfx#3 )
(byte*) bitmap_screen#7 ← phi( main::@12/(byte*) bitmap_screen#3 )
@ -218,6 +224,8 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2
return
to:@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@2
(word) bitmap_plot::x#1 ← phi( main::@2/(word) bitmap_plot::x#0 )
(byte) bitmap_plot::y#1 ← phi( main::@2/(byte) bitmap_plot::y#0 )
@ -238,6 +246,8 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
(byte*) SCREEN#0 ← ((byte*)) (number) $400
(byte[$100]) plots_per_frame#0 ← { fill( $100, 0) }
to:@15
(void()) main()
main: scope:[main] from @17
(byte) frame_cnt#21 ← phi( @17/(byte) frame_cnt#9 )
(byte*) bitmap_screen#12 ← phi( @17/(byte*) bitmap_screen#14 )
@ -405,6 +415,8 @@ main::@return: scope:[main] from main::@1
(byte*) bitmap_gfx#20 ← phi( @14/(byte*) bitmap_gfx#25 )
(byte) frame_cnt#0 ← (number) 1
to:@17
(void()) init_irq()
init_irq: scope:[init_irq] from main::@11
asm { sei }
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
@ -420,6 +432,8 @@ init_irq: scope:[init_irq] from main::@11
init_irq::@return: scope:[init_irq] from init_irq
return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
(byte) frame_cnt#4 ← phi( @17/(byte) frame_cnt#9 )
*((byte*) BGCOL#0) ← (byte) WHITE#0
@ -1464,6 +1478,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @2
[4] phi()
(void()) main()
main: scope:[main] from @2
[5] phi()
[6] call bitmap_init
@ -1518,6 +1534,8 @@ main::@4: scope:[main] from main::@12 main::@6
[26] (byte) main::vy#8 ← phi( main::@12/(byte) main::vy#2 main::@6/(byte) main::vy#1 )
[27] *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0) ← ++ *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0)
to:main::@1
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@2
[28] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0)
[29] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word) $fff8
@ -1528,6 +1546,8 @@ bitmap_plot: scope:[bitmap_plot] from main::@2
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[33] return
to:@return
(void()) init_irq()
init_irq: scope:[init_irq] from main::@7
asm { sei }
[35] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -1542,6 +1562,8 @@ init_irq: scope:[init_irq] from main::@7
init_irq::@return: scope:[init_irq] from init_irq
[43] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@8
[44] phi()
[45] call memset
@ -1553,6 +1575,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[48] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[49] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[49] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -1574,6 +1598,8 @@ memset::@3: scope:[memset] from memset::@2
[56] *((byte*) memset::dst#2) ← (byte) memset::c#4
[57] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
[58] phi()
to:bitmap_init::@1
@ -1614,6 +1640,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[79] return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
[80] *((const byte*) BGCOL#0) ← (const byte) WHITE#0
[81] if((byte) 0==(byte) frame_cnt#0) goto irq::@1

View File

@ -10,6 +10,8 @@
to:@end
@end: scope:[] from @2
[4] phi()
(void()) main()
main: scope:[main] from @2
[5] phi()
[6] call sin16s_gen2
@ -84,6 +86,8 @@ main::@4: scope:[main] from main::@13 main::@3
[46] (word) main::idx_y#10 ← phi( main::@13/(word) main::idx_y#1 main::@3/(byte) 0 )
[47] *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0) ← ++ *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0)
to:main::@1
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@10
[48] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0)
[49] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word) $fff8
@ -94,6 +98,8 @@ bitmap_plot: scope:[bitmap_plot] from main::@10
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[53] return
to:@return
(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b)
mul16s: scope:[mul16s] from main::@2 main::@9 sin16s_gen2::@4
[54] (signed word) mul16s::b#3 ← phi( main::@9/(signed word) mul16s::b#2 main::@2/(signed word) mul16s::b#1 sin16s_gen2::@4/(const signed word) sin16s_gen2::ampl#0 )
[54] (signed word) mul16s::a#3 ← phi( main::@9/(signed byte) $64 main::@2/(signed word) $a0 sin16s_gen2::@4/(signed word) mul16s::a#0 )
@ -127,6 +133,8 @@ mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4
mul16s::@return: scope:[mul16s] from mul16s::@2
[71] return
to:@return
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
mul16u: scope:[mul16u] from mul16s mulu16_sel
[72] (word) mul16u::a#6 ← phi( mul16s/(word) mul16u::a#1 mulu16_sel/(word) mul16u::a#2 )
[72] (dword) mul16u::mb#0 ← phi( mul16s/(word) mul16u::b#0 mulu16_sel/(word) mul16u::b#1 )
@ -152,6 +160,8 @@ mul16u::@3: scope:[mul16u] from mul16u::@2 mul16u::@4
[80] (word) mul16u::a#0 ← (word) mul16u::a#3 >> (byte) 1
[81] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte) 1
to:mul16u::@1
(void()) init_irq()
init_irq: scope:[init_irq] from main::@5
asm { sei }
[83] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -166,6 +176,8 @@ init_irq: scope:[init_irq] from main::@5
init_irq::@return: scope:[init_irq] from init_irq
[91] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@7
[92] phi()
[93] call memset
@ -177,6 +189,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[96] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[97] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[97] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -198,6 +212,8 @@ memset::@3: scope:[memset] from memset::@2
[104] *((byte*) memset::dst#2) ← (byte) memset::c#4
[105] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main::@6
[106] phi()
to:bitmap_init::@1
@ -238,6 +254,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[127] return
to:@return
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
sin16s_gen2: scope:[sin16s_gen2] from main
[128] phi()
[129] call div32u16u
@ -273,6 +291,8 @@ sin16s_gen2::@5: scope:[sin16s_gen2] from sin16s_gen2::@4
[145] (dword) sin16s_gen2::x#1 ← (dword) sin16s_gen2::x#2 + (dword) sin16s_gen2::step#0
[146] (word) sin16s_gen2::i#1 ← ++ (word) sin16s_gen2::i#2
to:sin16s_gen2::@1
(signed word()) sin16s((dword) sin16s::x)
sin16s: scope:[sin16s] from sin16s_gen2::@2
[147] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1
to:sin16s::@4
@ -342,6 +362,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3
sin16s::@12: scope:[sin16s] from sin16s::@11
[186] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1
to:sin16s::@3
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@8 sin16s::@9
[187] (byte) mulu16_sel::select#5 ← phi( sin16s::@9/(byte) 0 sin16s::@10/(byte) 0 sin16s::@2/(byte) 0 sin16s::@7/(byte) 1 sin16s::@8/(byte) 1 )
[187] (word) mulu16_sel::v2#5 ← phi( sin16s::@9/(word) mulu16_sel::v2#3 sin16s::@10/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@7/(word) mulu16_sel::v2#1 sin16s::@8/(word)(number) $10000/(number) 6 )
@ -359,6 +381,8 @@ mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1
[195] return
to:@return
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
div32u16u: scope:[div32u16u] from sin16s_gen2
[196] phi()
[197] call divr16u
@ -377,6 +401,8 @@ div32u16u::@2: scope:[div32u16u] from div32u16u::@1
div32u16u::@return: scope:[div32u16u] from div32u16u::@2
[205] return
to:@return
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
divr16u: scope:[divr16u] from div32u16u div32u16u::@1
[206] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@1/<(const dword) PI2_u4f28#0 )
[206] (word) divr16u::rem#10 ← phi( div32u16u/(byte) 0 div32u16u::@1/(word) divr16u::rem#4 )
@ -416,6 +442,8 @@ divr16u::@6: scope:[divr16u] from divr16u::@3
divr16u::@return: scope:[divr16u] from divr16u::@6
[223] return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
[224] *((const byte*) BGCOL#0) ← (const byte) WHITE#0
[225] if((byte) 0==(byte) frame_cnt#0) goto irq::@1

View File

@ -96,6 +96,8 @@ CONTROL FLOW GRAPH SSA
@6: scope:[] from @begin
(word) rem16u#0 ← (number) 0
to:@17
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
divr16u: scope:[divr16u] from div32u16u div32u16u::@2
(word) divr16u::divisor#6 ← phi( div32u16u/(word) divr16u::divisor#0 div32u16u::@2/(word) divr16u::divisor#1 )
(word) divr16u::dividend#5 ← phi( div32u16u/(word) divr16u::dividend#1 div32u16u::@2/(word) divr16u::dividend#2 )
@ -173,6 +175,8 @@ divr16u::@return: scope:[divr16u] from divr16u::@6
(word) rem16u#2 ← (word) rem16u#11
return
to:@return
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
div32u16u: scope:[div32u16u] from sin16s_gen2
(word) rem16u#20 ← phi( sin16s_gen2/(word) rem16u#21 )
(word) div32u16u::divisor#1 ← phi( sin16s_gen2/(word) div32u16u::divisor#0 )
@ -216,6 +220,8 @@ div32u16u::@return: scope:[div32u16u] from div32u16u::@3
(word) rem16u#5 ← (word) rem16u#14
return
to:@return
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
mul16u: scope:[mul16u] from mul16s mulu16_sel
(word) mul16u::a#6 ← phi( mul16s/(word) mul16u::a#1 mulu16_sel/(word) mul16u::a#2 )
(word) mul16u::b#2 ← phi( mul16s/(word) mul16u::b#0 mulu16_sel/(word) mul16u::b#1 )
@ -263,6 +269,8 @@ mul16u::@return: scope:[mul16u] from mul16u::@3
(dword) mul16u::return#1 ← (dword) mul16u::return#4
return
to:@return
(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b)
mul16s: scope:[mul16s] from main::@16 main::@2 sin16s_gen2::@8
(signed word) mul16s::b#3 ← phi( main::@16/(signed word) mul16s::b#2 main::@2/(signed word) mul16s::b#1 sin16s_gen2::@8/(signed word) mul16s::b#0 )
(signed word) mul16s::a#3 ← phi( main::@16/(signed word) mul16s::a#2 main::@2/(signed word) mul16s::a#1 sin16s_gen2::@8/(signed word) mul16s::a#0 )
@ -326,6 +334,8 @@ mul16s::@return: scope:[mul16s] from mul16s::@2
(dword) PI_u4f28#0 ← (number) $3243f6a9
(dword) PI_HALF_u4f28#0 ← (number) $1921fb54
to:@28
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
sin16s_gen2: scope:[sin16s_gen2] from main
(signed word*) sin16s_gen2::sintab#7 ← phi( main/(signed word*) sin16s_gen2::sintab#1 )
(word) rem16u#21 ← phi( main/(word) rem16u#23 )
@ -421,6 +431,8 @@ sin16s_gen2::@return: scope:[sin16s_gen2] from sin16s_gen2::@1
(word) rem16u#7 ← (word) rem16u#16
return
to:@return
(signed word()) sin16s((dword) sin16s::x)
sin16s: scope:[sin16s] from sin16s_gen2::@2
(dword) sin16s::x#3 ← phi( sin16s_gen2::@2/(dword) sin16s::x#0 )
(byte) sin16s::isUpper#0 ← (number) 0
@ -542,6 +554,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3
(signed word) sin16s::return#2 ← (signed word) sin16s::return#4
return
to:@return
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9
(byte) mulu16_sel::select#6 ← phi( sin16s::@10/(byte) mulu16_sel::select#3 sin16s::@11/(byte) mulu16_sel::select#4 sin16s::@2/(byte) mulu16_sel::select#0 sin16s::@8/(byte) mulu16_sel::select#1 sin16s::@9/(byte) mulu16_sel::select#2 )
(word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(word) mulu16_sel::v2#2 )
@ -564,6 +578,8 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2
(word) mulu16_sel::return#6 ← (word) mulu16_sel::return#12
return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
(byte) memset::c#5 ← phi( bitmap_clear/(byte) memset::c#0 bitmap_clear::@1/(byte) memset::c#1 )
(void*) memset::str#4 ← phi( bitmap_clear/(void*) memset::str#0 bitmap_clear::@1/(void*) memset::str#1 )
@ -614,6 +630,8 @@ memset::@return: scope:[memset] from memset::@1
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
to:@34
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main::@12
(byte*) bitmap_init::screen#1 ← phi( main::@12/(byte*) bitmap_init::screen#0 )
(byte*) bitmap_init::gfx#1 ← phi( main::@12/(byte*) bitmap_init::gfx#0 )
@ -698,6 +716,8 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
(byte*) bitmap_screen#2 ← (byte*) bitmap_screen#6
return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@13
(byte*) bitmap_gfx#12 ← phi( main::@13/(byte*) bitmap_gfx#3 )
(byte*) bitmap_screen#7 ← phi( main::@13/(byte*) bitmap_screen#3 )
@ -725,6 +745,8 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2
return
to:@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@17
(word) bitmap_plot::x#1 ← phi( main::@17/(word) bitmap_plot::x#0 )
(byte) bitmap_plot::y#1 ← phi( main::@17/(byte) bitmap_plot::y#0 )
@ -747,6 +769,8 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
(byte[$100]) plots_per_frame#0 ← { fill( $100, 0) }
(signed word[$200]) SINUS#0 ← { fill( $200, 0) }
to:@35
(void()) main()
main: scope:[main] from @37
(byte) frame_cnt#24 ← phi( @37/(byte) frame_cnt#9 )
(byte*) bitmap_screen#17 ← phi( @37/(byte*) bitmap_screen#14 )
@ -965,6 +989,8 @@ main::@return: scope:[main] from main::@1
(word) rem16u#29 ← phi( @34/(word) rem16u#34 )
(byte) frame_cnt#0 ← (number) 1
to:@37
(void()) init_irq()
init_irq: scope:[init_irq] from main::@11
asm { sei }
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
@ -980,6 +1006,8 @@ init_irq: scope:[init_irq] from main::@11
init_irq::@return: scope:[init_irq] from init_irq
return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
(byte) frame_cnt#4 ← phi( @37/(byte) frame_cnt#9 )
*((byte*) BGCOL#0) ← (byte) WHITE#0
@ -3044,6 +3072,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @2
[4] phi()
(void()) main()
main: scope:[main] from @2
[5] phi()
[6] call sin16s_gen2
@ -3118,6 +3148,8 @@ main::@4: scope:[main] from main::@13 main::@3
[46] (word) main::idx_y#10 ← phi( main::@13/(word) main::idx_y#1 main::@3/(byte) 0 )
[47] *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0) ← ++ *((const byte[$100]) plots_per_frame#0 + (byte) frame_cnt#0)
to:main::@1
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@10
[48] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0)
[49] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word) $fff8
@ -3128,6 +3160,8 @@ bitmap_plot: scope:[bitmap_plot] from main::@10
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[53] return
to:@return
(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b)
mul16s: scope:[mul16s] from main::@2 main::@9 sin16s_gen2::@4
[54] (signed word) mul16s::b#3 ← phi( main::@9/(signed word) mul16s::b#2 main::@2/(signed word) mul16s::b#1 sin16s_gen2::@4/(const signed word) sin16s_gen2::ampl#0 )
[54] (signed word) mul16s::a#3 ← phi( main::@9/(signed byte) $64 main::@2/(signed word) $a0 sin16s_gen2::@4/(signed word) mul16s::a#0 )
@ -3161,6 +3195,8 @@ mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4
mul16s::@return: scope:[mul16s] from mul16s::@2
[71] return
to:@return
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
mul16u: scope:[mul16u] from mul16s mulu16_sel
[72] (word) mul16u::a#6 ← phi( mul16s/(word) mul16u::a#1 mulu16_sel/(word) mul16u::a#2 )
[72] (dword) mul16u::mb#0 ← phi( mul16s/(word) mul16u::b#0 mulu16_sel/(word) mul16u::b#1 )
@ -3186,6 +3222,8 @@ mul16u::@3: scope:[mul16u] from mul16u::@2 mul16u::@4
[80] (word) mul16u::a#0 ← (word) mul16u::a#3 >> (byte) 1
[81] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte) 1
to:mul16u::@1
(void()) init_irq()
init_irq: scope:[init_irq] from main::@5
asm { sei }
[83] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -3200,6 +3238,8 @@ init_irq: scope:[init_irq] from main::@5
init_irq::@return: scope:[init_irq] from init_irq
[91] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@7
[92] phi()
[93] call memset
@ -3211,6 +3251,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[96] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[97] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[97] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -3232,6 +3274,8 @@ memset::@3: scope:[memset] from memset::@2
[104] *((byte*) memset::dst#2) ← (byte) memset::c#4
[105] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main::@6
[106] phi()
to:bitmap_init::@1
@ -3272,6 +3316,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[127] return
to:@return
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
sin16s_gen2: scope:[sin16s_gen2] from main
[128] phi()
[129] call div32u16u
@ -3307,6 +3353,8 @@ sin16s_gen2::@5: scope:[sin16s_gen2] from sin16s_gen2::@4
[145] (dword) sin16s_gen2::x#1 ← (dword) sin16s_gen2::x#2 + (dword) sin16s_gen2::step#0
[146] (word) sin16s_gen2::i#1 ← ++ (word) sin16s_gen2::i#2
to:sin16s_gen2::@1
(signed word()) sin16s((dword) sin16s::x)
sin16s: scope:[sin16s] from sin16s_gen2::@2
[147] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1
to:sin16s::@4
@ -3376,6 +3424,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3
sin16s::@12: scope:[sin16s] from sin16s::@11
[186] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1
to:sin16s::@3
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@8 sin16s::@9
[187] (byte) mulu16_sel::select#5 ← phi( sin16s::@9/(byte) 0 sin16s::@10/(byte) 0 sin16s::@2/(byte) 0 sin16s::@7/(byte) 1 sin16s::@8/(byte) 1 )
[187] (word) mulu16_sel::v2#5 ← phi( sin16s::@9/(word) mulu16_sel::v2#3 sin16s::@10/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@7/(word) mulu16_sel::v2#1 sin16s::@8/(word)(number) $10000/(number) 6 )
@ -3393,6 +3443,8 @@ mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1
[195] return
to:@return
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
div32u16u: scope:[div32u16u] from sin16s_gen2
[196] phi()
[197] call divr16u
@ -3411,6 +3463,8 @@ div32u16u::@2: scope:[div32u16u] from div32u16u::@1
div32u16u::@return: scope:[div32u16u] from div32u16u::@2
[205] return
to:@return
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
divr16u: scope:[divr16u] from div32u16u div32u16u::@1
[206] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@1/<(const dword) PI2_u4f28#0 )
[206] (word) divr16u::rem#10 ← phi( div32u16u/(byte) 0 div32u16u::@1/(word) divr16u::rem#4 )
@ -3450,6 +3504,8 @@ divr16u::@6: scope:[divr16u] from divr16u::@3
divr16u::@return: scope:[divr16u] from divr16u::@6
[223] return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
[224] *((const byte*) BGCOL#0) ← (const byte) WHITE#0
[225] if((byte) 0==(byte) frame_cnt#0) goto irq::@1

View File

@ -10,6 +10,8 @@
to:@end
@end: scope:[] from @2
[4] phi()
(void()) main()
main: scope:[main] from @2
[5] phi()
[6] call sin16s_gen2
@ -103,6 +105,8 @@ main::@5: scope:[main] from main::@15 main::@4 main::@6
main::@7: scope:[main] from main::@5 main::@7
[56] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
to:main::@7
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@13
[57] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0)
[58] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word) $fff8
@ -113,6 +117,8 @@ bitmap_plot: scope:[bitmap_plot] from main::@13
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[62] return
to:@return
(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b)
mul16s: scope:[mul16s] from main::@12 main::@2 sin16s_gen2::@4
[63] (signed word) mul16s::b#3 ← phi( main::@2/(signed word) mul16s::b#1 main::@12/(signed word) mul16s::b#2 sin16s_gen2::@4/(const signed word) sin16s_gen2::ampl#0 )
[63] (signed word) mul16s::a#3 ← phi( main::@2/(signed word) mul16s::a#1 main::@12/(signed word) mul16s::a#2 sin16s_gen2::@4/(signed word) mul16s::a#0 )
@ -146,6 +152,8 @@ mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4
mul16s::@return: scope:[mul16s] from mul16s::@2
[80] return
to:@return
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
mul16u: scope:[mul16u] from mul16s mulu16_sel
[81] (word) mul16u::a#6 ← phi( mul16s/(word) mul16u::a#1 mulu16_sel/(word) mul16u::a#2 )
[81] (dword) mul16u::mb#0 ← phi( mul16s/(word) mul16u::b#0 mulu16_sel/(word) mul16u::b#1 )
@ -171,6 +179,8 @@ mul16u::@3: scope:[mul16u] from mul16u::@2 mul16u::@4
[89] (word) mul16u::a#0 ← (word) mul16u::a#3 >> (byte) 1
[90] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte) 1
to:mul16u::@1
(void()) init_irq()
init_irq: scope:[init_irq] from main::@8
asm { sei }
[92] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -185,6 +195,8 @@ init_irq: scope:[init_irq] from main::@8
init_irq::@return: scope:[init_irq] from init_irq
[100] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@10
[101] phi()
[102] call memset
@ -196,6 +208,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[105] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[106] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[106] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -217,6 +231,8 @@ memset::@3: scope:[memset] from memset::@2
[113] *((byte*) memset::dst#2) ← (byte) memset::c#4
[114] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main::@9
[115] phi()
to:bitmap_init::@1
@ -257,6 +273,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[136] return
to:@return
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
sin16s_gen2: scope:[sin16s_gen2] from main
[137] phi()
[138] call div32u16u
@ -292,6 +310,8 @@ sin16s_gen2::@5: scope:[sin16s_gen2] from sin16s_gen2::@4
[154] (dword) sin16s_gen2::x#1 ← (dword) sin16s_gen2::x#2 + (dword) sin16s_gen2::step#0
[155] (word) sin16s_gen2::i#1 ← ++ (word) sin16s_gen2::i#2
to:sin16s_gen2::@1
(signed word()) sin16s((dword) sin16s::x)
sin16s: scope:[sin16s] from sin16s_gen2::@2
[156] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1
to:sin16s::@4
@ -361,6 +381,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3
sin16s::@12: scope:[sin16s] from sin16s::@11
[195] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1
to:sin16s::@3
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@8 sin16s::@9
[196] (byte) mulu16_sel::select#5 ← phi( sin16s::@9/(byte) 0 sin16s::@10/(byte) 0 sin16s::@2/(byte) 0 sin16s::@7/(byte) 1 sin16s::@8/(byte) 1 )
[196] (word) mulu16_sel::v2#5 ← phi( sin16s::@9/(word) mulu16_sel::v2#3 sin16s::@10/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@7/(word) mulu16_sel::v2#1 sin16s::@8/(word)(number) $10000/(number) 6 )
@ -378,6 +400,8 @@ mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1
[204] return
to:@return
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
div32u16u: scope:[div32u16u] from sin16s_gen2
[205] phi()
[206] call divr16u
@ -396,6 +420,8 @@ div32u16u::@2: scope:[div32u16u] from div32u16u::@1
div32u16u::@return: scope:[div32u16u] from div32u16u::@2
[214] return
to:@return
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
divr16u: scope:[divr16u] from div32u16u div32u16u::@1
[215] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@1/<(const dword) PI2_u4f28#0 )
[215] (word) divr16u::rem#10 ← phi( div32u16u/(byte) 0 div32u16u::@1/(word) divr16u::rem#4 )
@ -435,6 +461,8 @@ divr16u::@6: scope:[divr16u] from divr16u::@3
divr16u::@return: scope:[divr16u] from divr16u::@6
[232] return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
[233] *((const byte*) BGCOL#0) ← (const byte) WHITE#0
[234] if((byte) 0==(byte) frame_cnt#0) goto irq::@1

View File

@ -105,6 +105,8 @@ CONTROL FLOW GRAPH SSA
@6: scope:[] from @begin
(word) rem16u#0 ← (number) 0
to:@17
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
divr16u: scope:[divr16u] from div32u16u div32u16u::@2
(word) divr16u::divisor#6 ← phi( div32u16u/(word) divr16u::divisor#0 div32u16u::@2/(word) divr16u::divisor#1 )
(word) divr16u::dividend#5 ← phi( div32u16u/(word) divr16u::dividend#1 div32u16u::@2/(word) divr16u::dividend#2 )
@ -182,6 +184,8 @@ divr16u::@return: scope:[divr16u] from divr16u::@6
(word) rem16u#2 ← (word) rem16u#11
return
to:@return
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
div32u16u: scope:[div32u16u] from sin16s_gen2
(word) rem16u#20 ← phi( sin16s_gen2/(word) rem16u#21 )
(word) div32u16u::divisor#1 ← phi( sin16s_gen2/(word) div32u16u::divisor#0 )
@ -225,6 +229,8 @@ div32u16u::@return: scope:[div32u16u] from div32u16u::@3
(word) rem16u#5 ← (word) rem16u#14
return
to:@return
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
mul16u: scope:[mul16u] from mul16s mulu16_sel
(word) mul16u::a#6 ← phi( mul16s/(word) mul16u::a#1 mulu16_sel/(word) mul16u::a#2 )
(word) mul16u::b#2 ← phi( mul16s/(word) mul16u::b#0 mulu16_sel/(word) mul16u::b#1 )
@ -272,6 +278,8 @@ mul16u::@return: scope:[mul16u] from mul16u::@3
(dword) mul16u::return#1 ← (dword) mul16u::return#4
return
to:@return
(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b)
mul16s: scope:[mul16s] from main::@2 main::@28 sin16s_gen2::@8
(signed word) mul16s::b#3 ← phi( main::@2/(signed word) mul16s::b#1 main::@28/(signed word) mul16s::b#2 sin16s_gen2::@8/(signed word) mul16s::b#0 )
(signed word) mul16s::a#3 ← phi( main::@2/(signed word) mul16s::a#1 main::@28/(signed word) mul16s::a#2 sin16s_gen2::@8/(signed word) mul16s::a#0 )
@ -335,6 +343,8 @@ mul16s::@return: scope:[mul16s] from mul16s::@2
(dword) PI_u4f28#0 ← (number) $3243f6a9
(dword) PI_HALF_u4f28#0 ← (number) $1921fb54
to:@28
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
sin16s_gen2: scope:[sin16s_gen2] from main
(signed word*) sin16s_gen2::sintab#7 ← phi( main/(signed word*) sin16s_gen2::sintab#1 )
(word) rem16u#21 ← phi( main/(word) rem16u#23 )
@ -430,6 +440,8 @@ sin16s_gen2::@return: scope:[sin16s_gen2] from sin16s_gen2::@1
(word) rem16u#7 ← (word) rem16u#16
return
to:@return
(signed word()) sin16s((dword) sin16s::x)
sin16s: scope:[sin16s] from sin16s_gen2::@2
(dword) sin16s::x#3 ← phi( sin16s_gen2::@2/(dword) sin16s::x#0 )
(byte) sin16s::isUpper#0 ← (number) 0
@ -551,6 +563,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3
(signed word) sin16s::return#2 ← (signed word) sin16s::return#4
return
to:@return
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9
(byte) mulu16_sel::select#6 ← phi( sin16s::@10/(byte) mulu16_sel::select#3 sin16s::@11/(byte) mulu16_sel::select#4 sin16s::@2/(byte) mulu16_sel::select#0 sin16s::@8/(byte) mulu16_sel::select#1 sin16s::@9/(byte) mulu16_sel::select#2 )
(word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(word) mulu16_sel::v2#2 )
@ -573,6 +587,8 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2
(word) mulu16_sel::return#6 ← (word) mulu16_sel::return#12
return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
(byte) memset::c#5 ← phi( bitmap_clear/(byte) memset::c#0 bitmap_clear::@1/(byte) memset::c#1 )
(void*) memset::str#4 ← phi( bitmap_clear/(void*) memset::str#0 bitmap_clear::@1/(void*) memset::str#1 )
@ -623,6 +639,8 @@ memset::@return: scope:[memset] from memset::@1
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
to:@34
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main::@24
(byte*) bitmap_init::screen#1 ← phi( main::@24/(byte*) bitmap_init::screen#0 )
(byte*) bitmap_init::gfx#1 ← phi( main::@24/(byte*) bitmap_init::gfx#0 )
@ -707,6 +725,8 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
(byte*) bitmap_screen#2 ← (byte*) bitmap_screen#6
return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@25
(byte*) bitmap_gfx#12 ← phi( main::@25/(byte*) bitmap_gfx#3 )
(byte*) bitmap_screen#7 ← phi( main::@25/(byte*) bitmap_screen#3 )
@ -734,6 +754,8 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2
return
to:@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@29
(word) bitmap_plot::x#1 ← phi( main::@29/(word) bitmap_plot::x#0 )
(byte) bitmap_plot::y#1 ← phi( main::@29/(byte) bitmap_plot::y#0 )
@ -756,6 +778,8 @@ bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
(byte[$100]) plots_per_frame#0 ← { fill( $100, 0) }
(signed word[$200]) SINUS#0 ← { fill( $200, 0) }
to:@35
(void()) main()
main: scope:[main] from @37
(byte) frame_cnt#26 ← phi( @37/(byte) frame_cnt#8 )
(byte*) bitmap_screen#17 ← phi( @37/(byte*) bitmap_screen#14 )
@ -1038,6 +1062,8 @@ main::@return: scope:[main] from main::@17
(word) rem16u#30 ← phi( @34/(word) rem16u#35 )
(byte) frame_cnt#0 ← (number) 1
to:@37
(void()) init_irq()
init_irq: scope:[init_irq] from main::@23
asm { sei }
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
@ -1053,6 +1079,8 @@ init_irq: scope:[init_irq] from main::@23
init_irq::@return: scope:[init_irq] from init_irq
return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
(byte) frame_cnt#4 ← phi( @37/(byte) frame_cnt#8 )
*((byte*) BGCOL#0) ← (byte) WHITE#0
@ -3244,6 +3272,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @2
[4] phi()
(void()) main()
main: scope:[main] from @2
[5] phi()
[6] call sin16s_gen2
@ -3337,6 +3367,8 @@ main::@5: scope:[main] from main::@15 main::@4 main::@6
main::@7: scope:[main] from main::@5 main::@7
[56] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
to:main::@7
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from main::@13
[57] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#0) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#0)
[58] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#0 & (word) $fff8
@ -3347,6 +3379,8 @@ bitmap_plot: scope:[bitmap_plot] from main::@13
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[62] return
to:@return
(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b)
mul16s: scope:[mul16s] from main::@12 main::@2 sin16s_gen2::@4
[63] (signed word) mul16s::b#3 ← phi( main::@2/(signed word) mul16s::b#1 main::@12/(signed word) mul16s::b#2 sin16s_gen2::@4/(const signed word) sin16s_gen2::ampl#0 )
[63] (signed word) mul16s::a#3 ← phi( main::@2/(signed word) mul16s::a#1 main::@12/(signed word) mul16s::a#2 sin16s_gen2::@4/(signed word) mul16s::a#0 )
@ -3380,6 +3414,8 @@ mul16s::@2: scope:[mul16s] from mul16s::@1 mul16s::@4
mul16s::@return: scope:[mul16s] from mul16s::@2
[80] return
to:@return
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
mul16u: scope:[mul16u] from mul16s mulu16_sel
[81] (word) mul16u::a#6 ← phi( mul16s/(word) mul16u::a#1 mulu16_sel/(word) mul16u::a#2 )
[81] (dword) mul16u::mb#0 ← phi( mul16s/(word) mul16u::b#0 mulu16_sel/(word) mul16u::b#1 )
@ -3405,6 +3441,8 @@ mul16u::@3: scope:[mul16u] from mul16u::@2 mul16u::@4
[89] (word) mul16u::a#0 ← (word) mul16u::a#3 >> (byte) 1
[90] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte) 1
to:mul16u::@1
(void()) init_irq()
init_irq: scope:[init_irq] from main::@8
asm { sei }
[92] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -3419,6 +3457,8 @@ init_irq: scope:[init_irq] from main::@8
init_irq::@return: scope:[init_irq] from init_irq
[100] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@10
[101] phi()
[102] call memset
@ -3430,6 +3470,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[105] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[106] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[106] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -3451,6 +3493,8 @@ memset::@3: scope:[memset] from memset::@2
[113] *((byte*) memset::dst#2) ← (byte) memset::c#4
[114] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main::@9
[115] phi()
to:bitmap_init::@1
@ -3491,6 +3535,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[136] return
to:@return
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
sin16s_gen2: scope:[sin16s_gen2] from main
[137] phi()
[138] call div32u16u
@ -3526,6 +3572,8 @@ sin16s_gen2::@5: scope:[sin16s_gen2] from sin16s_gen2::@4
[154] (dword) sin16s_gen2::x#1 ← (dword) sin16s_gen2::x#2 + (dword) sin16s_gen2::step#0
[155] (word) sin16s_gen2::i#1 ← ++ (word) sin16s_gen2::i#2
to:sin16s_gen2::@1
(signed word()) sin16s((dword) sin16s::x)
sin16s: scope:[sin16s] from sin16s_gen2::@2
[156] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1
to:sin16s::@4
@ -3595,6 +3643,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3
sin16s::@12: scope:[sin16s] from sin16s::@11
[195] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1
to:sin16s::@3
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@2 sin16s::@7 sin16s::@8 sin16s::@9
[196] (byte) mulu16_sel::select#5 ← phi( sin16s::@9/(byte) 0 sin16s::@10/(byte) 0 sin16s::@2/(byte) 0 sin16s::@7/(byte) 1 sin16s::@8/(byte) 1 )
[196] (word) mulu16_sel::v2#5 ← phi( sin16s::@9/(word) mulu16_sel::v2#3 sin16s::@10/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@7/(word) mulu16_sel::v2#1 sin16s::@8/(word)(number) $10000/(number) 6 )
@ -3612,6 +3662,8 @@ mulu16_sel::@1: scope:[mulu16_sel] from mulu16_sel
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@1
[204] return
to:@return
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
div32u16u: scope:[div32u16u] from sin16s_gen2
[205] phi()
[206] call divr16u
@ -3630,6 +3682,8 @@ div32u16u::@2: scope:[div32u16u] from div32u16u::@1
div32u16u::@return: scope:[div32u16u] from div32u16u::@2
[214] return
to:@return
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
divr16u: scope:[divr16u] from div32u16u div32u16u::@1
[215] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@1/<(const dword) PI2_u4f28#0 )
[215] (word) divr16u::rem#10 ← phi( div32u16u/(byte) 0 div32u16u::@1/(word) divr16u::rem#4 )
@ -3669,6 +3723,8 @@ divr16u::@6: scope:[divr16u] from divr16u::@3
divr16u::@return: scope:[divr16u] from divr16u::@6
[232] return
to:@return
interrupt(HARDWARE_CLOBBER)(void()) irq()
irq: scope:[irq] from
[233] *((const byte*) BGCOL#0) ← (const byte) WHITE#0
[234] if((byte) 0==(byte) frame_cnt#0) goto irq::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call bitmap_init
@ -45,6 +47,8 @@ main::@7: scope:[main] from main::@2
[21] (byte) main::a#1 ← (byte) main::a#2 + (byte) $20
[22] (byte) main::i#1 ← ++ (byte) main::i#2
to:main::@1
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
bitmap_line: scope:[bitmap_line] from main::@2
[23] (word) abs_u16::w#0 ← (word) bitmap_line::x2#0 - (word) bitmap_line::x1#0
[24] call abs_u16
@ -143,6 +147,8 @@ bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18
[72] (word) bitmap_plot::x#0 ← (word) bitmap_line::x1#0
[73] call bitmap_plot
to:bitmap_line::@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
[74] (word) bitmap_plot::x#4 ← phi( bitmap_line::@9/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(word) bitmap_plot::x#0 bitmap_line::@6/(word) bitmap_plot::x#1 )
[74] (byte) bitmap_plot::y#4 ← phi( bitmap_line::@9/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) bitmap_plot::y#0 bitmap_line::@6/(byte) bitmap_plot::y#1 )
@ -155,6 +161,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[80] return
to:@return
(word()) sgn_u16((word) sgn_u16::w)
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
[81] (word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@14/(word) sgn_u16::w#1 )
[82] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
@ -168,6 +176,8 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
[86] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(byte) -1 sgn_u16/(byte) 1 )
[87] return
to:@return
(word()) abs_u16((word) abs_u16::w)
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
[88] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@12/(word) abs_u16::w#1 )
[89] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
@ -181,6 +191,8 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
[93] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
[94] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@5
[95] phi()
[96] call memset
@ -192,6 +204,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[99] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[100] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[100] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -213,6 +227,8 @@ memset::@3: scope:[memset] from memset::@2
[107] *((byte*) memset::dst#2) ← (byte) memset::c#4
[108] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
[109] phi()
to:bitmap_init::@1

View File

@ -98,6 +98,8 @@ CONTROL FLOW GRAPH SSA
(byte) BLACK#0 ← (number) 0
(byte) WHITE#0 ← (number) 1
to:@8
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
(byte) memset::c#5 ← phi( bitmap_clear/(byte) memset::c#0 bitmap_clear::@1/(byte) memset::c#1 )
(void*) memset::str#4 ← phi( bitmap_clear/(void*) memset::str#0 bitmap_clear::@1/(void*) memset::str#1 )
@ -147,6 +149,8 @@ memset::@return: scope:[memset] from memset::@1
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
to:@46
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
(byte*) bitmap_init::screen#1 ← phi( main/(byte*) bitmap_init::screen#0 )
(byte*) bitmap_init::gfx#1 ← phi( main/(byte*) bitmap_init::gfx#0 )
@ -231,6 +235,8 @@ bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
(byte*) bitmap_screen#2 ← (byte*) bitmap_screen#6
return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@14
(byte*) bitmap_gfx#12 ← phi( main::@14/(byte*) bitmap_gfx#3 )
(byte*) bitmap_screen#7 ← phi( main::@14/(byte*) bitmap_screen#3 )
@ -258,6 +264,8 @@ bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@2
return
to:@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@12 bitmap_line::@3 bitmap_line::@4 bitmap_line::@7
(word) bitmap_plot::x#4 ← phi( bitmap_line::@12/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(word) bitmap_plot::x#0 bitmap_line::@7/(word) bitmap_plot::x#1 )
(byte) bitmap_plot::y#4 ← phi( bitmap_line::@12/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) bitmap_plot::y#0 bitmap_line::@7/(byte) bitmap_plot::y#1 )
@ -271,6 +279,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@12 bitmap_line::@3 bitmap_l
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
return
to:@return
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
bitmap_line: scope:[bitmap_line] from main::@2
(word) bitmap_line::y2#4 ← phi( main::@2/(word) bitmap_line::y2#0 )
(word) bitmap_line::x2#1 ← phi( main::@2/(word) bitmap_line::x2#0 )
@ -510,6 +520,8 @@ bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@23
(word) bitmap_line::y#2 ← (word) bitmap_line::y#9 + (word) bitmap_line::sy#2
(word) bitmap_line::e1#2 ← (word) bitmap_line::e1#4 - (word) bitmap_line::dx#6
to:bitmap_line::@13
(word()) abs_u16((word) abs_u16::w)
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@16
(word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@16/(word) abs_u16::w#1 )
(byte~) abs_u16::$0 ← > (word) abs_u16::w#2
@ -531,6 +543,8 @@ abs_u16::@return: scope:[abs_u16] from abs_u16::@1 abs_u16::@3
(word) abs_u16::return#4 ← (word) abs_u16::return#7
return
to:@return
(word()) sgn_u16((word) sgn_u16::w)
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@18
(word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@18/(word) sgn_u16::w#1 )
(byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
@ -558,6 +572,8 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16::@1 sgn_u16::@3
(byte*~) $0 ← (byte[$180]) SINTAB#0 + (number) $40
(byte*) COSTAB#0 ← (byte*~) $0
to:@47
(void()) main()
main: scope:[main] from @47
(byte*) COSTAB#9 ← phi( @47/(byte*) COSTAB#10 )
(byte*) bitmap_screen#12 ← phi( @47/(byte*) bitmap_screen#14 )
@ -1986,6 +2002,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call bitmap_init
@ -2024,6 +2042,8 @@ main::@7: scope:[main] from main::@2
[21] (byte) main::a#1 ← (byte) main::a#2 + (byte) $20
[22] (byte) main::i#1 ← ++ (byte) main::i#2
to:main::@1
(void()) bitmap_line((word) bitmap_line::x1 , (word) bitmap_line::y1 , (word) bitmap_line::x2 , (word) bitmap_line::y2)
bitmap_line: scope:[bitmap_line] from main::@2
[23] (word) abs_u16::w#0 ← (word) bitmap_line::x2#0 - (word) bitmap_line::x1#0
[24] call abs_u16
@ -2122,6 +2142,8 @@ bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18
[72] (word) bitmap_plot::x#0 ← (word) bitmap_line::x1#0
[73] call bitmap_plot
to:bitmap_line::@return
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
[74] (word) bitmap_plot::x#4 ← phi( bitmap_line::@9/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(word) bitmap_plot::x#0 bitmap_line::@6/(word) bitmap_plot::x#1 )
[74] (byte) bitmap_plot::y#4 ← phi( bitmap_line::@9/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) bitmap_plot::y#0 bitmap_line::@6/(byte) bitmap_plot::y#1 )
@ -2134,6 +2156,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_li
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[80] return
to:@return
(word()) sgn_u16((word) sgn_u16::w)
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
[81] (word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@14/(word) sgn_u16::w#1 )
[82] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
@ -2147,6 +2171,8 @@ sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
[86] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(byte) -1 sgn_u16/(byte) 1 )
[87] return
to:@return
(word()) abs_u16((word) abs_u16::w)
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
[88] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@12/(word) abs_u16::w#1 )
[89] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
@ -2160,6 +2186,8 @@ abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
[93] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
[94] return
to:@return
(void()) bitmap_clear((byte) bitmap_clear::bgcol , (byte) bitmap_clear::fgcol)
bitmap_clear: scope:[bitmap_clear] from main::@5
[95] phi()
[96] call memset
@ -2171,6 +2199,8 @@ bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[99] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[100] (byte) memset::c#4 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[100] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP#0 )
@ -2192,6 +2222,8 @@ memset::@3: scope:[memset] from memset::@2
[107] *((byte*) memset::dst#2) ← (byte) memset::c#4
[108] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) bitmap_init((byte*) bitmap_init::gfx , (byte*) bitmap_init::screen)
bitmap_init: scope:[bitmap_init] from main
[109] phi()
to:bitmap_init::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) BGCOL#0) ← (byte) 0
[5] *((const byte*) FGCOL#0) ← (byte) 0
@ -28,6 +30,8 @@ main::@2: scope:[main] from main::@1
main::@4: scope:[main] from main::@2
[14] *((const byte*) BGCOL#0) ← -- *((const byte*) BGCOL#0)
to:main::@1
(void()) plots()
plots: scope:[plots] from main::@2
[15] phi()
to:plots::@1
@ -46,6 +50,8 @@ plots::@2: scope:[plots] from plots::@1
plots::@3: scope:[plots] from plots::@2
[22] (byte) plots::i#1 ← ++ (byte) plots::i#2
to:plots::@1
(void()) plot((byte) plot::x , (byte) plot::y)
plot: scope:[plot] from plots::@2
[23] (byte~) plot::$6 ← *((const byte[$100]) plot_xhi#0 + (byte) plot::x#0)
[24] (byte*) plot::plotter_x#1 ← (byte*) 0 hi= (byte~) plot::$6
@ -62,6 +68,8 @@ plot: scope:[plot] from plots::@2
plot::@return: scope:[plot] from plot
[34] return
to:@return
(void()) init_plot_tables()
init_plot_tables: scope:[init_plot_tables] from main::@3
[35] phi()
to:init_plot_tables::@1
@ -105,6 +113,8 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p
init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4
[59] return
to:@return
(void()) init_screen()
init_screen: scope:[init_screen] from main
[60] phi()
to:init_screen::@1

View File

@ -44,6 +44,8 @@ CONTROL FLOW GRAPH SSA
(byte*) SCREEN#0 ← ((byte*)) (number) $400
(byte*) BITMAP#0 ← ((byte*)) (number) $2000
to:@1
(void()) main()
main: scope:[main] from @5
*((byte*) BGCOL#0) ← (number) 0
*((byte*) FGCOL#0) ← (number) 0
@ -85,6 +87,8 @@ main::@return: scope:[main] from main::@7
(byte[]) plots_y#0 ← { (number) $a, (number) $28, (number) $3c, (number) $50, (number) $6e, (number) $50, (number) $3c, (number) $28 }
(byte) plots_cnt#0 ← (number) 8
to:@2
(void()) plots()
plots: scope:[plots] from main::@3
(byte) plots::i#0 ← (number) 0
to:plots::@1
@ -113,6 +117,8 @@ plots::@return: scope:[plots] from plots::@1
(byte[$100]) plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) plot_bit#0 ← { fill( $100, 0) }
to:@5
(void()) plot((byte) plot::x , (byte) plot::y)
plot: scope:[plot] from plots::@2
(byte) plot::y#1 ← phi( plots::@2/(byte) plot::y#0 )
(byte) plot::x#1 ← phi( plots::@2/(byte) plot::x#0 )
@ -134,6 +140,8 @@ plot: scope:[plot] from plots::@2
plot::@return: scope:[plot] from plot
return
to:@return
(void()) init_plot_tables()
init_plot_tables: scope:[init_plot_tables] from main::@5
(byte) init_plot_tables::bits#0 ← (number) $80
(byte) init_plot_tables::x#0 ← (byte) 0
@ -197,6 +205,8 @@ init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@5
init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@6
return
to:@return
(void()) init_screen()
init_screen: scope:[init_screen] from main
(byte*) init_screen::b#0 ← (byte*) BITMAP#0
to:init_screen::@1
@ -780,6 +790,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) BGCOL#0) ← (byte) 0
[5] *((const byte*) FGCOL#0) ← (byte) 0
@ -801,6 +813,8 @@ main::@2: scope:[main] from main::@1
main::@4: scope:[main] from main::@2
[14] *((const byte*) BGCOL#0) ← -- *((const byte*) BGCOL#0)
to:main::@1
(void()) plots()
plots: scope:[plots] from main::@2
[15] phi()
to:plots::@1
@ -819,6 +833,8 @@ plots::@2: scope:[plots] from plots::@1
plots::@3: scope:[plots] from plots::@2
[22] (byte) plots::i#1 ← ++ (byte) plots::i#2
to:plots::@1
(void()) plot((byte) plot::x , (byte) plot::y)
plot: scope:[plot] from plots::@2
[23] (byte~) plot::$6 ← *((const byte[$100]) plot_xhi#0 + (byte) plot::x#0)
[24] (byte*) plot::plotter_x#1 ← (byte*) 0 hi= (byte~) plot::$6
@ -835,6 +851,8 @@ plot: scope:[plot] from plots::@2
plot::@return: scope:[plot] from plot
[34] return
to:@return
(void()) init_plot_tables()
init_plot_tables: scope:[init_plot_tables] from main::@3
[35] phi()
to:init_plot_tables::@1
@ -878,6 +896,8 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p
init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4
[59] return
to:@return
(void()) init_screen()
init_screen: scope:[init_screen] from main
[60] phi()
to:init_screen::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::SCREEN#0) ← ~(byte) 1
to:main::@1

View File

@ -4,6 +4,8 @@ Culled Empty Block (label) main::@2
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
(byte*) main::SCREEN#0 ← ((byte*)) (number) $400
*((byte*) main::SCREEN#0) ← ~(byte) 1
@ -91,6 +93,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::SCREEN#0) ← ~(byte) 1
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call bool_const_if
@ -22,6 +24,8 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[10] return
to:@return
(void()) bool_const_inline()
bool_const_inline: scope:[bool_const_inline] from main::@2
[11] phi()
to:bool_const_inline::@1
@ -31,6 +35,8 @@ bool_const_inline::@1: scope:[bool_const_inline] from bool_const_inline
bool_const_inline::@return: scope:[bool_const_inline] from bool_const_inline::@1
[13] return
to:@return
(void()) bool_const_vars()
bool_const_vars: scope:[bool_const_vars] from main::@1
[14] phi()
to:bool_const_vars::@1
@ -40,6 +46,8 @@ bool_const_vars::@1: scope:[bool_const_vars] from bool_const_vars
bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@1
[16] return
to:@return
(void()) bool_const_if()
bool_const_if: scope:[bool_const_if] from main
[17] phi()
to:bool_const_if::@1

View File

@ -15,6 +15,8 @@ CONTROL FLOW GRAPH SSA
@begin: scope:[] from
(byte*) SCREEN#0 ← ((byte*)) (number) $400
to:@4
(void()) main()
main: scope:[main] from @4
call bool_const_if
to:main::@1
@ -29,6 +31,8 @@ main::@3: scope:[main] from main::@2
main::@return: scope:[main] from main::@3
return
to:@return
(void()) bool_const_if()
bool_const_if: scope:[bool_const_if] from main
(bool) bool_const_if::b#0 ← true
if((bool) bool_const_if::b#0) goto bool_const_if::@1
@ -42,6 +46,8 @@ bool_const_if::@3: scope:[bool_const_if] from bool_const_if
bool_const_if::@return: scope:[bool_const_if] from bool_const_if::@1 bool_const_if::@3
return
to:@return
(void()) bool_const_vars()
bool_const_vars: scope:[bool_const_vars] from main::@1
(byte) bool_const_vars::a#0 ← (number) $e
(bool~) bool_const_vars::$0 ← (byte) bool_const_vars::a#0 == (number) $f
@ -68,6 +74,8 @@ bool_const_vars::@3: scope:[bool_const_vars] from bool_const_vars
bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@1 bool_const_vars::@3
return
to:@return
(void()) bool_const_inline()
bool_const_inline: scope:[bool_const_inline] from main::@2
(byte) bool_const_inline::a#0 ← (number) $17
(bool~) bool_const_inline::$0 ← (byte) bool_const_inline::a#0 != (number) $2c
@ -318,6 +326,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call bool_const_if
@ -333,6 +343,8 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[10] return
to:@return
(void()) bool_const_inline()
bool_const_inline: scope:[bool_const_inline] from main::@2
[11] phi()
to:bool_const_inline::@1
@ -342,6 +354,8 @@ bool_const_inline::@1: scope:[bool_const_inline] from bool_const_inline
bool_const_inline::@return: scope:[bool_const_inline] from bool_const_inline::@1
[13] return
to:@return
(void()) bool_const_vars()
bool_const_vars: scope:[bool_const_vars] from main::@1
[14] phi()
to:bool_const_vars::@1
@ -351,6 +365,8 @@ bool_const_vars::@1: scope:[bool_const_vars] from bool_const_vars
bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@1
[16] return
to:@return
(void()) bool_const_if()
bool_const_if: scope:[bool_const_if] from main
[17] phi()
to:bool_const_if::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1
@ -35,6 +37,8 @@ main::@return: scope:[main] from main::@3
main::@2: scope:[main] from main::@5
[17] *((const byte*) main::screen#0 + (byte) main::i#2) ← (byte) '*'
to:main::@3
(bool()) isSet((byte) isSet::i , (bool) isSet::b)
isSet: scope:[isSet] from main::@1
[18] (byte~) isSet::$0 ← (byte) isSet::i#0 & (byte) 8
[19] (bool~) isSet::$1 ← (byte~) isSet::$0 != (byte) 0

View File

@ -7,6 +7,8 @@ Culled Empty Block (label) isSet::@1
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@2
(void()) main()
main: scope:[main] from @2
(byte*) main::screen#0 ← ((byte*)) (number) $400
(byte) main::i#0 ← (byte) 0
@ -43,6 +45,8 @@ main::@3: scope:[main] from main::@2 main::@4
main::@return: scope:[main] from main::@3
return
to:@return
(bool()) isSet((byte) isSet::i , (bool) isSet::b)
isSet: scope:[isSet] from main::@1
(bool) isSet::b#1 ← phi( main::@1/(bool) isSet::b#0 )
(byte) isSet::i#1 ← phi( main::@1/(byte) isSet::i#0 )
@ -187,6 +191,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1
@ -215,6 +221,8 @@ main::@return: scope:[main] from main::@3
main::@2: scope:[main] from main::@5
[17] *((const byte*) main::screen#0 + (byte) main::i#2) ← (byte) '*'
to:main::@3
(bool()) isSet((byte) isSet::i , (bool) isSet::b)
isSet: scope:[isSet] from main::@1
[18] (byte~) isSet::$0 ← (byte) isSet::i#0 & (byte) 8
[19] (bool~) isSet::$1 ← (byte~) isSet::$0 != (byte) 0

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -3,6 +3,8 @@ Culled Empty Block (label) main::@4
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
(byte*) main::screen#0 ← ((byte*)) (number) $400
(byte) main::i#0 ← (byte) 0
@ -137,6 +139,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -12,6 +12,8 @@ CONTROL FLOW GRAPH SSA
@begin: scope:[] from
(bool) framedone#0 ← true
to:@1
(void()) main()
main: scope:[main] from @1
(bool) framedone#9 ← phi( @1/(bool) framedone#8 )
to:main::@1
@ -116,6 +118,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((bool*) 1024) ← true
[5] *((bool*) 1024+(byte) 1) ← false

View File

@ -3,6 +3,8 @@ Culled Empty Block (label) main::@1
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
(bool*) main::bscreen#0 ← ((bool*)) (number) $400
*((bool*) main::bscreen#0 + (number) 0) ← true
@ -111,6 +113,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((bool*) 1024) ← true
[5] *((bool*) 1024+(byte) 1) ← false

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call bool_and
@ -26,6 +28,8 @@ main::@3: scope:[main] from main::@2
main::@return: scope:[main] from main::@3
[12] return
to:@return
(void()) bool_complex()
bool_complex: scope:[bool_complex] from main::@3
[13] phi()
to:bool_complex::@1
@ -58,6 +62,8 @@ bool_complex::@return: scope:[bool_complex] from bool_complex::@3
bool_complex::@4: scope:[bool_complex] from bool_complex::@5 bool_complex::@7
[26] *((const byte*) bool_complex::screen#0 + (byte) bool_complex::i#2) ← (byte) ' '
to:bool_complex::@3
(void()) bool_not()
bool_not: scope:[bool_not] from main::@2
[27] phi()
to:bool_not::@1
@ -82,6 +88,8 @@ bool_not::@return: scope:[bool_not] from bool_not::@3
bool_not::@4: scope:[bool_not] from bool_not::@1 bool_not::@5
[36] *((const byte*) bool_not::screen#0 + (byte) bool_not::i#2) ← (byte) ' '
to:bool_not::@3
(void()) bool_or()
bool_or: scope:[bool_or] from main::@1
[37] phi()
to:bool_or::@1
@ -106,6 +114,8 @@ bool_or::@return: scope:[bool_or] from bool_or::@3
bool_or::@2: scope:[bool_or] from bool_or::@1 bool_or::@5
[46] *((const byte*) bool_or::screen#0 + (byte) bool_or::i#2) ← (byte) '*'
to:bool_or::@3
(void()) bool_and()
bool_and: scope:[bool_and] from main
[47] phi()
to:bool_and::@1

View File

@ -14,6 +14,8 @@ Culled Empty Block (label) bool_complex::@6
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@5
(void()) main()
main: scope:[main] from @5
call bool_and
to:main::@1
@ -31,6 +33,8 @@ main::@4: scope:[main] from main::@3
main::@return: scope:[main] from main::@4
return
to:@return
(void()) bool_and()
bool_and: scope:[bool_and] from main
(byte*) bool_and::screen#0 ← ((byte*)) (number) $400
(byte) bool_and::i#0 ← (byte) 0
@ -63,6 +67,8 @@ bool_and::@3: scope:[bool_and] from bool_and::@2 bool_and::@4
bool_and::@return: scope:[bool_and] from bool_and::@3
return
to:@return
(void()) bool_or()
bool_or: scope:[bool_or] from main::@1
(byte*) bool_or::screen#0 ← ((byte*)) (number) $428
(byte) bool_or::i#0 ← (byte) 0
@ -95,6 +101,8 @@ bool_or::@3: scope:[bool_or] from bool_or::@2 bool_or::@4
bool_or::@return: scope:[bool_or] from bool_or::@3
return
to:@return
(void()) bool_not()
bool_not: scope:[bool_not] from main::@2
(byte*) bool_not::screen#0 ← ((byte*)) (number) $450
(byte) bool_not::i#0 ← (byte) 0
@ -128,6 +136,8 @@ bool_not::@3: scope:[bool_not] from bool_not::@2 bool_not::@4
bool_not::@return: scope:[bool_not] from bool_not::@3
return
to:@return
(void()) bool_complex()
bool_complex: scope:[bool_complex] from main::@3
(byte*) bool_complex::screen#0 ← ((byte*)) (number) $478
(byte) bool_complex::i#0 ← (byte) 0
@ -501,6 +511,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call bool_and
@ -520,6 +532,8 @@ main::@3: scope:[main] from main::@2
main::@return: scope:[main] from main::@3
[12] return
to:@return
(void()) bool_complex()
bool_complex: scope:[bool_complex] from main::@3
[13] phi()
to:bool_complex::@1
@ -552,6 +566,8 @@ bool_complex::@return: scope:[bool_complex] from bool_complex::@3
bool_complex::@4: scope:[bool_complex] from bool_complex::@5 bool_complex::@7
[26] *((const byte*) bool_complex::screen#0 + (byte) bool_complex::i#2) ← (byte) ' '
to:bool_complex::@3
(void()) bool_not()
bool_not: scope:[bool_not] from main::@2
[27] phi()
to:bool_not::@1
@ -576,6 +592,8 @@ bool_not::@return: scope:[bool_not] from bool_not::@3
bool_not::@4: scope:[bool_not] from bool_not::@1 bool_not::@5
[36] *((const byte*) bool_not::screen#0 + (byte) bool_not::i#2) ← (byte) ' '
to:bool_not::@3
(void()) bool_or()
bool_or: scope:[bool_or] from main::@1
[37] phi()
to:bool_or::@1
@ -600,6 +618,8 @@ bool_or::@return: scope:[bool_or] from bool_or::@3
bool_or::@2: scope:[bool_or] from bool_or::@1 bool_or::@5
[46] *((const byte*) bool_or::screen#0 + (byte) bool_or::i#2) ← (byte) '*'
to:bool_or::@3
(void()) bool_and()
bool_and: scope:[bool_and] from main
[47] phi()
to:bool_and::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -10,6 +10,8 @@ CONTROL FLOW GRAPH SSA
(byte) STAR#0 ← (number) $51
(byte[$28*$19]) SCREEN#0 ← ((byte[$28*$19])) (number) $400
to:@1
(void()) main()
main: scope:[main] from @1
(byte) main::x0#0 ← (number) 4
(byte) main::y0#0 ← (number) 4
@ -316,6 +318,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -8,6 +8,8 @@ Culled Empty Block (label) main::@4
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
(byte) main::STAR#0 ← (number) $51
(byte[$28*$19]) main::screen#0 ← ((byte[$28*$19])) (number) $400
@ -322,6 +324,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call print_cls
@ -30,6 +32,8 @@ main::@4: scope:[main] from main::@3
main::@return: scope:[main] from main::@4
[14] return
to:@return
(void()) testLong()
testLong: scope:[testLong] from main::@4
[15] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1
[16] call print_str
@ -61,6 +65,8 @@ testLong::@6: scope:[testLong] from testLong::@5
testLong::@return: scope:[testLong] from testLong::@6
[29] return
to:@return
(void()) print_ln()
print_ln: scope:[print_ln] from testChar::@6 testInt::@6 testLong::@6 testShort::@6
[30] (byte*) print_line_cursor#39 ← phi( testChar::@6/(byte*) 1024 testInt::@6/(byte*) print_line_cursor#1 testLong::@6/(byte*) print_line_cursor#1 testShort::@6/(byte*) print_line_cursor#1 )
to:print_ln::@1
@ -72,6 +78,8 @@ print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
print_ln::@return: scope:[print_ln] from print_ln::@1
[34] return
to:@return
(void()) print_sdword((signed dword) print_sdword::dw)
print_sdword: scope:[print_sdword] from testLong::@3 testLong::@5
[35] (signed dword) print_sdword::dw#3 ← phi( testLong::@3/(const signed dword) testLong::n#0 testLong::@5/(const signed dword) testLong::s#0 )
[36] if((signed dword) print_sdword::dw#3<(signed byte) 0) goto print_sdword::@1
@ -95,6 +103,8 @@ print_sdword::@1: scope:[print_sdword] from print_sdword
print_sdword::@4: scope:[print_sdword] from print_sdword::@1
[45] (signed dword) print_sdword::dw#0 ← - (signed dword) print_sdword::dw#3
to:print_sdword::@2
(void()) print_char((byte) print_char::ch)
print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@1 print_sdword::@1 print_sdword::@3 print_sword::@1 print_sword::@3 testChar::@2 testChar::@4 testInt::@2 testInt::@4 testLong::@2 testLong::@4 testShort::@2 testShort::@4
[46] (byte*) print_char_cursor#94 ← phi( print_byte/(byte*) print_char_cursor#149 print_byte::@1/(byte*) print_char_cursor#26 print_sbyte::@1/(byte*) print_char_cursor#26 print_sdword::@1/(byte*) print_char_cursor#26 print_sdword::@3/(byte*) print_char_cursor#26 print_sword::@1/(byte*) print_char_cursor#26 print_sword::@3/(byte*) print_char_cursor#26 testChar::@2/(byte*) print_char_cursor#26 testChar::@4/(byte*) print_char_cursor#26 testInt::@2/(byte*) print_char_cursor#26 testInt::@4/(byte*) print_char_cursor#26 testLong::@2/(byte*) print_char_cursor#26 testLong::@4/(byte*) print_char_cursor#26 testShort::@2/(byte*) print_char_cursor#26 testShort::@4/(byte*) print_char_cursor#26 )
[46] (byte) print_char::ch#16 ← phi( print_byte/(byte) print_char::ch#6 print_byte::@1/(byte) print_char::ch#7 print_sbyte::@1/(byte) '-' print_sdword::@1/(byte) '-' print_sdword::@3/(byte) ' ' print_sword::@1/(byte) '-' print_sword::@3/(byte) ' ' testChar::@2/(byte) ' ' testChar::@4/(byte) ' ' testInt::@2/(byte) ' ' testInt::@4/(byte) ' ' testLong::@2/(byte) ' ' testLong::@4/(byte) ' ' testShort::@2/(byte) ' ' testShort::@4/(byte) ' ' )
@ -104,6 +114,8 @@ print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@1 p
print_char::@return: scope:[print_char] from print_char
[49] return
to:@return
(void()) print_dword((dword) print_dword::dw)
print_dword: scope:[print_dword] from print_sdword::@2 testLong::@1
[50] (byte*) print_char_cursor#145 ← phi( print_sdword::@2/(byte*) print_char_cursor#26 testLong::@1/(byte*) print_char_cursor#136 )
[50] (dword) print_dword::dw#2 ← phi( print_sdword::@2/(dword) print_dword::dw#0 testLong::@1/(const dword) testLong::u#0 )
@ -117,6 +129,8 @@ print_dword::@1: scope:[print_dword] from print_dword
print_dword::@return: scope:[print_dword] from print_dword::@1
[55] return
to:@return
(void()) print_word((word) print_word::w)
print_word: scope:[print_word] from print_dword print_dword::@1 print_sword::@2 testInt::@1 testShort::@1
[56] (byte*) print_char_cursor#144 ← phi( print_dword/(byte*) print_char_cursor#145 print_dword::@1/(byte*) print_char_cursor#26 print_sword::@2/(byte*) print_char_cursor#26 testInt::@1/(byte*) print_char_cursor#136 testShort::@1/(byte*) print_char_cursor#136 )
[56] (word) print_word::w#5 ← phi( print_dword/(word) print_word::w#1 print_dword::@1/(word) print_word::w#2 print_sword::@2/(word) print_word::w#0 testInt::@1/(const word) testInt::u#0 testShort::@1/(const word) testShort::u#0 )
@ -130,6 +144,8 @@ print_word::@1: scope:[print_word] from print_word
print_word::@return: scope:[print_word] from print_word::@1
[61] return
to:@return
(void()) print_byte((byte) print_byte::b)
print_byte: scope:[print_byte] from print_sbyte::@2 print_word print_word::@1 testChar::@1 testChar::@3
[62] (byte*) print_char_cursor#149 ← phi( print_sbyte::@2/(byte*) print_char_cursor#26 print_word/(byte*) print_char_cursor#144 print_word::@1/(byte*) print_char_cursor#26 testChar::@1/(byte*) print_char_cursor#136 testChar::@3/(byte*) print_char_cursor#26 )
[62] (byte) print_byte::b#5 ← phi( print_sbyte::@2/(byte)(const signed byte) print_sbyte::b#0 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 testChar::@1/(const byte) testChar::u#0 testChar::@3/(const byte) testChar::n#0 )
@ -145,6 +161,8 @@ print_byte::@1: scope:[print_byte] from print_byte
print_byte::@return: scope:[print_byte] from print_byte::@1
[69] return
to:@return
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from testChar testInt testLong testShort
[70] (byte*) print_char_cursor#156 ← phi( testChar/(byte*) 1024 testInt/(byte*~) print_char_cursor#161 testLong/(byte*~) print_char_cursor#162 testShort/(byte*~) print_char_cursor#163 )
[70] (byte*) print_str::str#7 ← phi( testChar/(const string) testChar::str testInt/(const string) testInt::str testLong/(const string) testLong::str testShort/(const string) testShort::str )
@ -162,6 +180,8 @@ print_str::@2: scope:[print_str] from print_str::@1
[75] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#136
[76] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#5
to:print_str::@1
(void()) testInt()
testInt: scope:[testInt] from main::@3
[77] (byte*~) print_char_cursor#161 ← (byte*) print_line_cursor#1
[78] call print_str
@ -193,6 +213,8 @@ testInt::@6: scope:[testInt] from testInt::@5
testInt::@return: scope:[testInt] from testInt::@6
[91] return
to:@return
(void()) print_sword((signed word) print_sword::w)
print_sword: scope:[print_sword] from testInt::@3 testInt::@5 testShort::@3 testShort::@5
[92] (signed word) print_sword::w#10 ← phi( testInt::@3/(const signed word) testInt::n#0 testInt::@5/(const signed word) testInt::s#0 testShort::@3/(const signed word) testShort::n#0 testShort::@5/(const signed word) testShort::s#0 )
[93] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1
@ -216,6 +238,8 @@ print_sword::@1: scope:[print_sword] from print_sword
print_sword::@4: scope:[print_sword] from print_sword::@1
[102] (signed word) print_sword::w#0 ← - (signed word) print_sword::w#10
to:print_sword::@2
(void()) testShort()
testShort: scope:[testShort] from main::@2
[103] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1
[104] call print_str
@ -247,6 +271,8 @@ testShort::@6: scope:[testShort] from testShort::@5
testShort::@return: scope:[testShort] from testShort::@6
[117] return
to:@return
(void()) testChar()
testChar: scope:[testChar] from main::@1
[118] phi()
[119] call print_str
@ -278,6 +304,8 @@ testChar::@6: scope:[testChar] from testChar::@5
testChar::@return: scope:[testChar] from testChar::@6
[132] return
to:@return
(void()) print_sbyte((signed byte) print_sbyte::b)
print_sbyte: scope:[print_sbyte] from testChar::@5
[133] phi()
to:print_sbyte::@1
@ -292,6 +320,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte::@1
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@2
[138] return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from main
[139] phi()
[140] call memset
@ -299,6 +329,8 @@ print_cls: scope:[print_cls] from main
print_cls::@return: scope:[print_cls] from print_cls
[141] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[142] phi()
to:memset::@1

View File

@ -76,6 +76,8 @@ Culled Empty Block (label) @40
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@12
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
(byte) memset::c#4 ← phi( print_cls/(byte) memset::c#0 )
(void*) memset::str#3 ← phi( print_cls/(void*) memset::str#0 )
@ -123,6 +125,8 @@ memset::@return: scope:[memset] from memset::@1
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
to:@29
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from testChar testInt testLong testShort
(byte*) print_char_cursor#156 ← phi( testChar/(byte*) print_char_cursor#151 testInt/(byte*) print_char_cursor#153 testLong/(byte*) print_char_cursor#154 testShort/(byte*) print_char_cursor#152 )
(byte*) print_str::str#7 ← phi( testChar/(byte*) print_str::str#1 testInt/(byte*) print_str::str#3 testLong/(byte*) print_str::str#4 testShort/(byte*) print_str::str#2 )
@ -145,6 +149,8 @@ print_str::@return: scope:[print_str] from print_str::@1
(byte*) print_char_cursor#2 ← (byte*) print_char_cursor#70
return
to:@return
(void()) print_ln()
print_ln: scope:[print_ln] from testChar::@6 testInt::@6 testLong::@6 testShort::@6
(byte*) print_char_cursor#137 ← phi( testChar::@6/(byte*) print_char_cursor#41 testInt::@6/(byte*) print_char_cursor#57 testLong::@6/(byte*) print_char_cursor#65 testShort::@6/(byte*) print_char_cursor#49 )
(byte*) print_line_cursor#39 ← phi( testChar::@6/(byte*) print_line_cursor#41 testInt::@6/(byte*) print_line_cursor#43 testLong::@6/(byte*) print_line_cursor#44 testShort::@6/(byte*) print_line_cursor#42 )
@ -168,6 +174,8 @@ print_ln::@return: scope:[print_ln] from print_ln::@2
(byte*) print_char_cursor#4 ← (byte*) print_char_cursor#72
return
to:@return
(void()) print_sword((signed word) print_sword::w)
print_sword: scope:[print_sword] from testInt::@3 testInt::@5 testShort::@3 testShort::@5
(byte*) print_char_cursor#157 ← phi( testInt::@3/(byte*) print_char_cursor#54 testInt::@5/(byte*) print_char_cursor#56 testShort::@3/(byte*) print_char_cursor#46 testShort::@5/(byte*) print_char_cursor#48 )
(signed word) print_sword::w#5 ← phi( testInt::@3/(signed word) print_sword::w#3 testInt::@5/(signed word) print_sword::w#4 testShort::@3/(signed word) print_sword::w#1 testShort::@5/(signed word) print_sword::w#2 )
@ -214,6 +222,8 @@ print_sword::@return: scope:[print_sword] from print_sword::@7
(byte*) print_char_cursor#8 ← (byte*) print_char_cursor#76
return
to:@return
(void()) print_sbyte((signed byte) print_sbyte::b)
print_sbyte: scope:[print_sbyte] from testChar::@5
(byte*) print_char_cursor#158 ← phi( testChar::@5/(byte*) print_char_cursor#40 )
(signed byte) print_sbyte::b#2 ← phi( testChar::@5/(signed byte) print_sbyte::b#1 )
@ -260,6 +270,8 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@7
(byte*) print_char_cursor#12 ← (byte*) print_char_cursor#80
return
to:@return
(void()) print_word((word) print_word::w)
print_word: scope:[print_word] from print_dword print_dword::@1 print_sword::@2 testInt::@1 testShort::@1
(byte*) print_char_cursor#144 ← phi( print_dword/(byte*) print_char_cursor#145 print_dword::@1/(byte*) print_char_cursor#16 print_sword::@2/(byte*) print_char_cursor#140 testInt::@1/(byte*) print_char_cursor#52 testShort::@1/(byte*) print_char_cursor#44 )
(word) print_word::w#5 ← phi( print_dword/(word) print_word::w#1 print_dword::@1/(word) print_word::w#2 print_sword::@2/(word) print_word::w#0 testInt::@1/(word) print_word::w#4 testShort::@1/(word) print_word::w#3 )
@ -284,6 +296,8 @@ print_word::@return: scope:[print_word] from print_word::@2
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#83
return
to:@return
(void()) print_dword((dword) print_dword::dw)
print_dword: scope:[print_dword] from print_sdword::@2 testLong::@1
(byte*) print_char_cursor#145 ← phi( print_sdword::@2/(byte*) print_char_cursor#148 testLong::@1/(byte*) print_char_cursor#60 )
(dword) print_dword::dw#2 ← phi( print_sdword::@2/(dword) print_dword::dw#0 testLong::@1/(dword) print_dword::dw#1 )
@ -308,6 +322,8 @@ print_dword::@return: scope:[print_dword] from print_dword::@2
(byte*) print_char_cursor#18 ← (byte*) print_char_cursor#86
return
to:@return
(void()) print_sdword((signed dword) print_sdword::dw)
print_sdword: scope:[print_sdword] from testLong::@3 testLong::@5
(byte*) print_char_cursor#159 ← phi( testLong::@3/(byte*) print_char_cursor#62 testLong::@5/(byte*) print_char_cursor#64 )
(signed dword) print_sdword::dw#3 ← phi( testLong::@3/(signed dword) print_sdword::dw#1 testLong::@5/(signed dword) print_sdword::dw#2 )
@ -360,6 +376,8 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@7
(byte*) print_line_cursor#50 ← phi( @12/(byte*) print_line_cursor#0 )
(byte[]) print_hextab#0 ← (const string) $0
to:@41
(void()) print_byte((byte) print_byte::b)
print_byte: scope:[print_byte] from print_sbyte::@2 print_word print_word::@1 testChar::@1 testChar::@3
(byte*) print_char_cursor#149 ← phi( print_sbyte::@2/(byte*) print_char_cursor#143 print_word/(byte*) print_char_cursor#144 print_word::@1/(byte*) print_char_cursor#13 testChar::@1/(byte*) print_char_cursor#36 testChar::@3/(byte*) print_char_cursor#38 )
(byte) print_byte::b#5 ← phi( print_sbyte::@2/(byte) print_byte::b#0 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 testChar::@1/(byte) print_byte::b#3 testChar::@3/(byte) print_byte::b#4 )
@ -384,6 +402,8 @@ print_byte::@return: scope:[print_byte] from print_byte::@2
(byte*) print_char_cursor#25 ← (byte*) print_char_cursor#93
return
to:@return
(void()) print_char((byte) print_char::ch)
print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@1 print_sbyte::@3 print_sdword::@1 print_sdword::@3 print_sword::@1 print_sword::@3 testChar::@2 testChar::@4 testInt::@2 testInt::@4 testLong::@2 testLong::@4 testShort::@2 testShort::@4
(byte*) print_char_cursor#94 ← phi( print_byte/(byte*) print_char_cursor#149 print_byte::@1/(byte*) print_char_cursor#23 print_sbyte::@1/(byte*) print_char_cursor#141 print_sbyte::@3/(byte*) print_char_cursor#142 print_sdword::@1/(byte*) print_char_cursor#146 print_sdword::@3/(byte*) print_char_cursor#147 print_sword::@1/(byte*) print_char_cursor#138 print_sword::@3/(byte*) print_char_cursor#139 testChar::@2/(byte*) print_char_cursor#37 testChar::@4/(byte*) print_char_cursor#39 testInt::@2/(byte*) print_char_cursor#53 testInt::@4/(byte*) print_char_cursor#55 testLong::@2/(byte*) print_char_cursor#61 testLong::@4/(byte*) print_char_cursor#63 testShort::@2/(byte*) print_char_cursor#45 testShort::@4/(byte*) print_char_cursor#47 )
(byte) print_char::ch#16 ← phi( print_byte/(byte) print_char::ch#6 print_byte::@1/(byte) print_char::ch#7 print_sbyte::@1/(byte) print_char::ch#2 print_sbyte::@3/(byte) print_char::ch#3 print_sdword::@1/(byte) print_char::ch#4 print_sdword::@3/(byte) print_char::ch#5 print_sword::@1/(byte) print_char::ch#0 print_sword::@3/(byte) print_char::ch#1 testChar::@2/(byte) print_char::ch#8 testChar::@4/(byte) print_char::ch#9 testInt::@2/(byte) print_char::ch#12 testInt::@4/(byte) print_char::ch#13 testLong::@2/(byte) print_char::ch#14 testLong::@4/(byte) print_char::ch#15 testShort::@2/(byte) print_char::ch#10 testShort::@4/(byte) print_char::ch#11 )
@ -395,6 +415,8 @@ print_char::@return: scope:[print_char] from print_char
(byte*) print_char_cursor#27 ← (byte*) print_char_cursor#95
return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from main
(byte*) print_screen#1 ← phi( main/(byte*) print_screen#3 )
(void*) memset::str#0 ← (void*)(byte*) print_screen#1
@ -415,6 +437,8 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
(byte*) print_char_cursor#29 ← (byte*) print_char_cursor#96
return
to:@return
(void()) main()
main: scope:[main] from @41
(byte*) print_char_cursor#150 ← phi( @41/(byte*) print_char_cursor#155 )
(byte*) print_line_cursor#40 ← phi( @41/(byte*) print_line_cursor#45 )
@ -462,6 +486,8 @@ main::@return: scope:[main] from main::@5
(byte*) print_char_cursor#35 ← (byte*) print_char_cursor#102
return
to:@return
(void()) testChar()
testChar: scope:[testChar] from main::@1
(byte*) print_line_cursor#67 ← phi( main::@1/(byte*) print_line_cursor#5 )
(byte*) print_char_cursor#151 ← phi( main::@1/(byte*) print_char_cursor#30 )
@ -525,6 +551,8 @@ testChar::@return: scope:[testChar] from testChar::@7
(byte*) print_line_cursor#12 ← (byte*) print_line_cursor#31
return
to:@return
(void()) testShort()
testShort: scope:[testShort] from main::@2
(byte*) print_line_cursor#68 ← phi( main::@2/(byte*) print_line_cursor#6 )
(byte*) print_char_cursor#152 ← phi( main::@2/(byte*) print_char_cursor#31 )
@ -588,6 +616,8 @@ testShort::@return: scope:[testShort] from testShort::@7
(byte*) print_line_cursor#14 ← (byte*) print_line_cursor#33
return
to:@return
(void()) testInt()
testInt: scope:[testInt] from main::@3
(byte*) print_line_cursor#69 ← phi( main::@3/(byte*) print_line_cursor#7 )
(byte*) print_char_cursor#153 ← phi( main::@3/(byte*) print_char_cursor#32 )
@ -651,6 +681,8 @@ testInt::@return: scope:[testInt] from testInt::@7
(byte*) print_line_cursor#16 ← (byte*) print_line_cursor#35
return
to:@return
(void()) testLong()
testLong: scope:[testLong] from main::@4
(byte*) print_line_cursor#70 ← phi( main::@4/(byte*) print_line_cursor#8 )
(byte*) print_char_cursor#154 ← phi( main::@4/(byte*) print_char_cursor#33 )
@ -1867,6 +1899,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call print_cls
@ -1890,6 +1924,8 @@ main::@4: scope:[main] from main::@3
main::@return: scope:[main] from main::@4
[14] return
to:@return
(void()) testLong()
testLong: scope:[testLong] from main::@4
[15] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1
[16] call print_str
@ -1921,6 +1957,8 @@ testLong::@6: scope:[testLong] from testLong::@5
testLong::@return: scope:[testLong] from testLong::@6
[29] return
to:@return
(void()) print_ln()
print_ln: scope:[print_ln] from testChar::@6 testInt::@6 testLong::@6 testShort::@6
[30] (byte*) print_line_cursor#39 ← phi( testChar::@6/(byte*) 1024 testInt::@6/(byte*) print_line_cursor#1 testLong::@6/(byte*) print_line_cursor#1 testShort::@6/(byte*) print_line_cursor#1 )
to:print_ln::@1
@ -1932,6 +1970,8 @@ print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
print_ln::@return: scope:[print_ln] from print_ln::@1
[34] return
to:@return
(void()) print_sdword((signed dword) print_sdword::dw)
print_sdword: scope:[print_sdword] from testLong::@3 testLong::@5
[35] (signed dword) print_sdword::dw#3 ← phi( testLong::@3/(const signed dword) testLong::n#0 testLong::@5/(const signed dword) testLong::s#0 )
[36] if((signed dword) print_sdword::dw#3<(signed byte) 0) goto print_sdword::@1
@ -1955,6 +1995,8 @@ print_sdword::@1: scope:[print_sdword] from print_sdword
print_sdword::@4: scope:[print_sdword] from print_sdword::@1
[45] (signed dword) print_sdword::dw#0 ← - (signed dword) print_sdword::dw#3
to:print_sdword::@2
(void()) print_char((byte) print_char::ch)
print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@1 print_sdword::@1 print_sdword::@3 print_sword::@1 print_sword::@3 testChar::@2 testChar::@4 testInt::@2 testInt::@4 testLong::@2 testLong::@4 testShort::@2 testShort::@4
[46] (byte*) print_char_cursor#94 ← phi( print_byte/(byte*) print_char_cursor#149 print_byte::@1/(byte*) print_char_cursor#26 print_sbyte::@1/(byte*) print_char_cursor#26 print_sdword::@1/(byte*) print_char_cursor#26 print_sdword::@3/(byte*) print_char_cursor#26 print_sword::@1/(byte*) print_char_cursor#26 print_sword::@3/(byte*) print_char_cursor#26 testChar::@2/(byte*) print_char_cursor#26 testChar::@4/(byte*) print_char_cursor#26 testInt::@2/(byte*) print_char_cursor#26 testInt::@4/(byte*) print_char_cursor#26 testLong::@2/(byte*) print_char_cursor#26 testLong::@4/(byte*) print_char_cursor#26 testShort::@2/(byte*) print_char_cursor#26 testShort::@4/(byte*) print_char_cursor#26 )
[46] (byte) print_char::ch#16 ← phi( print_byte/(byte) print_char::ch#6 print_byte::@1/(byte) print_char::ch#7 print_sbyte::@1/(byte) '-' print_sdword::@1/(byte) '-' print_sdword::@3/(byte) ' ' print_sword::@1/(byte) '-' print_sword::@3/(byte) ' ' testChar::@2/(byte) ' ' testChar::@4/(byte) ' ' testInt::@2/(byte) ' ' testInt::@4/(byte) ' ' testLong::@2/(byte) ' ' testLong::@4/(byte) ' ' testShort::@2/(byte) ' ' testShort::@4/(byte) ' ' )
@ -1964,6 +2006,8 @@ print_char: scope:[print_char] from print_byte print_byte::@1 print_sbyte::@1 p
print_char::@return: scope:[print_char] from print_char
[49] return
to:@return
(void()) print_dword((dword) print_dword::dw)
print_dword: scope:[print_dword] from print_sdword::@2 testLong::@1
[50] (byte*) print_char_cursor#145 ← phi( print_sdword::@2/(byte*) print_char_cursor#26 testLong::@1/(byte*) print_char_cursor#136 )
[50] (dword) print_dword::dw#2 ← phi( print_sdword::@2/(dword) print_dword::dw#0 testLong::@1/(const dword) testLong::u#0 )
@ -1977,6 +2021,8 @@ print_dword::@1: scope:[print_dword] from print_dword
print_dword::@return: scope:[print_dword] from print_dword::@1
[55] return
to:@return
(void()) print_word((word) print_word::w)
print_word: scope:[print_word] from print_dword print_dword::@1 print_sword::@2 testInt::@1 testShort::@1
[56] (byte*) print_char_cursor#144 ← phi( print_dword/(byte*) print_char_cursor#145 print_dword::@1/(byte*) print_char_cursor#26 print_sword::@2/(byte*) print_char_cursor#26 testInt::@1/(byte*) print_char_cursor#136 testShort::@1/(byte*) print_char_cursor#136 )
[56] (word) print_word::w#5 ← phi( print_dword/(word) print_word::w#1 print_dword::@1/(word) print_word::w#2 print_sword::@2/(word) print_word::w#0 testInt::@1/(const word) testInt::u#0 testShort::@1/(const word) testShort::u#0 )
@ -1990,6 +2036,8 @@ print_word::@1: scope:[print_word] from print_word
print_word::@return: scope:[print_word] from print_word::@1
[61] return
to:@return
(void()) print_byte((byte) print_byte::b)
print_byte: scope:[print_byte] from print_sbyte::@2 print_word print_word::@1 testChar::@1 testChar::@3
[62] (byte*) print_char_cursor#149 ← phi( print_sbyte::@2/(byte*) print_char_cursor#26 print_word/(byte*) print_char_cursor#144 print_word::@1/(byte*) print_char_cursor#26 testChar::@1/(byte*) print_char_cursor#136 testChar::@3/(byte*) print_char_cursor#26 )
[62] (byte) print_byte::b#5 ← phi( print_sbyte::@2/(byte)(const signed byte) print_sbyte::b#0 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 testChar::@1/(const byte) testChar::u#0 testChar::@3/(const byte) testChar::n#0 )
@ -2005,6 +2053,8 @@ print_byte::@1: scope:[print_byte] from print_byte
print_byte::@return: scope:[print_byte] from print_byte::@1
[69] return
to:@return
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from testChar testInt testLong testShort
[70] (byte*) print_char_cursor#156 ← phi( testChar/(byte*) 1024 testInt/(byte*~) print_char_cursor#161 testLong/(byte*~) print_char_cursor#162 testShort/(byte*~) print_char_cursor#163 )
[70] (byte*) print_str::str#7 ← phi( testChar/(const string) testChar::str testInt/(const string) testInt::str testLong/(const string) testLong::str testShort/(const string) testShort::str )
@ -2022,6 +2072,8 @@ print_str::@2: scope:[print_str] from print_str::@1
[75] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#136
[76] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#5
to:print_str::@1
(void()) testInt()
testInt: scope:[testInt] from main::@3
[77] (byte*~) print_char_cursor#161 ← (byte*) print_line_cursor#1
[78] call print_str
@ -2053,6 +2105,8 @@ testInt::@6: scope:[testInt] from testInt::@5
testInt::@return: scope:[testInt] from testInt::@6
[91] return
to:@return
(void()) print_sword((signed word) print_sword::w)
print_sword: scope:[print_sword] from testInt::@3 testInt::@5 testShort::@3 testShort::@5
[92] (signed word) print_sword::w#10 ← phi( testInt::@3/(const signed word) testInt::n#0 testInt::@5/(const signed word) testInt::s#0 testShort::@3/(const signed word) testShort::n#0 testShort::@5/(const signed word) testShort::s#0 )
[93] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1
@ -2076,6 +2130,8 @@ print_sword::@1: scope:[print_sword] from print_sword
print_sword::@4: scope:[print_sword] from print_sword::@1
[102] (signed word) print_sword::w#0 ← - (signed word) print_sword::w#10
to:print_sword::@2
(void()) testShort()
testShort: scope:[testShort] from main::@2
[103] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1
[104] call print_str
@ -2107,6 +2163,8 @@ testShort::@6: scope:[testShort] from testShort::@5
testShort::@return: scope:[testShort] from testShort::@6
[117] return
to:@return
(void()) testChar()
testChar: scope:[testChar] from main::@1
[118] phi()
[119] call print_str
@ -2138,6 +2196,8 @@ testChar::@6: scope:[testChar] from testChar::@5
testChar::@return: scope:[testChar] from testChar::@6
[132] return
to:@return
(void()) print_sbyte((signed byte) print_sbyte::b)
print_sbyte: scope:[print_sbyte] from testChar::@5
[133] phi()
to:print_sbyte::@1
@ -2152,6 +2212,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte::@1
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@2
[138] return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from main
[139] phi()
[140] call memset
@ -2159,6 +2221,8 @@ print_cls: scope:[print_cls] from main
print_cls::@return: scope:[print_cls] from print_cls
[141] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[142] phi()
to:memset::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -61,6 +63,8 @@ main::@5: scope:[main] from main::@4 main::@5
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
[43] if((byte) main::rst#1!=(byte) $f2) goto main::@5
to:main::@2
(void()) gfx_init()
gfx_init: scope:[gfx_init] from main
[44] phi()
[45] call gfx_init_screen0
@ -72,6 +76,8 @@ gfx_init::@1: scope:[gfx_init] from gfx_init
gfx_init::@return: scope:[gfx_init] from gfx_init::@1
[48] return
to:@return
(void()) gfx_init_plane_charset8()
gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@1
[49] phi()
[50] call dtvSetCpuBankSegment1
@ -128,6 +134,8 @@ gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plan
gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@8
[73] return
to:@return
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8
[74] (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/(byte)(number) $4000/(number) $4000 )
[75] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#2
@ -136,6 +144,8 @@ dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charse
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
[77] return
to:@return
(void()) gfx_init_screen0()
gfx_init_screen0: scope:[gfx_init_screen0] from gfx_init
[78] phi()
to:gfx_init_screen0::@1

View File

@ -62,6 +62,8 @@ CONTROL FLOW GRAPH SSA
(byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (number) $d047
(byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (number) $d048
to:@5
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8
(byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#0 gfx_init_plane_charset8::@8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 )
(byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (number) $ff
@ -75,6 +77,8 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan
(byte*) SCREEN#0 ← ((byte*)) (number) $7c00
(byte*) CHARSET8#0 ← ((byte*)) (number) $8000
to:@9
(void()) main()
main: scope:[main] from @9
asm { sei }
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
@ -170,6 +174,8 @@ main::@12: scope:[main] from main::@12 main::@8
main::@return: scope:[main] from main::@3
return
to:@return
(void()) gfx_init()
gfx_init: scope:[gfx_init] from main
call gfx_init_screen0
to:gfx_init::@1
@ -181,6 +187,8 @@ gfx_init::@2: scope:[gfx_init] from gfx_init::@1
gfx_init::@return: scope:[gfx_init] from gfx_init::@2
return
to:@return
(void()) gfx_init_screen0()
gfx_init_screen0: scope:[gfx_init_screen0] from gfx_init
(byte*) gfx_init_screen0::ch#0 ← (byte*) SCREEN#0
(byte) gfx_init_screen0::cy#0 ← (byte) 0
@ -214,6 +222,8 @@ gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2
gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3
return
to:@return
(void()) gfx_init_plane_charset8()
gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@1
(byte*~) gfx_init_plane_charset8::$0 ← (byte*) CHARSET8#0 / (number) $4000
(byte~) gfx_init_plane_charset8::$1 ← ((byte)) (byte*~) gfx_init_plane_charset8::$0
@ -1272,6 +1282,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -1326,6 +1338,8 @@ main::@5: scope:[main] from main::@4 main::@5
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
[43] if((byte) main::rst#1!=(byte) $f2) goto main::@5
to:main::@2
(void()) gfx_init()
gfx_init: scope:[gfx_init] from main
[44] phi()
[45] call gfx_init_screen0
@ -1337,6 +1351,8 @@ gfx_init::@1: scope:[gfx_init] from gfx_init
gfx_init::@return: scope:[gfx_init] from gfx_init::@1
[48] return
to:@return
(void()) gfx_init_plane_charset8()
gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@1
[49] phi()
[50] call dtvSetCpuBankSegment1
@ -1393,6 +1409,8 @@ gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plan
gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@8
[73] return
to:@return
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charset8 gfx_init_plane_charset8::@8
[74] (byte) dtvSetCpuBankSegment1::cpuBankIdx#2 ← phi( gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/(byte)(number) $4000/(number) $4000 )
[75] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#2
@ -1401,6 +1419,8 @@ dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_charse
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
[77] return
to:@return
(void()) gfx_init_screen0()
gfx_init_screen0: scope:[gfx_init_screen0] from gfx_init
[78] phi()
to:gfx_init_screen0::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -55,6 +57,8 @@ main::@5: scope:[main] from main::@4 main::@5
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
[37] if((byte) main::rst#1!=(byte) $f2) goto main::@5
to:main::@2
(void()) gfx_init_chunky()
gfx_init_chunky: scope:[gfx_init_chunky] from main
[38] phi()
[39] call dtvSetCpuBankSegment1
@ -98,6 +102,8 @@ gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5
gfx_init_chunky::@return: scope:[gfx_init_chunky] from gfx_init_chunky::@6
[57] return
to:@return
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6
[58] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/(byte)(const byte*) CHUNKY#0/(word) $4000 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/(byte)(number) $4000/(number) $4000 )
[59] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3

View File

@ -52,6 +52,8 @@ CONTROL FLOW GRAPH SSA
(byte*) DTV_PLANEB_MODULO_LO#0 ← ((byte*)) (number) $d047
(byte*) DTV_PLANEB_MODULO_HI#0 ← ((byte*)) (number) $d048
to:@5
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6
(byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/(byte) dtvSetCpuBankSegment1::cpuBankIdx#0 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#2 )
(byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (number) $ff
@ -64,6 +66,8 @@ dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBan
@5: scope:[] from @4
(byte*) CHUNKY#0 ← ((byte*)) (number) $8000
to:@7
(void()) main()
main: scope:[main] from @7
asm { sei }
*((byte*) PROCPORT_DDR#0) ← (byte) PROCPORT_DDR_MEMORY_MASK#0
@ -152,6 +156,8 @@ main::@12: scope:[main] from main::@12 main::@8
main::@return: scope:[main] from main::@3
return
to:@return
(void()) gfx_init_chunky()
gfx_init_chunky: scope:[gfx_init_chunky] from main
(byte*~) gfx_init_chunky::$0 ← (byte*) CHUNKY#0 / (number) $4000
(byte~) gfx_init_chunky::$1 ← ((byte)) (byte*~) gfx_init_chunky::$0
@ -925,6 +931,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -973,6 +981,8 @@ main::@5: scope:[main] from main::@4 main::@5
asm { nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop }
[37] if((byte) main::rst#1!=(byte) $f2) goto main::@5
to:main::@2
(void()) gfx_init_chunky()
gfx_init_chunky: scope:[gfx_init_chunky] from main
[38] phi()
[39] call dtvSetCpuBankSegment1
@ -1016,6 +1026,8 @@ gfx_init_chunky::@6: scope:[gfx_init_chunky] from gfx_init_chunky::@5
gfx_init_chunky::@return: scope:[gfx_init_chunky] from gfx_init_chunky::@6
[57] return
to:@return
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_chunky gfx_init_chunky::@4 gfx_init_chunky::@6
[58] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( gfx_init_chunky/(byte)(const byte*) CHUNKY#0/(word) $4000 gfx_init_chunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_chunky::@6/(byte)(number) $4000/(number) $4000 )
[59] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0
[5] *((const byte*) DTV_BLITTER_CONTROL2#0) ← (const byte) DTV_BLIT_CLEAR_IRQ#0

View File

@ -57,6 +57,8 @@ CONTROL FLOW GRAPH SSA
(byte[]) SRCA#0 ← (const string) $0
(byte[]) SRCB#0 ← { (number) $80 }
to:@6
(void()) main()
main: scope:[main] from @6
*((byte*) DTV_FEATURE#0) ← (byte) DTV_FEATURE_ENABLE#0
*((byte*) DTV_BLITTER_CONTROL2#0) ← (byte) DTV_BLIT_CLEAR_IRQ#0
@ -543,6 +545,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0
[5] *((const byte*) DTV_BLITTER_CONTROL2#0) ← (const byte) DTV_BLIT_CLEAR_IRQ#0

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0
[5] *((const byte*) DTV_BLITTER_CONTROL2#0) ← (const byte) DTV_BLIT_CLEAR_IRQ#0

View File

@ -59,6 +59,8 @@ CONTROL FLOW GRAPH SSA
(byte) SRCA_LEN#0 ← (number) 9
(byte[]) SRCB#0 ← { (number) $80 }
to:@6
(void()) main()
main: scope:[main] from @6
*((byte*) DTV_FEATURE#0) ← (byte) DTV_FEATURE_ENABLE#0
*((byte*) DTV_BLITTER_CONTROL2#0) ← (byte) DTV_BLIT_CLEAR_IRQ#0
@ -572,6 +574,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0
[5] *((const byte*) DTV_BLITTER_CONTROL2#0) ← (const byte) DTV_BLIT_CLEAR_IRQ#0

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0

View File

@ -30,6 +30,8 @@ CONTROL FLOW GRAPH SSA
(byte) DTV_BADLINE_OFF#0 ← (number) $20
(byte*) DTV_PALETTE#0 ← ((byte*)) (number) $d200
to:@6
(void()) main()
main: scope:[main] from @6
asm { sei }
*((byte*) DTV_FEATURE#0) ← (byte) DTV_FEATURE_ENABLE#0
@ -273,6 +275,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -31,6 +33,8 @@ main::@4: scope:[main] from main::@2
[14] phi()
[15] call gfx_mode
to:main::@1
(void()) gfx_mode()
gfx_mode: scope:[gfx_mode] from main::@4
[16] if(*((const byte[]) form_fields_val#0+(byte) 5)==(byte) 0) goto gfx_mode::@1
to:gfx_mode::@10
@ -241,6 +245,8 @@ gfx_mode::@24: scope:[gfx_mode] from gfx_mode::@22 gfx_mode::@24
[150] (byte) gfx_mode::i#1 ← ++ (byte) gfx_mode::i#2
[151] if((byte) gfx_mode::i#1!=(byte) $10) goto gfx_mode::@24
to:gfx_mode::@25
(byte()) keyboard_event_get()
keyboard_event_get: scope:[keyboard_event_get] from form_control::@19 gfx_mode::@32
[152] if((byte) keyboard_events_size#100==(byte) 0) goto keyboard_event_get::@return
to:keyboard_event_get::@1
@ -253,6 +259,8 @@ keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get
[155] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte) $ff keyboard_event_get::@1/(byte) keyboard_event_get::return#1 )
[156] return
to:@return
(void()) keyboard_event_scan()
keyboard_event_scan: scope:[keyboard_event_scan] from form_control::@3 gfx_mode::@26
[157] (byte) keyboard_events_size#99 ← phi( form_control::@3/(byte) keyboard_events_size#47 gfx_mode::@26/(byte) keyboard_events_size#24 )
to:keyboard_event_scan::@7
@ -362,6 +370,8 @@ keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan:
[209] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#18) ← (byte~) keyboard_event_scan::$23
[210] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#18
to:keyboard_event_scan::@10
(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode)
keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@1 keyboard_event_scan::@17 keyboard_event_scan::@2 keyboard_event_scan::@3
[211] (byte) keyboard_event_pressed::keycode#4 ← phi( keyboard_event_scan::@1/(const byte) KEY_RSHIFT#0 keyboard_event_scan::@2/(const byte) KEY_CTRL#0 keyboard_event_scan::@17/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@3/(const byte) KEY_COMMODORE#0 )
[212] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte) 3
@ -372,6 +382,8 @@ keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan
keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed
[216] return
to:@return
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@7
[217] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
[218] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
@ -379,6 +391,8 @@ keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@7
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
[219] return
to:@return
(byte*()) get_vic_screen((byte) get_vic_screen::idx)
get_vic_screen: scope:[get_vic_screen] from gfx_mode::@28 gfx_mode::@30
[220] (byte) get_vic_screen::idx#2 ← phi( gfx_mode::@28/(byte) get_vic_screen::idx#0 gfx_mode::@30/(byte) get_vic_screen::idx#1 )
[221] if((byte) get_vic_screen::idx#2==(byte) 0) goto get_vic_screen::@return
@ -402,6 +416,8 @@ get_vic_screen::@return: scope:[get_vic_screen] from get_vic_screen get_vic_scr
[227] (byte*) get_vic_screen::return#5 ← phi( get_vic_screen/(const byte*) VIC_SCREEN0#0 get_vic_screen::@5/(const byte*) VIC_SCREEN4#0 get_vic_screen::@2/(const byte*) VIC_SCREEN1#0 get_vic_screen::@3/(const byte*) VIC_SCREEN2#0 get_vic_screen::@4/(const byte*) VIC_SCREEN3#0 get_vic_screen::@1/(const byte*) VIC_SCREEN0#0 )
[228] return
to:@return
(byte*()) get_vic_charset((byte) get_vic_charset::idx)
get_vic_charset: scope:[get_vic_charset] from gfx_mode::@29
[229] if((byte) get_vic_charset::idx#0==(byte) 0) goto get_vic_charset::@return
to:get_vic_charset::@2
@ -415,6 +431,8 @@ get_vic_charset::@return: scope:[get_vic_charset] from get_vic_charset get_vic_
[232] (byte*) get_vic_charset::return#2 ← phi( get_vic_charset/(const byte*) VIC_CHARSET_ROM#0 get_vic_charset::@1/(const byte*) VIC_CHARSET_ROM#0 get_vic_charset::@2/(const byte*) VIC_BITMAP#0 )
[233] return
to:@return
(dword()) get_plane((byte) get_plane::idx)
get_plane: scope:[get_plane] from gfx_mode::@27 gfx_mode::@9
[234] (byte) get_plane::idx#10 ← phi( gfx_mode::@27/(byte) get_plane::idx#1 gfx_mode::@9/(byte) get_plane::idx#0 )
[235] if((byte) get_plane::idx#10==(byte) 0) goto get_plane::@return
@ -465,6 +483,8 @@ get_plane::@return: scope:[get_plane] from get_plane get_plane::@1 get_plane::@
[250] (dword) get_plane::return#14 ← phi( get_plane/(dword)(const byte*) VIC_SCREEN0#0 get_plane::@10/(const dword) PLANE_HORISONTAL2#0 get_plane::@11/(const dword) PLANE_VERTICAL2#0 get_plane::@12/(const dword) PLANE_CHARSET8#0 get_plane::@13/(const dword) PLANE_BLANK#0 get_plane::@2/(dword)(const byte*) VIC_SCREEN1#0 get_plane::@1/(dword)(const byte*) VIC_SCREEN0#0 get_plane::@3/(dword)(const byte*) VIC_SCREEN2#0 get_plane::@4/(dword)(const byte*) VIC_SCREEN3#0 get_plane::@14/(const dword) PLANE_FULL#0 get_plane::@5/(dword)(const byte*) VIC_BITMAP#0 get_plane::@6/(dword)(const byte*) VIC_CHARSET_ROM#0 get_plane::@7/(const dword) PLANE_8BPP_CHUNKY#0 get_plane::@8/(const dword) PLANE_HORISONTAL#0 get_plane::@9/(const dword) PLANE_VERTICAL#0 )
[251] return
to:@return
(void()) form_mode()
form_mode: scope:[form_mode] from main::@2
[252] phi()
[253] call print_set_screen
@ -562,6 +582,8 @@ form_mode::@19: scope:[form_mode] from form_mode::@18
[302] (byte) render_preset_name::idx#1 ← *((const byte[]) form_fields_val#0)
[303] call render_preset_name
to:form_mode::@3
(void()) render_preset_name((byte) render_preset_name::idx)
render_preset_name: scope:[render_preset_name] from form_mode::@15 form_mode::@19
[304] (byte) render_preset_name::idx#10 ← phi( form_mode::@15/(byte) render_preset_name::idx#0 form_mode::@19/(byte) render_preset_name::idx#1 )
[305] if((byte) render_preset_name::idx#10==(byte) 0) goto render_preset_name::@2
@ -607,6 +629,8 @@ render_preset_name::@2: scope:[render_preset_name] from render_preset_name rend
render_preset_name::@return: scope:[render_preset_name] from render_preset_name::@2
[320] return
to:@return
(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at)
print_str_at: scope:[print_str_at] from render_preset_name::@2
[321] phi()
to:print_str_at::@1
@ -623,6 +647,8 @@ print_str_at::@2: scope:[print_str_at] from print_str_at::@1
[326] (byte*) print_str_at::at#0 ← ++ (byte*) print_str_at::at#2
[327] (byte*) print_str_at::str#0 ← ++ (byte*) print_str_at::str#2
to:print_str_at::@1
(void()) form_render_values()
form_render_values: scope:[form_render_values] from form_mode::@14 form_mode::@18
[328] phi()
to:form_render_values::@1
@ -641,6 +667,8 @@ form_render_values::@3: scope:[form_render_values] from form_render_values::@2
[334] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2))
[335] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2
to:form_render_values::@1
(byte*()) form_field_ptr((byte) form_field_ptr::field_idx)
form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@2
[336] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@2/(byte) form_field_ptr::field_idx#0 )
[337] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2)
@ -650,6 +678,8 @@ form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@2
form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr
[340] return
to:@return
(void()) apply_preset((byte) apply_preset::idx)
apply_preset: scope:[apply_preset] from form_mode::@7
[341] if((byte) apply_preset::idx#0==(byte) 0) goto apply_preset::@2
to:apply_preset::@3
@ -700,6 +730,8 @@ apply_preset::@14: scope:[apply_preset] from apply_preset::@13
[357] *((const byte[]) form_fields_val#0 + (byte) apply_preset::i#2) ← *((byte*) apply_preset::preset#15 + (byte) apply_preset::i#2)
[358] (byte) apply_preset::i#1 ← ++ (byte) apply_preset::i#2
to:apply_preset::@13
(byte()) form_control()
form_control: scope:[form_control] from form_mode::@5
[359] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#28
[360] call form_field_ptr
@ -795,6 +827,8 @@ form_control::@2: scope:[form_control] from form_control::@1
[400] (byte~) form_control::$14 ← *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) | (byte) $80
[401] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← (byte~) form_control::$14
to:form_control::@3
(void()) form_set_screen((byte*) form_set_screen::screen)
form_set_screen: scope:[form_set_screen] from form_mode::@13
[402] phi()
to:form_set_screen::@1
@ -812,6 +846,8 @@ form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_scre
form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1
[411] return
to:@return
(void()) print_str_lines((byte*) print_str_lines::str)
print_str_lines: scope:[print_str_lines] from form_mode::@12 form_mode::@9
[412] (byte*) print_str_lines::str#5 ← phi( form_mode::@9/(const byte[]) FORM_COLS#0 form_mode::@12/(const byte[]) FORM_TEXT#0 )
[413] (byte*~) print_char_cursor#73 ← (byte*) print_set_screen::screen#2
@ -847,6 +883,8 @@ print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@5
[427] (byte*~) print_char_cursor#74 ← (byte*) print_line_cursor#22
to:print_str_lines::@1
(void()) print_ln()
print_ln: scope:[print_ln] from print_str_lines::@5
[428] phi()
to:print_ln::@1
@ -858,6 +896,8 @@ print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
print_ln::@return: scope:[print_ln] from print_ln::@1
[432] return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from form_mode::@11 form_mode::@8
[433] (void*) memset::str#0 ← (void*)(byte*) print_set_screen::screen#2
[434] call memset
@ -865,6 +905,8 @@ print_cls: scope:[print_cls] from form_mode::@11 form_mode::@8
print_cls::@return: scope:[print_cls] from print_cls
[435] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[436] phi()
to:memset::@1
@ -883,12 +925,16 @@ memset::@3: scope:[memset] from memset::@2
[442] *((byte*) memset::dst#2) ← (const byte) memset::c#0
[443] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) print_set_screen((byte*) print_set_screen::screen)
print_set_screen: scope:[print_set_screen] from form_mode form_mode::@10
[444] (byte*) print_set_screen::screen#2 ← phi( form_mode/(const byte*) COLS#0 form_mode::@10/(const byte*) FORM_SCREEN#0 )
to:print_set_screen::@return
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
[445] return
to:@return
(void()) gfx_init()
gfx_init: scope:[gfx_init] from main::@3
[446] phi()
[447] call gfx_init_screen0
@ -952,6 +998,8 @@ gfx_init::@14: scope:[gfx_init] from gfx_init::@13
gfx_init::@return: scope:[gfx_init] from gfx_init::@14
[476] return
to:@return
(void()) gfx_init_plane_full()
gfx_init_plane_full: scope:[gfx_init_plane_full] from gfx_init::@14
[477] phi()
[478] call gfx_init_plane_fill
@ -959,6 +1007,8 @@ gfx_init_plane_full: scope:[gfx_init_plane_full] from gfx_init::@14
gfx_init_plane_full::@return: scope:[gfx_init_plane_full] from gfx_init_plane_full
[479] return
to:@return
(void()) gfx_init_plane_fill((dword) gfx_init_plane_fill::plane_addr , (byte) gfx_init_plane_fill::fill)
gfx_init_plane_fill: scope:[gfx_init_plane_fill] from gfx_init_plane_blank gfx_init_plane_full gfx_init_plane_vertical2
[480] (byte) gfx_init_plane_fill::fill#6 ← phi( gfx_init_plane_blank/(byte) 0 gfx_init_plane_full/(byte) $ff gfx_init_plane_vertical2/(byte) $1b )
[480] (dword) gfx_init_plane_fill::plane_addr#3 ← phi( gfx_init_plane_blank/(const dword) PLANE_BLANK#0 gfx_init_plane_full/(const dword) PLANE_FULL#0 gfx_init_plane_vertical2/(const dword) PLANE_VERTICAL2#0 )
@ -997,6 +1047,8 @@ gfx_init_plane_fill::@4: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::
gfx_init_plane_fill::@return: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@4
[500] return
to:@return
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppchunky gfx_init_plane_8bppchunky::@4 gfx_init_plane_8bppchunky::@6 gfx_init_plane_charset8 gfx_init_plane_charset8::@8 gfx_init_plane_fill gfx_init_plane_fill::@4 gfx_init_plane_horisontal gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal::@7 gfx_init_plane_vertical gfx_init_plane_vertical::@4
[501] (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 ← phi( gfx_init_plane_8bppchunky/(byte)(const dword) PLANE_8BPP_CHUNKY#0/(word) $4000 gfx_init_plane_8bppchunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_plane_8bppchunky::@6/(byte)(number) $4000/(number) $4000 gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/(byte)(number) $4000/(number) $4000 gfx_init_plane_fill/(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 gfx_init_plane_fill::@4/(byte)(number) $4000/(number) $4000 gfx_init_plane_horisontal/(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfx_init_plane_horisontal2/(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfx_init_plane_horisontal2::@4/(byte)(number) $4000/(number) $4000 gfx_init_plane_horisontal::@7/(byte)(number) $4000/(number) $4000 gfx_init_plane_vertical/(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfx_init_plane_vertical::@4/(byte)(number) $4000/(number) $4000 )
[502] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#13
@ -1005,6 +1057,8 @@ dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppch
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
[504] return
to:@return
(void()) gfx_init_plane_blank()
gfx_init_plane_blank: scope:[gfx_init_plane_blank] from gfx_init::@13
[505] phi()
[506] call gfx_init_plane_fill
@ -1012,6 +1066,8 @@ gfx_init_plane_blank: scope:[gfx_init_plane_blank] from gfx_init::@13
gfx_init_plane_blank::@return: scope:[gfx_init_plane_blank] from gfx_init_plane_blank
[507] return
to:@return
(void()) gfx_init_plane_vertical2()
gfx_init_plane_vertical2: scope:[gfx_init_plane_vertical2] from gfx_init::@12
[508] phi()
[509] call gfx_init_plane_fill
@ -1019,6 +1075,8 @@ gfx_init_plane_vertical2: scope:[gfx_init_plane_vertical2] from gfx_init::@12
gfx_init_plane_vertical2::@return: scope:[gfx_init_plane_vertical2] from gfx_init_plane_vertical2
[510] return
to:@return
(void()) gfx_init_plane_horisontal2()
gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@11
[511] phi()
[512] call dtvSetCpuBankSegment1
@ -1048,6 +1106,8 @@ gfx_init_plane_horisontal2::@4: scope:[gfx_init_plane_horisontal2] from gfx_ini
gfx_init_plane_horisontal2::@return: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@4
[525] return
to:@return
(void()) gfx_init_plane_vertical()
gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10
[526] phi()
[527] call dtvSetCpuBankSegment1
@ -1075,6 +1135,8 @@ gfx_init_plane_vertical::@4: scope:[gfx_init_plane_vertical] from gfx_init_plan
gfx_init_plane_vertical::@return: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@4
[538] return
to:@return
(void()) gfx_init_plane_horisontal()
gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9
[539] phi()
[540] call dtvSetCpuBankSegment1
@ -1113,6 +1175,8 @@ gfx_init_plane_horisontal::@3: scope:[gfx_init_plane_horisontal] from gfx_init_
[555] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte) 0
[556] (byte*) gfx_init_plane_horisontal::gfxa#1 ← ++ (byte*) gfx_init_plane_horisontal::gfxa#3
to:gfx_init_plane_horisontal::@4
(void()) gfx_init_plane_charset8()
gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@8
[557] phi()
[558] call dtvSetCpuBankSegment1
@ -1169,6 +1233,8 @@ gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plan
gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@8
[581] return
to:@return
(void()) gfx_init_plane_8bppchunky()
gfx_init_plane_8bppchunky: scope:[gfx_init_plane_8bppchunky] from gfx_init::@7
[582] phi()
[583] call dtvSetCpuBankSegment1
@ -1212,6 +1278,8 @@ gfx_init_plane_8bppchunky::@6: scope:[gfx_init_plane_8bppchunky] from gfx_init_
gfx_init_plane_8bppchunky::@return: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@6
[601] return
to:@return
(void()) gfx_init_vic_bitmap()
gfx_init_vic_bitmap: scope:[gfx_init_vic_bitmap] from gfx_init::@6
[602] phi()
[603] call bitmap_init
@ -1237,6 +1305,8 @@ gfx_init_vic_bitmap::@2: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bitmap::
gfx_init_vic_bitmap::@4: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bitmap::@2
[614] (byte) gfx_init_vic_bitmap::l#1 ← ++ (byte) gfx_init_vic_bitmap::l#2
to:gfx_init_vic_bitmap::@1
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from gfx_init_vic_bitmap::@2
[615] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
to:bitmap_line::@2
@ -1331,6 +1401,8 @@ bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@11
[675] (byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#11
[676] call bitmap_line_xdyi
to:bitmap_line::@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8
[677] (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@8/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@13/(byte) bitmap_line_xdyi::x1#1 )
[677] (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@8/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@13/(byte) bitmap_line_xdyi::xd#1 )
@ -1365,6 +1437,8 @@ bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
[691] return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[692] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
[692] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -1377,6 +1451,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[698] return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@14 bitmap_line::@4
[699] (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@4/(byte) bitmap_line_ydxi::y1#0 )
[699] (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@4/(byte) bitmap_line_ydxi::yd#0 )
@ -1411,6 +1487,8 @@ bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[713] return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9
[714] (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@9/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@12/(byte) bitmap_line_xdyd::x1#1 )
[714] (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@9/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@12/(byte) bitmap_line_xdyd::xd#1 )
@ -1445,6 +1523,8 @@ bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
[728] return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6
[729] (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@6/(byte) bitmap_line_ydxd::y1#1 )
[729] (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@6/(byte) bitmap_line_ydxd::yd#1 )
@ -1479,6 +1559,8 @@ bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[743] return
to:@return
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from gfx_init_vic_bitmap::@3
[744] (word) bitmap_clear::bitmap#0 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0)
[745] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
@ -1502,6 +1584,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
[754] return
to:@return
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from gfx_init_vic_bitmap
[755] phi()
to:bitmap_init::@1
@ -1545,6 +1629,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[779] return
to:@return
(void()) gfx_init_charset()
gfx_init_charset: scope:[gfx_init_charset] from gfx_init::@5
[780] *((const byte*) PROCPORT#0) ← (byte) $32
to:gfx_init_charset::@1
@ -1573,6 +1659,8 @@ gfx_init_charset::@4: scope:[gfx_init_charset] from gfx_init_charset::@3
gfx_init_charset::@return: scope:[gfx_init_charset] from gfx_init_charset::@4
[791] return
to:@return
(void()) gfx_init_screen4()
gfx_init_screen4: scope:[gfx_init_screen4] from gfx_init::@4
[792] phi()
to:gfx_init_screen4::@1
@ -1595,6 +1683,8 @@ gfx_init_screen4::@3: scope:[gfx_init_screen4] from gfx_init_screen4::@2
gfx_init_screen4::@return: scope:[gfx_init_screen4] from gfx_init_screen4::@3
[801] return
to:@return
(void()) gfx_init_screen3()
gfx_init_screen3: scope:[gfx_init_screen3] from gfx_init::@3
[802] phi()
to:gfx_init_screen3::@1
@ -1621,6 +1711,8 @@ gfx_init_screen3::@3: scope:[gfx_init_screen3] from gfx_init_screen3::@2
gfx_init_screen3::@return: scope:[gfx_init_screen3] from gfx_init_screen3::@3
[815] return
to:@return
(void()) gfx_init_screen2()
gfx_init_screen2: scope:[gfx_init_screen2] from gfx_init::@2
[816] phi()
to:gfx_init_screen2::@1
@ -1648,6 +1740,8 @@ gfx_init_screen2::@3: scope:[gfx_init_screen2] from gfx_init_screen2::@2
gfx_init_screen2::@return: scope:[gfx_init_screen2] from gfx_init_screen2::@3
[830] return
to:@return
(void()) gfx_init_screen1()
gfx_init_screen1: scope:[gfx_init_screen1] from gfx_init::@1
[831] phi()
to:gfx_init_screen1::@1
@ -1672,6 +1766,8 @@ gfx_init_screen1::@3: scope:[gfx_init_screen1] from gfx_init_screen1::@2
gfx_init_screen1::@return: scope:[gfx_init_screen1] from gfx_init_screen1::@3
[842] return
to:@return
(void()) gfx_init_screen0()
gfx_init_screen0: scope:[gfx_init_screen0] from gfx_init
[843] phi()
to:gfx_init_screen0::@1
@ -1698,6 +1794,8 @@ gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2
gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3
[856] return
to:@return
(void()) keyboard_init()
keyboard_init: scope:[keyboard_init] from main
[857] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte) $ff
[858] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte) 0

View File

@ -362,6 +362,8 @@ CONTROL FLOW GRAPH SSA
(dword) DTV_COLOR_BANK_DEFAULT#0 ← (number) $1d800
(byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (number) $d03d
to:@17
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppchunky gfx_init_plane_8bppchunky::@4 gfx_init_plane_8bppchunky::@6 gfx_init_plane_charset8 gfx_init_plane_charset8::@8 gfx_init_plane_fill gfx_init_plane_fill::@4 gfx_init_plane_horisontal gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal::@8 gfx_init_plane_vertical gfx_init_plane_vertical::@4
(byte) dtvSetCpuBankSegment1::cpuBankIdx#13 ← phi( gfx_init_plane_8bppchunky/(byte) dtvSetCpuBankSegment1::cpuBankIdx#0 gfx_init_plane_8bppchunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_plane_8bppchunky::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#2 gfx_init_plane_charset8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#9 gfx_init_plane_charset8::@8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#10 gfx_init_plane_fill/(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 gfx_init_plane_fill::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#12 gfx_init_plane_horisontal/(byte) dtvSetCpuBankSegment1::cpuBankIdx#3 gfx_init_plane_horisontal2/(byte) dtvSetCpuBankSegment1::cpuBankIdx#5 gfx_init_plane_horisontal2::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#6 gfx_init_plane_horisontal::@8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#4 gfx_init_plane_vertical/(byte) dtvSetCpuBankSegment1::cpuBankIdx#7 gfx_init_plane_vertical::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#8 )
(byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (number) $ff
@ -371,6 +373,8 @@ dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppch
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
(byte) memset::c#4 ← phi( print_cls/(byte) memset::c#0 )
(void*) memset::str#3 ← phi( print_cls/(void*) memset::str#0 )
@ -418,6 +422,8 @@ memset::@return: scope:[memset] from memset::@1
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
to:@34
(void()) print_str_lines((byte*) print_str_lines::str)
print_str_lines: scope:[print_str_lines] from form_mode::@22 form_mode::@25
(byte*) print_line_cursor#45 ← phi( form_mode::@22/(byte*) print_line_cursor#12 form_mode::@25/(byte*) print_line_cursor#15 )
(byte*) print_char_cursor#47 ← phi( form_mode::@22/(byte*) print_char_cursor#13 form_mode::@25/(byte*) print_char_cursor#16 )
@ -476,6 +482,8 @@ print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
(byte*) print_line_cursor#2 ← (byte*) print_line_cursor#20
return
to:@return
(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at)
print_str_at: scope:[print_str_at] from render_preset_name::@22
(byte*) print_str_at::at#4 ← phi( render_preset_name::@22/(byte*) print_str_at::at#1 )
(byte*) print_str_at::str#4 ← phi( render_preset_name::@22/(byte*) print_str_at::str#1 )
@ -496,6 +504,8 @@ print_str_at::@2: scope:[print_str_at] from print_str_at::@1
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
return
to:@return
(void()) print_ln()
print_ln: scope:[print_ln] from print_str_lines::@7
(byte*) print_char_cursor#40 ← phi( print_str_lines::@7/(byte*) print_char_cursor#38 )
(byte*) print_line_cursor#38 ← phi( print_str_lines::@7/(byte*) print_line_cursor#36 )
@ -525,6 +535,8 @@ print_ln::@return: scope:[print_ln] from print_ln::@2
(byte*) print_screen#51 ← phi( @17/(byte*) print_screen#0 )
(byte[]) print_hextab#0 ← (const string) $38
to:@41
(void()) print_cls()
print_cls: scope:[print_cls] from form_mode::@21 form_mode::@24
(byte*) print_screen#9 ← phi( form_mode::@21/(byte*) print_screen#5 form_mode::@24/(byte*) print_screen#6 )
(void*) memset::str#0 ← (void*)(byte*) print_screen#9
@ -545,6 +557,8 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
(byte*) print_char_cursor#7 ← (byte*) print_char_cursor#25
return
to:@return
(void()) print_set_screen((byte*) print_set_screen::screen)
print_set_screen: scope:[print_set_screen] from form_mode form_mode::@23
(byte*) print_set_screen::screen#2 ← phi( form_mode/(byte*) print_set_screen::screen#0 form_mode::@23/(byte*) print_set_screen::screen#1 )
(byte*) print_screen#1 ← (byte*) print_set_screen::screen#2
@ -574,6 +588,8 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen
(byte[8]) keyboard_matrix_row_bitmask#0 ← { (number) $fe, (number) $fd, (number) $fb, (number) $f7, (number) $ef, (number) $df, (number) $bf, (number) $7f }
(byte[8]) keyboard_matrix_col_bitmask#0 ← { (number) 1, (number) 2, (number) 4, (number) 8, (number) $10, (number) $20, (number) $40, (number) $80 }
to:@45
(void()) keyboard_init()
keyboard_init: scope:[keyboard_init] from main
*((byte*) CIA1_PORT_A_DDR#0) ← (number) $ff
*((byte*) CIA1_PORT_B_DDR#0) ← (number) 0
@ -581,6 +597,8 @@ keyboard_init: scope:[keyboard_init] from main
keyboard_init::@return: scope:[keyboard_init] from keyboard_init
return
to:@return
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@8
(byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_event_scan::@8/(byte) keyboard_matrix_read::rowid#0 )
*((byte*) CIA1_PORT_A#0) ← *((byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#1)
@ -608,6 +626,8 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri
(byte) KEY_MODIFIER_SHIFT#0 ← (byte~) $0
(byte[8]) keyboard_scan_values#0 ← { fill( 8, 0) }
to:@48
(void()) keyboard_event_scan()
keyboard_event_scan: scope:[keyboard_event_scan] from form_control::@3 gfx_mode::@36
(byte) keyboard_events_size#99 ← phi( form_control::@3/(byte) keyboard_events_size#48 gfx_mode::@36/(byte) keyboard_events_size#44 )
(byte) keyboard_event_scan::keycode#0 ← (number) 0
@ -818,6 +838,8 @@ keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_s
(byte) keyboard_modifiers#6 ← (byte) keyboard_modifiers#21
return
to:@return
(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode)
keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@1 keyboard_event_scan::@2 keyboard_event_scan::@23 keyboard_event_scan::@3
(byte) keyboard_event_pressed::keycode#4 ← phi( keyboard_event_scan::@1/(byte) keyboard_event_pressed::keycode#1 keyboard_event_scan::@2/(byte) keyboard_event_pressed::keycode#2 keyboard_event_scan::@23/(byte) keyboard_event_pressed::keycode#0 keyboard_event_scan::@3/(byte) keyboard_event_pressed::keycode#3 )
(byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (number) 3
@ -831,6 +853,8 @@ keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_e
(byte) keyboard_event_pressed::return#5 ← (byte) keyboard_event_pressed::return#10
return
to:@return
(byte()) keyboard_event_get()
keyboard_event_get: scope:[keyboard_event_get] from form_control::@34 gfx_mode::@51
(byte) keyboard_events_size#22 ← phi( form_control::@34/(byte) keyboard_events_size#14 gfx_mode::@51/(byte) keyboard_events_size#9 )
(bool~) keyboard_event_get::$0 ← (byte) keyboard_events_size#22 == (number) 0
@ -864,6 +888,8 @@ keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
to:@57
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from gfx_init_vic_bitmap
(byte*) bitmap_init::bitmap#2 ← phi( gfx_init_vic_bitmap/(byte*) bitmap_init::bitmap#0 )
(byte) bitmap_init::bits#0 ← (number) $80
@ -931,6 +957,8 @@ bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
return
to:@return
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from gfx_init_vic_bitmap::@7
(byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_xhi#0 + (number) 0), *((byte[$100]) bitmap_plot_xlo#0 + (number) 0) }
(byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$0
@ -961,6 +989,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
(byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
(byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -974,6 +1004,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
return
to:@return
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from gfx_init_vic_bitmap::@2
(byte) bitmap_line::y1#13 ← phi( gfx_init_vic_bitmap::@2/(byte) bitmap_line::y1#0 )
(byte) bitmap_line::y0#13 ← phi( gfx_init_vic_bitmap::@2/(byte) bitmap_line::y0#0 )
@ -1171,6 +1203,8 @@ bitmap_line::@36: scope:[bitmap_line] from bitmap_line::@27
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@29 bitmap_line::@30 bitmap_line::@31 bitmap_line::@32 bitmap_line::@33 bitmap_line::@34 bitmap_line::@35 bitmap_line::@36
return
to:@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@11 bitmap_line::@25
(byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@25/(byte) bitmap_line_xdyi::x1#1 )
(byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@25/(byte) bitmap_line_xdyi::xd#1 )
@ -1230,6 +1264,8 @@ bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@5
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@15 bitmap_line::@21
(byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@21/(byte) bitmap_line_xdyd::x1#1 )
(byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@21/(byte) bitmap_line_xdyd::xd#1 )
@ -1289,6 +1325,8 @@ bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@5
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@27 bitmap_line::@5
(byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@5/(byte) bitmap_line_ydxi::y1#0 )
(byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@5/(byte) bitmap_line_ydxi::yd#0 )
@ -1348,6 +1386,8 @@ bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@5
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@17 bitmap_line::@8
(byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@8/(byte) bitmap_line_ydxd::y1#1 )
(byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@8/(byte) bitmap_line_ydxd::yd#1 )
@ -1408,6 +1448,8 @@ bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@5
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
return
to:@return
(void()) main()
main: scope:[main] from @85
(byte) form_field_idx#48 ← phi( @85/(byte) form_field_idx#34 )
(byte) keyboard_modifiers#83 ← phi( @85/(byte) keyboard_modifiers#52 )
@ -1528,6 +1570,8 @@ main::@return: scope:[main] from main::@1
(dword) PLANE_FULL#0 ← (number) $3a000
(dword) PLANE_CHARSET8#0 ← (number) $3c000
to:@60
(dword()) get_plane((byte) get_plane::idx)
get_plane: scope:[get_plane] from gfx_mode::@46 gfx_mode::@9
(byte) get_plane::idx#2 ← phi( gfx_mode::@46/(byte) get_plane::idx#1 gfx_mode::@9/(byte) get_plane::idx#0 )
(bool~) get_plane::$0 ← (byte) get_plane::idx#2 == (number) 0
@ -1664,6 +1708,8 @@ get_plane::@27: scope:[get_plane] from get_plane::@40
(dword~) get_plane::$15 ← ((dword)) (byte*) VIC_SCREEN0#0
(dword) get_plane::return#15 ← (dword~) get_plane::$15
to:get_plane::@return
(byte*()) get_vic_screen((byte) get_vic_screen::idx)
get_vic_screen: scope:[get_vic_screen] from gfx_mode::@47 gfx_mode::@49
(byte) get_vic_screen::idx#2 ← phi( gfx_mode::@47/(byte) get_vic_screen::idx#0 gfx_mode::@49/(byte) get_vic_screen::idx#1 )
(bool~) get_vic_screen::$0 ← (byte) get_vic_screen::idx#2 == (number) 0
@ -1713,6 +1759,8 @@ get_vic_screen::@return: scope:[get_vic_screen] from get_vic_screen::@1 get_vic
get_vic_screen::@9: scope:[get_vic_screen] from get_vic_screen::@13
(byte*) get_vic_screen::return#6 ← (byte*) VIC_SCREEN0#0
to:get_vic_screen::@return
(byte*()) get_vic_charset((byte) get_vic_charset::idx)
get_vic_charset: scope:[get_vic_charset] from gfx_mode::@48
(byte) get_vic_charset::idx#1 ← phi( gfx_mode::@48/(byte) get_vic_charset::idx#0 )
(bool~) get_vic_charset::$0 ← (byte) get_vic_charset::idx#1 == (number) 0
@ -1765,6 +1813,8 @@ get_vic_charset::@3: scope:[get_vic_charset] from get_vic_charset::@4
(byte[]) preset_sixsfred2#0 ← { (number) 9, (number) 1, (number) 1, (number) 1, (number) 0, (number) 1, (number) 0, (number) 0, (number) 0, (number) 0, (number) 9, (number) 0, (number) 0, (number) 0, (number) 1, (number) 0, (number) 0, (number) $a, (number) 0, (number) 0, (number) 0, (number) 1, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 1, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0 }
(byte[]) preset_8bpppixelcell#0 ← { (number) $a, (number) 0, (number) 1, (number) 1, (number) 1, (number) 1, (number) 0, (number) 1, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 1, (number) 0, (number) 0, (number) $b, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 1, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0, (number) 0 }
to:@62
(void()) apply_preset((byte) apply_preset::idx)
apply_preset: scope:[apply_preset] from form_mode::@18
(byte) apply_preset::idx#1 ← phi( form_mode::@18/(byte) apply_preset::idx#0 )
(byte*) apply_preset::preset#0 ← (byte*) 0
@ -1876,6 +1926,8 @@ apply_preset::@46: scope:[apply_preset] from apply_preset::@45
apply_preset::@return: scope:[apply_preset] from apply_preset::@45
return
to:@return
(void()) render_preset_name((byte) render_preset_name::idx)
render_preset_name: scope:[render_preset_name] from form_mode::@28 form_mode::@32
(byte) render_preset_name::idx#2 ← phi( form_mode::@28/(byte) render_preset_name::idx#0 form_mode::@32/(byte) render_preset_name::idx#1 )
(byte*) render_preset_name::name#0 ← (byte*) 0
@ -2060,6 +2112,8 @@ render_preset_name::@return: scope:[render_preset_name] from render_preset_name
(byte*~) $36 ← (byte[]) form_fields_val#0 + (number) $23
(byte*) form_vic_bg3_lo#0 ← (byte*~) $36
to:@81
(void()) gfx_mode()
gfx_mode: scope:[gfx_mode] from main::@9
(byte) keyboard_modifiers#128 ← phi( main::@9/(byte) keyboard_modifiers#7 )
(byte) keyboard_events_size#147 ← phi( main::@9/(byte) keyboard_events_size#6 )
@ -2436,6 +2490,8 @@ gfx_mode::@return: scope:[gfx_mode] from gfx_mode::@31 gfx_mode::@52
(byte) keyboard_modifiers#11 ← (byte) keyboard_modifiers#26
return
to:@return
(void()) gfx_init()
gfx_init: scope:[gfx_init] from main::@7
call gfx_init_screen0
to:gfx_init::@1
@ -2486,6 +2542,8 @@ gfx_init::@15: scope:[gfx_init] from gfx_init::@14
gfx_init::@return: scope:[gfx_init] from gfx_init::@15
return
to:@return
(void()) gfx_init_charset()
gfx_init_charset: scope:[gfx_init_charset] from gfx_init::@5
*((byte*) PROCPORT#0) ← (number) $32
(byte*) gfx_init_charset::chargen#0 ← (byte*) CHARGEN#0
@ -2524,6 +2582,8 @@ gfx_init_charset::@4: scope:[gfx_init_charset] from gfx_init_charset::@3
gfx_init_charset::@return: scope:[gfx_init_charset] from gfx_init_charset::@4
return
to:@return
(void()) gfx_init_screen0()
gfx_init_screen0: scope:[gfx_init_screen0] from gfx_init
(byte*) gfx_init_screen0::ch#0 ← (byte*) VIC_SCREEN0#0
(byte) gfx_init_screen0::cy#0 ← (byte) 0
@ -2557,6 +2617,8 @@ gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2
gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3
return
to:@return
(void()) gfx_init_screen1()
gfx_init_screen1: scope:[gfx_init_screen1] from gfx_init::@1
(byte*) gfx_init_screen1::ch#0 ← (byte*) VIC_SCREEN1#0
(byte) gfx_init_screen1::cy#0 ← (byte) 0
@ -2588,6 +2650,8 @@ gfx_init_screen1::@3: scope:[gfx_init_screen1] from gfx_init_screen1::@2
gfx_init_screen1::@return: scope:[gfx_init_screen1] from gfx_init_screen1::@3
return
to:@return
(void()) gfx_init_screen2()
gfx_init_screen2: scope:[gfx_init_screen2] from gfx_init::@2
(byte*) gfx_init_screen2::ch#0 ← (byte*) VIC_SCREEN2#0
(byte) gfx_init_screen2::cy#0 ← (byte) 0
@ -2624,6 +2688,8 @@ gfx_init_screen2::@3: scope:[gfx_init_screen2] from gfx_init_screen2::@2
gfx_init_screen2::@return: scope:[gfx_init_screen2] from gfx_init_screen2::@3
return
to:@return
(void()) gfx_init_screen3()
gfx_init_screen3: scope:[gfx_init_screen3] from gfx_init::@3
(byte*) gfx_init_screen3::ch#0 ← (byte*) VIC_SCREEN3#0
(byte) gfx_init_screen3::cy#0 ← (byte) 0
@ -2657,6 +2723,8 @@ gfx_init_screen3::@3: scope:[gfx_init_screen3] from gfx_init_screen3::@2
gfx_init_screen3::@return: scope:[gfx_init_screen3] from gfx_init_screen3::@3
return
to:@return
(void()) gfx_init_screen4()
gfx_init_screen4: scope:[gfx_init_screen4] from gfx_init::@4
(byte*) gfx_init_screen4::ch#0 ← (byte*) VIC_SCREEN4#0
(byte) gfx_init_screen4::cy#0 ← (byte) 0
@ -2686,6 +2754,8 @@ gfx_init_screen4::@3: scope:[gfx_init_screen4] from gfx_init_screen4::@2
gfx_init_screen4::@return: scope:[gfx_init_screen4] from gfx_init_screen4::@3
return
to:@return
(void()) gfx_init_vic_bitmap()
gfx_init_vic_bitmap: scope:[gfx_init_vic_bitmap] from gfx_init::@6
(byte*) bitmap_init::bitmap#0 ← (byte*) VIC_BITMAP#0
call bitmap_init
@ -2721,6 +2791,8 @@ gfx_init_vic_bitmap::@9: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bitmap::
gfx_init_vic_bitmap::@return: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bitmap::@1
return
to:@return
(void()) gfx_init_plane_8bppchunky()
gfx_init_plane_8bppchunky: scope:[gfx_init_plane_8bppchunky] from gfx_init::@7
(number~) gfx_init_plane_8bppchunky::$0 ← (dword) PLANE_8BPP_CHUNKY#0 / (number) $4000
(byte~) gfx_init_plane_8bppchunky::$1 ← ((byte)) (number~) gfx_init_plane_8bppchunky::$0
@ -2795,6 +2867,8 @@ gfx_init_plane_8bppchunky::@9: scope:[gfx_init_plane_8bppchunky] from gfx_init_
gfx_init_plane_8bppchunky::@return: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@9
return
to:@return
(void()) gfx_init_plane_horisontal()
gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9
(number~) gfx_init_plane_horisontal::$0 ← (dword) PLANE_HORISONTAL#0 / (number) $4000
(byte~) gfx_init_plane_horisontal::$1 ← ((byte)) (number~) gfx_init_plane_horisontal::$0
@ -2862,6 +2936,8 @@ gfx_init_plane_horisontal::@10: scope:[gfx_init_plane_horisontal] from gfx_init
gfx_init_plane_horisontal::@return: scope:[gfx_init_plane_horisontal] from gfx_init_plane_horisontal::@10
return
to:@return
(void()) gfx_init_plane_horisontal2()
gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@11
(number~) gfx_init_plane_horisontal2::$0 ← (dword) PLANE_HORISONTAL2#0 / (number) $4000
(byte~) gfx_init_plane_horisontal2::$1 ← ((byte)) (number~) gfx_init_plane_horisontal2::$0
@ -2913,6 +2989,8 @@ gfx_init_plane_horisontal2::@6: scope:[gfx_init_plane_horisontal2] from gfx_ini
gfx_init_plane_horisontal2::@return: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@6
return
to:@return
(void()) gfx_init_plane_vertical()
gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10
(number~) gfx_init_plane_vertical::$0 ← (dword) PLANE_VERTICAL#0 / (number) $4000
(byte~) gfx_init_plane_vertical::$1 ← ((byte)) (number~) gfx_init_plane_vertical::$0
@ -2960,6 +3038,8 @@ gfx_init_plane_vertical::@6: scope:[gfx_init_plane_vertical] from gfx_init_plan
gfx_init_plane_vertical::@return: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@6
return
to:@return
(void()) gfx_init_plane_charset8()
gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@8
(number~) gfx_init_plane_charset8::$0 ← (dword) PLANE_CHARSET8#0 / (number) $4000
(byte~) gfx_init_plane_charset8::$1 ← ((byte)) (number~) gfx_init_plane_charset8::$0
@ -3067,6 +3147,8 @@ gfx_init_plane_charset8::@10: scope:[gfx_init_plane_charset8] from gfx_init_pla
gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@10
return
to:@return
(void()) gfx_init_plane_vertical2()
gfx_init_plane_vertical2: scope:[gfx_init_plane_vertical2] from gfx_init::@12
(dword) gfx_init_plane_fill::plane_addr#0 ← (dword) PLANE_VERTICAL2#0
(byte) gfx_init_plane_fill::fill#0 ← (number) $1b
@ -3077,6 +3159,8 @@ gfx_init_plane_vertical2::@1: scope:[gfx_init_plane_vertical2] from gfx_init_pl
gfx_init_plane_vertical2::@return: scope:[gfx_init_plane_vertical2] from gfx_init_plane_vertical2::@1
return
to:@return
(void()) gfx_init_plane_blank()
gfx_init_plane_blank: scope:[gfx_init_plane_blank] from gfx_init::@13
(dword) gfx_init_plane_fill::plane_addr#1 ← (dword) PLANE_BLANK#0
(byte) gfx_init_plane_fill::fill#1 ← (number) 0
@ -3087,6 +3171,8 @@ gfx_init_plane_blank::@1: scope:[gfx_init_plane_blank] from gfx_init_plane_blan
gfx_init_plane_blank::@return: scope:[gfx_init_plane_blank] from gfx_init_plane_blank::@1
return
to:@return
(void()) gfx_init_plane_full()
gfx_init_plane_full: scope:[gfx_init_plane_full] from gfx_init::@14
(dword) gfx_init_plane_fill::plane_addr#2 ← (dword) PLANE_FULL#0
(byte) gfx_init_plane_fill::fill#2 ← (number) $ff
@ -3097,6 +3183,8 @@ gfx_init_plane_full::@1: scope:[gfx_init_plane_full] from gfx_init_plane_full
gfx_init_plane_full::@return: scope:[gfx_init_plane_full] from gfx_init_plane_full::@1
return
to:@return
(void()) gfx_init_plane_fill((dword) gfx_init_plane_fill::plane_addr , (byte) gfx_init_plane_fill::fill)
gfx_init_plane_fill: scope:[gfx_init_plane_fill] from gfx_init_plane_blank gfx_init_plane_full gfx_init_plane_vertical2
(byte) gfx_init_plane_fill::fill#7 ← phi( gfx_init_plane_blank/(byte) gfx_init_plane_fill::fill#1 gfx_init_plane_full/(byte) gfx_init_plane_fill::fill#2 gfx_init_plane_vertical2/(byte) gfx_init_plane_fill::fill#0 )
(dword) gfx_init_plane_fill::plane_addr#3 ← phi( gfx_init_plane_blank/(dword) gfx_init_plane_fill::plane_addr#1 gfx_init_plane_full/(dword) gfx_init_plane_fill::plane_addr#2 gfx_init_plane_vertical2/(dword) gfx_init_plane_fill::plane_addr#0 )
@ -3153,6 +3241,8 @@ gfx_init_plane_fill::@6: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::
gfx_init_plane_fill::@return: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@6
return
to:@return
(void()) form_mode()
form_mode: scope:[form_mode] from main::@2
(byte) form_field_idx#66 ← phi( main::@2/(byte) form_field_idx#25 )
(byte) keyboard_modifiers#111 ← phi( main::@2/(byte) keyboard_modifiers#38 )
@ -3477,6 +3567,8 @@ form_mode::@33: scope:[form_mode] from form_mode::@32
(number~) $37 ← (signed byte) FORM_CURSOR_BLINK#0 / (number) 2
(signed byte) form_cursor_count#4 ← (number~) $37
to:@85
(void()) form_set_screen((byte*) form_set_screen::screen)
form_set_screen: scope:[form_set_screen] from form_mode::@26
(byte*) form_set_screen::screen#1 ← phi( form_mode::@26/(byte*) form_set_screen::screen#0 )
(byte*) form_set_screen::line#0 ← (byte*) form_set_screen::screen#1
@ -3498,6 +3590,8 @@ form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_scre
form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1
return
to:@return
(byte*()) form_field_ptr((byte) form_field_ptr::field_idx)
form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@2
(byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@2/(byte) form_field_ptr::field_idx#0 )
(byte) form_field_ptr::y#0 ← *((byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2)
@ -3513,6 +3607,8 @@ form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr
(byte*) form_field_ptr::return#1 ← (byte*) form_field_ptr::return#4
return
to:@return
(void()) form_render_values()
form_render_values: scope:[form_render_values] from form_mode::@27 form_mode::@31
(byte) form_render_values::idx#0 ← (number) 0
to:form_render_values::@1
@ -3538,6 +3634,8 @@ form_render_values::@7: scope:[form_render_values] from form_render_values::@2
form_render_values::@return: scope:[form_render_values] from form_render_values::@1
return
to:@return
(byte()) form_control()
form_control: scope:[form_control] from form_mode::@8
(byte) keyboard_modifiers#94 ← phi( form_mode::@8/(byte) keyboard_modifiers#43 )
(byte) keyboard_events_size#107 ← phi( form_mode::@8/(byte) keyboard_events_size#46 )
@ -11828,6 +11926,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -11852,6 +11952,8 @@ main::@4: scope:[main] from main::@2
[14] phi()
[15] call gfx_mode
to:main::@1
(void()) gfx_mode()
gfx_mode: scope:[gfx_mode] from main::@4
[16] if(*((const byte[]) form_fields_val#0+(byte) 5)==(byte) 0) goto gfx_mode::@1
to:gfx_mode::@10
@ -12062,6 +12164,8 @@ gfx_mode::@24: scope:[gfx_mode] from gfx_mode::@22 gfx_mode::@24
[150] (byte) gfx_mode::i#1 ← ++ (byte) gfx_mode::i#2
[151] if((byte) gfx_mode::i#1!=(byte) $10) goto gfx_mode::@24
to:gfx_mode::@25
(byte()) keyboard_event_get()
keyboard_event_get: scope:[keyboard_event_get] from form_control::@19 gfx_mode::@32
[152] if((byte) keyboard_events_size#100==(byte) 0) goto keyboard_event_get::@return
to:keyboard_event_get::@1
@ -12074,6 +12178,8 @@ keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get
[155] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte) $ff keyboard_event_get::@1/(byte) keyboard_event_get::return#1 )
[156] return
to:@return
(void()) keyboard_event_scan()
keyboard_event_scan: scope:[keyboard_event_scan] from form_control::@3 gfx_mode::@26
[157] (byte) keyboard_events_size#99 ← phi( form_control::@3/(byte) keyboard_events_size#47 gfx_mode::@26/(byte) keyboard_events_size#24 )
to:keyboard_event_scan::@7
@ -12183,6 +12289,8 @@ keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan:
[209] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#18) ← (byte~) keyboard_event_scan::$23
[210] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#18
to:keyboard_event_scan::@10
(byte()) keyboard_event_pressed((byte) keyboard_event_pressed::keycode)
keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan::@1 keyboard_event_scan::@17 keyboard_event_scan::@2 keyboard_event_scan::@3
[211] (byte) keyboard_event_pressed::keycode#4 ← phi( keyboard_event_scan::@1/(const byte) KEY_RSHIFT#0 keyboard_event_scan::@2/(const byte) KEY_CTRL#0 keyboard_event_scan::@17/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@3/(const byte) KEY_COMMODORE#0 )
[212] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#4 >> (byte) 3
@ -12193,6 +12301,8 @@ keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan
keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed
[216] return
to:@return
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@7
[217] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
[218] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
@ -12200,6 +12310,8 @@ keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@7
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
[219] return
to:@return
(byte*()) get_vic_screen((byte) get_vic_screen::idx)
get_vic_screen: scope:[get_vic_screen] from gfx_mode::@28 gfx_mode::@30
[220] (byte) get_vic_screen::idx#2 ← phi( gfx_mode::@28/(byte) get_vic_screen::idx#0 gfx_mode::@30/(byte) get_vic_screen::idx#1 )
[221] if((byte) get_vic_screen::idx#2==(byte) 0) goto get_vic_screen::@return
@ -12223,6 +12335,8 @@ get_vic_screen::@return: scope:[get_vic_screen] from get_vic_screen get_vic_scr
[227] (byte*) get_vic_screen::return#5 ← phi( get_vic_screen/(const byte*) VIC_SCREEN0#0 get_vic_screen::@5/(const byte*) VIC_SCREEN4#0 get_vic_screen::@2/(const byte*) VIC_SCREEN1#0 get_vic_screen::@3/(const byte*) VIC_SCREEN2#0 get_vic_screen::@4/(const byte*) VIC_SCREEN3#0 get_vic_screen::@1/(const byte*) VIC_SCREEN0#0 )
[228] return
to:@return
(byte*()) get_vic_charset((byte) get_vic_charset::idx)
get_vic_charset: scope:[get_vic_charset] from gfx_mode::@29
[229] if((byte) get_vic_charset::idx#0==(byte) 0) goto get_vic_charset::@return
to:get_vic_charset::@2
@ -12236,6 +12350,8 @@ get_vic_charset::@return: scope:[get_vic_charset] from get_vic_charset get_vic_
[232] (byte*) get_vic_charset::return#2 ← phi( get_vic_charset/(const byte*) VIC_CHARSET_ROM#0 get_vic_charset::@1/(const byte*) VIC_CHARSET_ROM#0 get_vic_charset::@2/(const byte*) VIC_BITMAP#0 )
[233] return
to:@return
(dword()) get_plane((byte) get_plane::idx)
get_plane: scope:[get_plane] from gfx_mode::@27 gfx_mode::@9
[234] (byte) get_plane::idx#10 ← phi( gfx_mode::@27/(byte) get_plane::idx#1 gfx_mode::@9/(byte) get_plane::idx#0 )
[235] if((byte) get_plane::idx#10==(byte) 0) goto get_plane::@return
@ -12286,6 +12402,8 @@ get_plane::@return: scope:[get_plane] from get_plane get_plane::@1 get_plane::@
[250] (dword) get_plane::return#14 ← phi( get_plane/(dword)(const byte*) VIC_SCREEN0#0 get_plane::@10/(const dword) PLANE_HORISONTAL2#0 get_plane::@11/(const dword) PLANE_VERTICAL2#0 get_plane::@12/(const dword) PLANE_CHARSET8#0 get_plane::@13/(const dword) PLANE_BLANK#0 get_plane::@2/(dword)(const byte*) VIC_SCREEN1#0 get_plane::@1/(dword)(const byte*) VIC_SCREEN0#0 get_plane::@3/(dword)(const byte*) VIC_SCREEN2#0 get_plane::@4/(dword)(const byte*) VIC_SCREEN3#0 get_plane::@14/(const dword) PLANE_FULL#0 get_plane::@5/(dword)(const byte*) VIC_BITMAP#0 get_plane::@6/(dword)(const byte*) VIC_CHARSET_ROM#0 get_plane::@7/(const dword) PLANE_8BPP_CHUNKY#0 get_plane::@8/(const dword) PLANE_HORISONTAL#0 get_plane::@9/(const dword) PLANE_VERTICAL#0 )
[251] return
to:@return
(void()) form_mode()
form_mode: scope:[form_mode] from main::@2
[252] phi()
[253] call print_set_screen
@ -12383,6 +12501,8 @@ form_mode::@19: scope:[form_mode] from form_mode::@18
[302] (byte) render_preset_name::idx#1 ← *((const byte[]) form_fields_val#0)
[303] call render_preset_name
to:form_mode::@3
(void()) render_preset_name((byte) render_preset_name::idx)
render_preset_name: scope:[render_preset_name] from form_mode::@15 form_mode::@19
[304] (byte) render_preset_name::idx#10 ← phi( form_mode::@15/(byte) render_preset_name::idx#0 form_mode::@19/(byte) render_preset_name::idx#1 )
[305] if((byte) render_preset_name::idx#10==(byte) 0) goto render_preset_name::@2
@ -12428,6 +12548,8 @@ render_preset_name::@2: scope:[render_preset_name] from render_preset_name rend
render_preset_name::@return: scope:[render_preset_name] from render_preset_name::@2
[320] return
to:@return
(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at)
print_str_at: scope:[print_str_at] from render_preset_name::@2
[321] phi()
to:print_str_at::@1
@ -12444,6 +12566,8 @@ print_str_at::@2: scope:[print_str_at] from print_str_at::@1
[326] (byte*) print_str_at::at#0 ← ++ (byte*) print_str_at::at#2
[327] (byte*) print_str_at::str#0 ← ++ (byte*) print_str_at::str#2
to:print_str_at::@1
(void()) form_render_values()
form_render_values: scope:[form_render_values] from form_mode::@14 form_mode::@18
[328] phi()
to:form_render_values::@1
@ -12462,6 +12586,8 @@ form_render_values::@3: scope:[form_render_values] from form_render_values::@2
[334] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← *((const byte[]) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2))
[335] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2
to:form_render_values::@1
(byte*()) form_field_ptr((byte) form_field_ptr::field_idx)
form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@2
[336] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@2/(byte) form_field_ptr::field_idx#0 )
[337] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2)
@ -12471,6 +12597,8 @@ form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@2
form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr
[340] return
to:@return
(void()) apply_preset((byte) apply_preset::idx)
apply_preset: scope:[apply_preset] from form_mode::@7
[341] if((byte) apply_preset::idx#0==(byte) 0) goto apply_preset::@2
to:apply_preset::@3
@ -12521,6 +12649,8 @@ apply_preset::@14: scope:[apply_preset] from apply_preset::@13
[357] *((const byte[]) form_fields_val#0 + (byte) apply_preset::i#2) ← *((byte*) apply_preset::preset#15 + (byte) apply_preset::i#2)
[358] (byte) apply_preset::i#1 ← ++ (byte) apply_preset::i#2
to:apply_preset::@13
(byte()) form_control()
form_control: scope:[form_control] from form_mode::@5
[359] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#28
[360] call form_field_ptr
@ -12616,6 +12746,8 @@ form_control::@2: scope:[form_control] from form_control::@1
[400] (byte~) form_control::$14 ← *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) | (byte) $80
[401] *((byte*)(word) form_field_ptr::line#0 + (byte) form_field_ptr::x#0) ← (byte~) form_control::$14
to:form_control::@3
(void()) form_set_screen((byte*) form_set_screen::screen)
form_set_screen: scope:[form_set_screen] from form_mode::@13
[402] phi()
to:form_set_screen::@1
@ -12633,6 +12765,8 @@ form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_scre
form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1
[411] return
to:@return
(void()) print_str_lines((byte*) print_str_lines::str)
print_str_lines: scope:[print_str_lines] from form_mode::@12 form_mode::@9
[412] (byte*) print_str_lines::str#5 ← phi( form_mode::@9/(const byte[]) FORM_COLS#0 form_mode::@12/(const byte[]) FORM_TEXT#0 )
[413] (byte*~) print_char_cursor#73 ← (byte*) print_set_screen::screen#2
@ -12668,6 +12802,8 @@ print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@5
[427] (byte*~) print_char_cursor#74 ← (byte*) print_line_cursor#22
to:print_str_lines::@1
(void()) print_ln()
print_ln: scope:[print_ln] from print_str_lines::@5
[428] phi()
to:print_ln::@1
@ -12679,6 +12815,8 @@ print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
print_ln::@return: scope:[print_ln] from print_ln::@1
[432] return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from form_mode::@11 form_mode::@8
[433] (void*) memset::str#0 ← (void*)(byte*) print_set_screen::screen#2
[434] call memset
@ -12686,6 +12824,8 @@ print_cls: scope:[print_cls] from form_mode::@11 form_mode::@8
print_cls::@return: scope:[print_cls] from print_cls
[435] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[436] phi()
to:memset::@1
@ -12704,12 +12844,16 @@ memset::@3: scope:[memset] from memset::@2
[442] *((byte*) memset::dst#2) ← (const byte) memset::c#0
[443] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@2
(void()) print_set_screen((byte*) print_set_screen::screen)
print_set_screen: scope:[print_set_screen] from form_mode form_mode::@10
[444] (byte*) print_set_screen::screen#2 ← phi( form_mode/(const byte*) COLS#0 form_mode::@10/(const byte*) FORM_SCREEN#0 )
to:print_set_screen::@return
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
[445] return
to:@return
(void()) gfx_init()
gfx_init: scope:[gfx_init] from main::@3
[446] phi()
[447] call gfx_init_screen0
@ -12773,6 +12917,8 @@ gfx_init::@14: scope:[gfx_init] from gfx_init::@13
gfx_init::@return: scope:[gfx_init] from gfx_init::@14
[476] return
to:@return
(void()) gfx_init_plane_full()
gfx_init_plane_full: scope:[gfx_init_plane_full] from gfx_init::@14
[477] phi()
[478] call gfx_init_plane_fill
@ -12780,6 +12926,8 @@ gfx_init_plane_full: scope:[gfx_init_plane_full] from gfx_init::@14
gfx_init_plane_full::@return: scope:[gfx_init_plane_full] from gfx_init_plane_full
[479] return
to:@return
(void()) gfx_init_plane_fill((dword) gfx_init_plane_fill::plane_addr , (byte) gfx_init_plane_fill::fill)
gfx_init_plane_fill: scope:[gfx_init_plane_fill] from gfx_init_plane_blank gfx_init_plane_full gfx_init_plane_vertical2
[480] (byte) gfx_init_plane_fill::fill#6 ← phi( gfx_init_plane_blank/(byte) 0 gfx_init_plane_full/(byte) $ff gfx_init_plane_vertical2/(byte) $1b )
[480] (dword) gfx_init_plane_fill::plane_addr#3 ← phi( gfx_init_plane_blank/(const dword) PLANE_BLANK#0 gfx_init_plane_full/(const dword) PLANE_FULL#0 gfx_init_plane_vertical2/(const dword) PLANE_VERTICAL2#0 )
@ -12818,6 +12966,8 @@ gfx_init_plane_fill::@4: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::
gfx_init_plane_fill::@return: scope:[gfx_init_plane_fill] from gfx_init_plane_fill::@4
[500] return
to:@return
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppchunky gfx_init_plane_8bppchunky::@4 gfx_init_plane_8bppchunky::@6 gfx_init_plane_charset8 gfx_init_plane_charset8::@8 gfx_init_plane_fill gfx_init_plane_fill::@4 gfx_init_plane_horisontal gfx_init_plane_horisontal2 gfx_init_plane_horisontal2::@4 gfx_init_plane_horisontal::@7 gfx_init_plane_vertical gfx_init_plane_vertical::@4
[501] (byte) dtvSetCpuBankSegment1::cpuBankIdx#13 ← phi( gfx_init_plane_8bppchunky/(byte)(const dword) PLANE_8BPP_CHUNKY#0/(word) $4000 gfx_init_plane_8bppchunky::@4/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 gfx_init_plane_8bppchunky::@6/(byte)(number) $4000/(number) $4000 gfx_init_plane_charset8/(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfx_init_plane_charset8::@8/(byte)(number) $4000/(number) $4000 gfx_init_plane_fill/(byte) dtvSetCpuBankSegment1::cpuBankIdx#11 gfx_init_plane_fill::@4/(byte)(number) $4000/(number) $4000 gfx_init_plane_horisontal/(const byte) gfx_init_plane_horisontal::gfxbCpuBank#0 gfx_init_plane_horisontal2/(const byte) gfx_init_plane_horisontal2::gfxbCpuBank#0 gfx_init_plane_horisontal2::@4/(byte)(number) $4000/(number) $4000 gfx_init_plane_horisontal::@7/(byte)(number) $4000/(number) $4000 gfx_init_plane_vertical/(const byte) gfx_init_plane_vertical::gfxbCpuBank#0 gfx_init_plane_vertical::@4/(byte)(number) $4000/(number) $4000 )
[502] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#13
@ -12826,6 +12976,8 @@ dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from gfx_init_plane_8bppch
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
[504] return
to:@return
(void()) gfx_init_plane_blank()
gfx_init_plane_blank: scope:[gfx_init_plane_blank] from gfx_init::@13
[505] phi()
[506] call gfx_init_plane_fill
@ -12833,6 +12985,8 @@ gfx_init_plane_blank: scope:[gfx_init_plane_blank] from gfx_init::@13
gfx_init_plane_blank::@return: scope:[gfx_init_plane_blank] from gfx_init_plane_blank
[507] return
to:@return
(void()) gfx_init_plane_vertical2()
gfx_init_plane_vertical2: scope:[gfx_init_plane_vertical2] from gfx_init::@12
[508] phi()
[509] call gfx_init_plane_fill
@ -12840,6 +12994,8 @@ gfx_init_plane_vertical2: scope:[gfx_init_plane_vertical2] from gfx_init::@12
gfx_init_plane_vertical2::@return: scope:[gfx_init_plane_vertical2] from gfx_init_plane_vertical2
[510] return
to:@return
(void()) gfx_init_plane_horisontal2()
gfx_init_plane_horisontal2: scope:[gfx_init_plane_horisontal2] from gfx_init::@11
[511] phi()
[512] call dtvSetCpuBankSegment1
@ -12869,6 +13025,8 @@ gfx_init_plane_horisontal2::@4: scope:[gfx_init_plane_horisontal2] from gfx_ini
gfx_init_plane_horisontal2::@return: scope:[gfx_init_plane_horisontal2] from gfx_init_plane_horisontal2::@4
[525] return
to:@return
(void()) gfx_init_plane_vertical()
gfx_init_plane_vertical: scope:[gfx_init_plane_vertical] from gfx_init::@10
[526] phi()
[527] call dtvSetCpuBankSegment1
@ -12896,6 +13054,8 @@ gfx_init_plane_vertical::@4: scope:[gfx_init_plane_vertical] from gfx_init_plan
gfx_init_plane_vertical::@return: scope:[gfx_init_plane_vertical] from gfx_init_plane_vertical::@4
[538] return
to:@return
(void()) gfx_init_plane_horisontal()
gfx_init_plane_horisontal: scope:[gfx_init_plane_horisontal] from gfx_init::@9
[539] phi()
[540] call dtvSetCpuBankSegment1
@ -12934,6 +13094,8 @@ gfx_init_plane_horisontal::@3: scope:[gfx_init_plane_horisontal] from gfx_init_
[555] *((byte*) gfx_init_plane_horisontal::gfxa#3) ← (byte) 0
[556] (byte*) gfx_init_plane_horisontal::gfxa#1 ← ++ (byte*) gfx_init_plane_horisontal::gfxa#3
to:gfx_init_plane_horisontal::@4
(void()) gfx_init_plane_charset8()
gfx_init_plane_charset8: scope:[gfx_init_plane_charset8] from gfx_init::@8
[557] phi()
[558] call dtvSetCpuBankSegment1
@ -12990,6 +13152,8 @@ gfx_init_plane_charset8::@8: scope:[gfx_init_plane_charset8] from gfx_init_plan
gfx_init_plane_charset8::@return: scope:[gfx_init_plane_charset8] from gfx_init_plane_charset8::@8
[581] return
to:@return
(void()) gfx_init_plane_8bppchunky()
gfx_init_plane_8bppchunky: scope:[gfx_init_plane_8bppchunky] from gfx_init::@7
[582] phi()
[583] call dtvSetCpuBankSegment1
@ -13033,6 +13197,8 @@ gfx_init_plane_8bppchunky::@6: scope:[gfx_init_plane_8bppchunky] from gfx_init_
gfx_init_plane_8bppchunky::@return: scope:[gfx_init_plane_8bppchunky] from gfx_init_plane_8bppchunky::@6
[601] return
to:@return
(void()) gfx_init_vic_bitmap()
gfx_init_vic_bitmap: scope:[gfx_init_vic_bitmap] from gfx_init::@6
[602] phi()
[603] call bitmap_init
@ -13058,6 +13224,8 @@ gfx_init_vic_bitmap::@2: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bitmap::
gfx_init_vic_bitmap::@4: scope:[gfx_init_vic_bitmap] from gfx_init_vic_bitmap::@2
[614] (byte) gfx_init_vic_bitmap::l#1 ← ++ (byte) gfx_init_vic_bitmap::l#2
to:gfx_init_vic_bitmap::@1
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from gfx_init_vic_bitmap::@2
[615] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
to:bitmap_line::@2
@ -13152,6 +13320,8 @@ bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@11
[675] (byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#11
[676] call bitmap_line_xdyi
to:bitmap_line::@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8
[677] (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@8/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@13/(byte) bitmap_line_xdyi::x1#1 )
[677] (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@8/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@13/(byte) bitmap_line_xdyi::xd#1 )
@ -13186,6 +13356,8 @@ bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
[691] return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[692] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
[692] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -13198,6 +13370,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[698] return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@14 bitmap_line::@4
[699] (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@4/(byte) bitmap_line_ydxi::y1#0 )
[699] (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@4/(byte) bitmap_line_ydxi::yd#0 )
@ -13232,6 +13406,8 @@ bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[713] return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9
[714] (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@9/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@12/(byte) bitmap_line_xdyd::x1#1 )
[714] (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@9/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@12/(byte) bitmap_line_xdyd::xd#1 )
@ -13266,6 +13442,8 @@ bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
[728] return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6
[729] (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@6/(byte) bitmap_line_ydxd::y1#1 )
[729] (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@6/(byte) bitmap_line_ydxd::yd#1 )
@ -13300,6 +13478,8 @@ bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[743] return
to:@return
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from gfx_init_vic_bitmap::@3
[744] (word) bitmap_clear::bitmap#0 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0)
[745] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
@ -13323,6 +13503,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
[754] return
to:@return
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from gfx_init_vic_bitmap
[755] phi()
to:bitmap_init::@1
@ -13366,6 +13548,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[779] return
to:@return
(void()) gfx_init_charset()
gfx_init_charset: scope:[gfx_init_charset] from gfx_init::@5
[780] *((const byte*) PROCPORT#0) ← (byte) $32
to:gfx_init_charset::@1
@ -13394,6 +13578,8 @@ gfx_init_charset::@4: scope:[gfx_init_charset] from gfx_init_charset::@3
gfx_init_charset::@return: scope:[gfx_init_charset] from gfx_init_charset::@4
[791] return
to:@return
(void()) gfx_init_screen4()
gfx_init_screen4: scope:[gfx_init_screen4] from gfx_init::@4
[792] phi()
to:gfx_init_screen4::@1
@ -13416,6 +13602,8 @@ gfx_init_screen4::@3: scope:[gfx_init_screen4] from gfx_init_screen4::@2
gfx_init_screen4::@return: scope:[gfx_init_screen4] from gfx_init_screen4::@3
[801] return
to:@return
(void()) gfx_init_screen3()
gfx_init_screen3: scope:[gfx_init_screen3] from gfx_init::@3
[802] phi()
to:gfx_init_screen3::@1
@ -13442,6 +13630,8 @@ gfx_init_screen3::@3: scope:[gfx_init_screen3] from gfx_init_screen3::@2
gfx_init_screen3::@return: scope:[gfx_init_screen3] from gfx_init_screen3::@3
[815] return
to:@return
(void()) gfx_init_screen2()
gfx_init_screen2: scope:[gfx_init_screen2] from gfx_init::@2
[816] phi()
to:gfx_init_screen2::@1
@ -13469,6 +13659,8 @@ gfx_init_screen2::@3: scope:[gfx_init_screen2] from gfx_init_screen2::@2
gfx_init_screen2::@return: scope:[gfx_init_screen2] from gfx_init_screen2::@3
[830] return
to:@return
(void()) gfx_init_screen1()
gfx_init_screen1: scope:[gfx_init_screen1] from gfx_init::@1
[831] phi()
to:gfx_init_screen1::@1
@ -13493,6 +13685,8 @@ gfx_init_screen1::@3: scope:[gfx_init_screen1] from gfx_init_screen1::@2
gfx_init_screen1::@return: scope:[gfx_init_screen1] from gfx_init_screen1::@3
[842] return
to:@return
(void()) gfx_init_screen0()
gfx_init_screen0: scope:[gfx_init_screen0] from gfx_init
[843] phi()
to:gfx_init_screen0::@1
@ -13519,6 +13713,8 @@ gfx_init_screen0::@3: scope:[gfx_init_screen0] from gfx_init_screen0::@2
gfx_init_screen0::@return: scope:[gfx_init_screen0] from gfx_init_screen0::@3
[856] return
to:@return
(void()) keyboard_init()
keyboard_init: scope:[keyboard_init] from main
[857] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte) $ff
[858] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte) 0

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -17,6 +19,8 @@ main::@1: scope:[main] from main main::@1
[8] phi()
[9] call menu
to:main::@1
(void()) menu()
menu: scope:[menu] from main::@1
[10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const dword) DTV_COLOR_BANK_DEFAULT#0/(word) $400
@ -214,6 +218,8 @@ menu::@3: scope:[menu] from menu::@2
[117] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0
[118] (byte*) menu::c#1 ← ++ (byte*) menu::c#2
to:menu::@2
(void()) mode_8bppchunkybmm()
mode_8bppchunkybmm: scope:[mode_8bppchunkybmm] from menu::@28
[119] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_COLORRAM_OFF#0
[120] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -279,6 +285,8 @@ mode_8bppchunkybmm::@10: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@8
mode_8bppchunkybmm::@return: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@10
[154] return
to:@return
(void()) mode_ctrl()
mode_ctrl: scope:[mode_ctrl] from mode_8bppchunkybmm::@10 mode_8bpppixelcell::@13 mode_ecmchar::@6 mode_hicolecmchar::@6 mode_hicolmcchar::@6 mode_hicolstdchar::@6 mode_mcchar::@6 mode_sixsfred2::@12 mode_sixsfred::@12 mode_stdbitmap::@9 mode_stdchar::@6 mode_twoplanebitmap::@15
[155] (byte) dtv_control#144 ← phi( mode_8bppchunkybmm::@10/(const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_COLORRAM_OFF#0 mode_8bpppixelcell::@13/(const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0 mode_ecmchar::@6/(byte) 0 mode_hicolecmchar::@6/(const byte) DTV_HIGHCOLOR#0 mode_hicolmcchar::@6/(const byte) DTV_HIGHCOLOR#0 mode_hicolstdchar::@6/(const byte) DTV_HIGHCOLOR#0 mode_mcchar::@6/(byte) 0 mode_sixsfred2::@12/(const byte) DTV_LINEAR#0 mode_sixsfred::@12/(const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 mode_stdbitmap::@9/(byte) 0 mode_stdchar::@6/(byte) 0 mode_twoplanebitmap::@15/(const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 )
to:mode_ctrl::@1
@ -393,6 +401,8 @@ mode_ctrl::@18: scope:[mode_ctrl] from mode_ctrl::@11
[209] *((const byte*) DTV_CONTROL#0) ← (byte) mode_ctrl::ctrl#14
[210] *((const byte*) BORDERCOL#0) ← (byte) mode_ctrl::ctrl#14
to:mode_ctrl::@1
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@10 menu::@11 menu::@12 menu::@13 menu::@14 menu::@15 menu::@16 menu::@5 menu::@6 menu::@7 menu::@8 menu::@9 mode_ctrl::@10 mode_ctrl::@3 mode_ctrl::@4 mode_ctrl::@5 mode_ctrl::@6 mode_ctrl::@7 mode_ctrl::@8 mode_ctrl::@9
[211] (byte) keyboard_key_pressed::key#20 ← phi( menu::@5/(const byte) KEY_1#0 menu::@6/(const byte) KEY_2#0 menu::@7/(const byte) KEY_3#0 menu::@8/(const byte) KEY_4#0 menu::@9/(const byte) KEY_6#0 menu::@10/(const byte) KEY_7#0 menu::@11/(const byte) KEY_8#0 menu::@12/(const byte) KEY_A#0 menu::@13/(const byte) KEY_B#0 menu::@14/(const byte) KEY_C#0 menu::@15/(const byte) KEY_D#0 menu::@16/(const byte) KEY_E#0 mode_ctrl::@4/(const byte) KEY_L#0 mode_ctrl::@5/(const byte) KEY_H#0 mode_ctrl::@6/(const byte) KEY_O#0 mode_ctrl::@7/(const byte) KEY_B#0 mode_ctrl::@8/(const byte) KEY_U#0 mode_ctrl::@9/(const byte) KEY_C#0 mode_ctrl::@10/(const byte) KEY_0#0 mode_ctrl::@3/(const byte) KEY_SPACE#0 )
[212] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#20 & (byte) 7
@ -408,6 +418,8 @@ keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_presse
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@1
[219] return
to:@return
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
[220] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
[221] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
@ -415,6 +427,8 @@ keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
[222] return
to:@return
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@8
[223] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( mode_8bppchunkybmm::@2/(byte)(const dword) mode_8bppchunkybmm::PLANEB#0/(word) $4000 mode_8bppchunkybmm::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 mode_8bppchunkybmm::@8/(byte)(number) $4000/(number) $4000 )
[224] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3
@ -423,6 +437,8 @@ dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
[226] return
to:@return
(void()) mode_8bpppixelcell()
mode_8bpppixelcell: scope:[mode_8bpppixelcell] from menu::@27
[227] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0
[228] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -519,6 +535,8 @@ mode_8bpppixelcell::@13: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1
mode_8bpppixelcell::@return: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@13
[281] return
to:@return
(void()) mode_sixsfred()
mode_sixsfred: scope:[mode_sixsfred] from menu::@26
[282] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0
[283] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -606,6 +624,8 @@ mode_sixsfred::@12: scope:[mode_sixsfred] from mode_sixsfred::@11
mode_sixsfred::@return: scope:[mode_sixsfred] from mode_sixsfred::@12
[334] return
to:@return
(void()) mode_twoplanebitmap()
mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@25
[335] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0
[336] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -706,6 +726,8 @@ mode_twoplanebitmap::@8: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::
[393] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte) 0
[394] (byte*) mode_twoplanebitmap::gfxa#1 ← ++ (byte*) mode_twoplanebitmap::gfxa#3
to:mode_twoplanebitmap::@9
(void()) mode_sixsfred2()
mode_sixsfred2: scope:[mode_sixsfred2] from menu::@24
[395] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_LINEAR#0
[396] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -795,6 +817,8 @@ mode_sixsfred2::@12: scope:[mode_sixsfred2] from mode_sixsfred2::@11
mode_sixsfred2::@return: scope:[mode_sixsfred2] from mode_sixsfred2::@12
[449] return
to:@return
(void()) mode_hicolmcchar()
mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@23
[450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const byte*) mode_hicolmcchar::COLORS#0/(word) $400
@ -849,6 +873,8 @@ mode_hicolmcchar::@6: scope:[mode_hicolmcchar] from mode_hicolmcchar::@5
mode_hicolmcchar::@return: scope:[mode_hicolmcchar] from mode_hicolmcchar::@6
[483] return
to:@return
(void()) mode_hicolecmchar()
mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@22
[484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const byte*) mode_hicolecmchar::COLORS#0/(word) $400
@ -904,6 +930,8 @@ mode_hicolecmchar::@6: scope:[mode_hicolecmchar] from mode_hicolecmchar::@5
mode_hicolecmchar::@return: scope:[mode_hicolecmchar] from mode_hicolecmchar::@6
[518] return
to:@return
(void()) mode_hicolstdchar()
mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@21
[519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const byte*) mode_hicolstdchar::COLORS#0/(word) $400
@ -956,6 +984,8 @@ mode_hicolstdchar::@6: scope:[mode_hicolstdchar] from mode_hicolstdchar::@5
mode_hicolstdchar::@return: scope:[mode_hicolstdchar] from mode_hicolstdchar::@6
[550] return
to:@return
(void()) mode_stdbitmap()
mode_stdbitmap: scope:[mode_stdbitmap] from menu::@20
[551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[552] *((const byte*) DTV_CONTROL#0) ← (byte) 0
@ -1025,6 +1055,8 @@ mode_stdbitmap::@8: scope:[mode_stdbitmap] from mode_stdbitmap::@7
mode_stdbitmap::@11: scope:[mode_stdbitmap] from mode_stdbitmap::@8
[591] (byte) mode_stdbitmap::l#1 ← ++ (byte) mode_stdbitmap::l#2
to:mode_stdbitmap::@7
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from mode_stdbitmap::@8
[592] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
to:bitmap_line::@2
@ -1119,6 +1151,8 @@ bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@11
[652] (byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#11
[653] call bitmap_line_xdyi
to:bitmap_line::@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8
[654] (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@8/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@13/(byte) bitmap_line_xdyi::x1#1 )
[654] (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@8/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@13/(byte) bitmap_line_xdyi::xd#1 )
@ -1153,6 +1187,8 @@ bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
[668] return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[669] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
[669] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -1165,6 +1201,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[675] return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@14 bitmap_line::@4
[676] (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@4/(byte) bitmap_line_ydxi::y1#0 )
[676] (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@4/(byte) bitmap_line_ydxi::yd#0 )
@ -1199,6 +1237,8 @@ bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[690] return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9
[691] (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@9/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@12/(byte) bitmap_line_xdyd::x1#1 )
[691] (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@9/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@12/(byte) bitmap_line_xdyd::xd#1 )
@ -1233,6 +1273,8 @@ bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
[705] return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6
[706] (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@6/(byte) bitmap_line_ydxd::y1#1 )
[706] (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@6/(byte) bitmap_line_ydxd::yd#1 )
@ -1267,6 +1309,8 @@ bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[720] return
to:@return
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from mode_stdbitmap::@10
[721] (word) bitmap_clear::bitmap#0 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0)
[722] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
@ -1290,6 +1334,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
[731] return
to:@return
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from mode_stdbitmap::@6
[732] phi()
to:bitmap_init::@1
@ -1333,6 +1379,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[756] return
to:@return
(void()) mode_mcchar()
mode_mcchar: scope:[mode_mcchar] from menu::@19
[757] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[758] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const dword) DTV_COLOR_BANK_DEFAULT#0/(word) $400
@ -1389,6 +1437,8 @@ mode_mcchar::@6: scope:[mode_mcchar] from mode_mcchar::@5
mode_mcchar::@return: scope:[mode_mcchar] from mode_mcchar::@6
[792] return
to:@return
(void()) mode_ecmchar()
mode_ecmchar: scope:[mode_ecmchar] from menu::@18
[793] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[794] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const dword) DTV_COLOR_BANK_DEFAULT#0/(word) $400
@ -1446,6 +1496,8 @@ mode_ecmchar::@6: scope:[mode_ecmchar] from mode_ecmchar::@5
mode_ecmchar::@return: scope:[mode_ecmchar] from mode_ecmchar::@6
[829] return
to:@return
(void()) mode_stdchar()
mode_stdchar: scope:[mode_stdchar] from menu::@17
[830] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[831] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const dword) DTV_COLOR_BANK_DEFAULT#0/(word) $400
@ -1500,6 +1552,8 @@ mode_stdchar::@6: scope:[mode_stdchar] from mode_stdchar::@5
mode_stdchar::@return: scope:[mode_stdchar] from mode_stdchar::@6
[863] return
to:@return
(void()) print_str_lines((byte*) print_str_lines::str)
print_str_lines: scope:[print_str_lines] from menu::@30
[864] phi()
to:print_str_lines::@1
@ -1534,6 +1588,8 @@ print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@5
[878] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#19
to:print_str_lines::@1
(void()) print_ln()
print_ln: scope:[print_ln] from print_str_lines::@5
[879] phi()
to:print_ln::@1
@ -1545,6 +1601,8 @@ print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
print_ln::@return: scope:[print_ln] from print_ln::@1
[883] return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from menu::@29
[884] phi()
[885] call memset
@ -1552,6 +1610,8 @@ print_cls: scope:[print_cls] from menu::@29
print_cls::@return: scope:[print_cls] from print_cls
[886] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[887] phi()
to:memset::@1
@ -1566,6 +1626,8 @@ memset::@2: scope:[memset] from memset::@1
[891] *((byte*) memset::dst#2) ← (const byte) memset::c#0
[892] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@1
(void()) print_set_screen((byte*) print_set_screen::screen)
print_set_screen: scope:[print_set_screen] from menu::@4
[893] phi()
to:print_set_screen::@return

View File

@ -214,6 +214,8 @@ CONTROL FLOW GRAPH SSA
(dword) DTV_COLOR_BANK_DEFAULT#0 ← (number) $1d800
(byte*) DTV_GRAPHICS_VIC_BANK#0 ← ((byte*)) (number) $d03d
to:@17
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@8
(byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( mode_8bppchunkybmm::@2/(byte) dtvSetCpuBankSegment1::cpuBankIdx#0 mode_8bppchunkybmm::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 mode_8bppchunkybmm::@8/(byte) dtvSetCpuBankSegment1::cpuBankIdx#2 )
(byte*) dtvSetCpuBankSegment1::cpuBank#0 ← ((byte*)) (number) $ff
@ -223,6 +225,8 @@ dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
(byte) memset::c#4 ← phi( print_cls/(byte) memset::c#0 )
(void*) memset::str#3 ← phi( print_cls/(void*) memset::str#0 )
@ -270,6 +274,8 @@ memset::@return: scope:[memset] from memset::@1
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
to:@41
(void()) print_str_lines((byte*) print_str_lines::str)
print_str_lines: scope:[print_str_lines] from menu::@52
(byte*) print_line_cursor#50 ← phi( menu::@52/(byte*) print_line_cursor#12 )
(byte*) print_char_cursor#52 ← phi( menu::@52/(byte*) print_char_cursor#13 )
@ -328,6 +334,8 @@ print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
(byte*) print_line_cursor#2 ← (byte*) print_line_cursor#17
return
to:@return
(void()) print_ln()
print_ln: scope:[print_ln] from print_str_lines::@7
(byte*) print_char_cursor#34 ← phi( print_str_lines::@7/(byte*) print_char_cursor#32 )
(byte*) print_line_cursor#32 ← phi( print_str_lines::@7/(byte*) print_line_cursor#30 )
@ -351,6 +359,8 @@ print_ln::@return: scope:[print_ln] from print_ln::@2
(byte*) print_char_cursor#5 ← (byte*) print_char_cursor#21
return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from menu::@51
(byte*) print_screen#8 ← phi( menu::@51/(byte*) print_screen#5 )
(void*) memset::str#0 ← (void*)(byte*) print_screen#8
@ -371,6 +381,8 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
(byte*) print_char_cursor#7 ← (byte*) print_char_cursor#22
return
to:@return
(void()) print_set_screen((byte*) print_set_screen::screen)
print_set_screen: scope:[print_set_screen] from menu::@5
(byte*) print_set_screen::screen#1 ← phi( menu::@5/(byte*) print_set_screen::screen#0 )
(byte*) print_screen#1 ← (byte*) print_set_screen::screen#1
@ -411,6 +423,8 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen
(byte[8]) keyboard_matrix_row_bitmask#0 ← { (number) $fe, (number) $fd, (number) $fb, (number) $f7, (number) $ef, (number) $df, (number) $bf, (number) $7f }
(byte[8]) keyboard_matrix_col_bitmask#0 ← { (number) 1, (number) 2, (number) 4, (number) 8, (number) $10, (number) $20, (number) $40, (number) $80 }
to:@48
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
(byte) keyboard_matrix_read::rowid#1 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 )
*((byte*) CIA1_PORT_A#0) ← *((byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#1)
@ -423,6 +437,8 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri
(byte) keyboard_matrix_read::return#1 ← (byte) keyboard_matrix_read::return#3
return
to:@return
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@10 menu::@12 menu::@13 menu::@14 menu::@15 menu::@16 menu::@17 menu::@18 menu::@19 menu::@20 menu::@21 menu::@22 mode_ctrl::@12 mode_ctrl::@13 mode_ctrl::@14 mode_ctrl::@15 mode_ctrl::@16 mode_ctrl::@17 mode_ctrl::@18 mode_ctrl::@6
(byte) keyboard_key_pressed::key#20 ← phi( menu::@10/(byte) keyboard_key_pressed::key#0 menu::@12/(byte) keyboard_key_pressed::key#1 menu::@13/(byte) keyboard_key_pressed::key#2 menu::@14/(byte) keyboard_key_pressed::key#3 menu::@15/(byte) keyboard_key_pressed::key#4 menu::@16/(byte) keyboard_key_pressed::key#5 menu::@17/(byte) keyboard_key_pressed::key#6 menu::@18/(byte) keyboard_key_pressed::key#7 menu::@19/(byte) keyboard_key_pressed::key#8 menu::@20/(byte) keyboard_key_pressed::key#9 menu::@21/(byte) keyboard_key_pressed::key#10 menu::@22/(byte) keyboard_key_pressed::key#11 mode_ctrl::@12/(byte) keyboard_key_pressed::key#13 mode_ctrl::@13/(byte) keyboard_key_pressed::key#14 mode_ctrl::@14/(byte) keyboard_key_pressed::key#15 mode_ctrl::@15/(byte) keyboard_key_pressed::key#16 mode_ctrl::@16/(byte) keyboard_key_pressed::key#17 mode_ctrl::@17/(byte) keyboard_key_pressed::key#18 mode_ctrl::@18/(byte) keyboard_key_pressed::key#19 mode_ctrl::@6/(byte) keyboard_key_pressed::key#12 )
(number~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key#20 & (number) 7
@ -455,6 +471,8 @@ keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_p
(byte[$100]) bitmap_plot_yhi#0 ← { fill( $100, 0) }
(byte[$100]) bitmap_plot_bit#0 ← { fill( $100, 0) }
to:@57
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from mode_stdbitmap::@6
(byte*) bitmap_init::bitmap#2 ← phi( mode_stdbitmap::@6/(byte*) bitmap_init::bitmap#0 )
(byte) bitmap_init::bits#0 ← (number) $80
@ -522,6 +540,8 @@ bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
return
to:@return
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from mode_stdbitmap::@13
(byte*~) bitmap_clear::$0 ← ((byte*)) { *((byte[$100]) bitmap_plot_xhi#0 + (number) 0), *((byte[$100]) bitmap_plot_xlo#0 + (number) 0) }
(byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$0
@ -552,6 +572,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
(byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
(byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -565,6 +587,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
return
to:@return
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from mode_stdbitmap::@8
(byte) bitmap_line::y1#13 ← phi( mode_stdbitmap::@8/(byte) bitmap_line::y1#0 )
(byte) bitmap_line::y0#13 ← phi( mode_stdbitmap::@8/(byte) bitmap_line::y0#0 )
@ -762,6 +786,8 @@ bitmap_line::@36: scope:[bitmap_line] from bitmap_line::@27
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@29 bitmap_line::@30 bitmap_line::@31 bitmap_line::@32 bitmap_line::@33 bitmap_line::@34 bitmap_line::@35 bitmap_line::@36
return
to:@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@11 bitmap_line::@25
(byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@25/(byte) bitmap_line_xdyi::x1#1 )
(byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@25/(byte) bitmap_line_xdyi::xd#1 )
@ -821,6 +847,8 @@ bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@5
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@15 bitmap_line::@21
(byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@21/(byte) bitmap_line_xdyd::x1#1 )
(byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@21/(byte) bitmap_line_xdyd::xd#1 )
@ -880,6 +908,8 @@ bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@5
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@27 bitmap_line::@5
(byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@5/(byte) bitmap_line_ydxi::y1#0 )
(byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@5/(byte) bitmap_line_ydxi::yd#0 )
@ -939,6 +969,8 @@ bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@5
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@17 bitmap_line::@8
(byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@8/(byte) bitmap_line_ydxd::y1#1 )
(byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@8/(byte) bitmap_line_ydxd::yd#1 )
@ -999,6 +1031,8 @@ bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@5
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
return
to:@return
(void()) main()
main: scope:[main] from @71
(byte) dtv_control#130 ← phi( @71/(byte) dtv_control#129 )
(byte*) print_char_cursor#54 ← phi( @71/(byte*) print_char_cursor#51 )
@ -1050,6 +1084,8 @@ main::@return: scope:[main] from main::@1
(byte*) print_screen#65 ← phi( @48/(byte*) print_screen#66 )
(byte[]) MENU_TEXT#0 ← (const string) $1
to:@58
(void()) menu()
menu: scope:[menu] from main::@2
(byte) dtv_control#254 ← phi( main::@2/(byte) dtv_control#98 )
(byte*) print_char_cursor#99 ← phi( main::@2/(byte*) print_char_cursor#35 )
@ -1598,6 +1634,8 @@ menu::@77: scope:[menu] from menu::@48
(byte*) print_screen#49 ← phi( @57/(byte*) print_screen#65 )
(byte) dtv_control#15 ← (number) 0
to:@71
(void()) mode_ctrl()
mode_ctrl: scope:[mode_ctrl] from mode_8bppchunkybmm::@11 mode_8bpppixelcell::@14 mode_ecmchar::@6 mode_hicolecmchar::@6 mode_hicolmcchar::@6 mode_hicolstdchar::@6 mode_mcchar::@6 mode_sixsfred2::@14 mode_sixsfred::@14 mode_stdbitmap::@9 mode_stdchar::@6 mode_twoplanebitmap::@18
(byte) dtv_control#144 ← phi( mode_8bppchunkybmm::@11/(byte) dtv_control#128 mode_8bpppixelcell::@14/(byte) dtv_control#127 mode_ecmchar::@6/(byte) dtv_control#118 mode_hicolecmchar::@6/(byte) dtv_control#122 mode_hicolmcchar::@6/(byte) dtv_control#123 mode_hicolstdchar::@6/(byte) dtv_control#121 mode_mcchar::@6/(byte) dtv_control#119 mode_sixsfred2::@14/(byte) dtv_control#126 mode_sixsfred::@14/(byte) dtv_control#125 mode_stdbitmap::@9/(byte) dtv_control#120 mode_stdchar::@6/(byte) dtv_control#117 mode_twoplanebitmap::@18/(byte) dtv_control#124 )
to:mode_ctrl::@1
@ -1794,6 +1832,8 @@ mode_ctrl::@30: scope:[mode_ctrl] from mode_ctrl::@19
*((byte*) DTV_CONTROL#0) ← (byte) mode_ctrl::ctrl#15
*((byte*) BORDERCOL#0) ← (byte) mode_ctrl::ctrl#15
to:mode_ctrl::@1
(void()) mode_stdchar()
mode_stdchar: scope:[mode_stdchar] from menu::@26
(byte*) mode_stdchar::SCREEN#0 ← ((byte*)) (number) $8000
(byte*) mode_stdchar::CHARSET#0 ← ((byte*)) (number) $9000
@ -1898,6 +1938,8 @@ mode_stdchar::@return: scope:[mode_stdchar] from mode_stdchar::@7
(byte) dtv_control#20 ← (byte) dtv_control#74
return
to:@return
(void()) mode_ecmchar()
mode_ecmchar: scope:[mode_ecmchar] from menu::@28
(byte*) mode_ecmchar::SCREEN#0 ← ((byte*)) (number) $8000
(byte*) mode_ecmchar::CHARSET#0 ← ((byte*)) (number) $9000
@ -2006,6 +2048,8 @@ mode_ecmchar::@return: scope:[mode_ecmchar] from mode_ecmchar::@7
(byte) dtv_control#23 ← (byte) dtv_control#76
return
to:@return
(void()) mode_mcchar()
mode_mcchar: scope:[mode_mcchar] from menu::@30
(byte*) mode_mcchar::SCREEN#0 ← ((byte*)) (number) $8000
(byte*) mode_mcchar::CHARSET#0 ← ((byte*)) (number) $9000
@ -2113,6 +2157,8 @@ mode_mcchar::@return: scope:[mode_mcchar] from mode_mcchar::@7
(byte) dtv_control#26 ← (byte) dtv_control#78
return
to:@return
(void()) mode_stdbitmap()
mode_stdbitmap: scope:[mode_stdbitmap] from menu::@32
(byte*) mode_stdbitmap::SCREEN#0 ← ((byte*)) (number) $4000
(byte*) mode_stdbitmap::BITMAP#0 ← ((byte*)) (number) $6000
@ -2242,6 +2288,8 @@ mode_stdbitmap::@return: scope:[mode_stdbitmap] from mode_stdbitmap::@16
(byte) dtv_control#29 ← (byte) dtv_control#80
return
to:@return
(void()) mode_hicolstdchar()
mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@34
(byte*) mode_hicolstdchar::SCREEN#0 ← ((byte*)) (number) $8000
(byte*) mode_hicolstdchar::CHARSET#0 ← ((byte*)) (number) $9000
@ -2345,6 +2393,8 @@ mode_hicolstdchar::@return: scope:[mode_hicolstdchar] from mode_hicolstdchar::@
(byte) dtv_control#32 ← (byte) dtv_control#82
return
to:@return
(void()) mode_hicolecmchar()
mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@36
(byte*) mode_hicolecmchar::SCREEN#0 ← ((byte*)) (number) $8000
(byte*) mode_hicolecmchar::CHARSET#0 ← ((byte*)) (number) $9000
@ -2452,6 +2502,8 @@ mode_hicolecmchar::@return: scope:[mode_hicolecmchar] from mode_hicolecmchar::@
(byte) dtv_control#35 ← (byte) dtv_control#84
return
to:@return
(void()) mode_hicolmcchar()
mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@38
(byte*) mode_hicolmcchar::SCREEN#0 ← ((byte*)) (number) $8000
(byte*) mode_hicolmcchar::CHARSET#0 ← ((byte*)) (number) $9000
@ -2558,6 +2610,8 @@ mode_hicolmcchar::@return: scope:[mode_hicolmcchar] from mode_hicolmcchar::@7
(byte) dtv_control#38 ← (byte) dtv_control#86
return
to:@return
(void()) mode_twoplanebitmap()
mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@42
(byte*) mode_twoplanebitmap::PLANEA#0 ← ((byte*)) (number) $4000
(byte*) mode_twoplanebitmap::PLANEB#0 ← ((byte*)) (number) $6000
@ -2737,6 +2791,8 @@ mode_twoplanebitmap::@return: scope:[mode_twoplanebitmap] from mode_twoplanebit
(byte) dtv_control#41 ← (byte) dtv_control#88
return
to:@return
(void()) mode_sixsfred()
mode_sixsfred: scope:[mode_sixsfred] from menu::@44
(byte*) mode_sixsfred::PLANEA#0 ← ((byte*)) (number) $4000
(byte*) mode_sixsfred::PLANEB#0 ← ((byte*)) (number) $6000
@ -2894,6 +2950,8 @@ mode_sixsfred::@return: scope:[mode_sixsfred] from mode_sixsfred::@15
(byte) dtv_control#44 ← (byte) dtv_control#90
return
to:@return
(void()) mode_sixsfred2()
mode_sixsfred2: scope:[mode_sixsfred2] from menu::@40
(byte*) mode_sixsfred2::PLANEA#0 ← ((byte*)) (number) $4000
(byte*) mode_sixsfred2::PLANEB#0 ← ((byte*)) (number) $6000
@ -3051,6 +3109,8 @@ mode_sixsfred2::@return: scope:[mode_sixsfred2] from mode_sixsfred2::@15
(byte) dtv_control#47 ← (byte) dtv_control#92
return
to:@return
(void()) mode_8bpppixelcell()
mode_8bpppixelcell: scope:[mode_8bpppixelcell] from menu::@46
(byte*) mode_8bpppixelcell::PLANEA#0 ← ((byte*)) (number) $3c00
(byte*) mode_8bpppixelcell::PLANEB#0 ← ((byte*)) (number) $4000
@ -3235,6 +3295,8 @@ mode_8bpppixelcell::@return: scope:[mode_8bpppixelcell] from mode_8bpppixelcell
(byte) dtv_control#50 ← (byte) dtv_control#94
return
to:@return
(void()) mode_8bppchunkybmm()
mode_8bppchunkybmm: scope:[mode_8bppchunkybmm] from menu::@48
(dword) mode_8bppchunkybmm::PLANEB#0 ← (number) $20000
(byte~) mode_8bppchunkybmm::$0 ← (byte) DTV_HIGHCOLOR#0 | (byte) DTV_LINEAR#0
@ -10954,6 +11016,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
asm { sei }
[5] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
@ -10964,6 +11028,8 @@ main::@1: scope:[main] from main main::@1
[8] phi()
[9] call menu
to:main::@1
(void()) menu()
menu: scope:[menu] from main::@1
[10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const dword) DTV_COLOR_BANK_DEFAULT#0/(word) $400
@ -11161,6 +11227,8 @@ menu::@3: scope:[menu] from menu::@2
[117] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0
[118] (byte*) menu::c#1 ← ++ (byte*) menu::c#2
to:menu::@2
(void()) mode_8bppchunkybmm()
mode_8bppchunkybmm: scope:[mode_8bppchunkybmm] from menu::@28
[119] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_COLORRAM_OFF#0
[120] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -11226,6 +11294,8 @@ mode_8bppchunkybmm::@10: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@8
mode_8bppchunkybmm::@return: scope:[mode_8bppchunkybmm] from mode_8bppchunkybmm::@10
[154] return
to:@return
(void()) mode_ctrl()
mode_ctrl: scope:[mode_ctrl] from mode_8bppchunkybmm::@10 mode_8bpppixelcell::@13 mode_ecmchar::@6 mode_hicolecmchar::@6 mode_hicolmcchar::@6 mode_hicolstdchar::@6 mode_mcchar::@6 mode_sixsfred2::@12 mode_sixsfred::@12 mode_stdbitmap::@9 mode_stdchar::@6 mode_twoplanebitmap::@15
[155] (byte) dtv_control#144 ← phi( mode_8bppchunkybmm::@10/(const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0|(const byte) DTV_COLORRAM_OFF#0 mode_8bpppixelcell::@13/(const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0 mode_ecmchar::@6/(byte) 0 mode_hicolecmchar::@6/(const byte) DTV_HIGHCOLOR#0 mode_hicolmcchar::@6/(const byte) DTV_HIGHCOLOR#0 mode_hicolstdchar::@6/(const byte) DTV_HIGHCOLOR#0 mode_mcchar::@6/(byte) 0 mode_sixsfred2::@12/(const byte) DTV_LINEAR#0 mode_sixsfred::@12/(const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 mode_stdbitmap::@9/(byte) 0 mode_stdchar::@6/(byte) 0 mode_twoplanebitmap::@15/(const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0 )
to:mode_ctrl::@1
@ -11340,6 +11410,8 @@ mode_ctrl::@18: scope:[mode_ctrl] from mode_ctrl::@11
[209] *((const byte*) DTV_CONTROL#0) ← (byte) mode_ctrl::ctrl#14
[210] *((const byte*) BORDERCOL#0) ← (byte) mode_ctrl::ctrl#14
to:mode_ctrl::@1
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@10 menu::@11 menu::@12 menu::@13 menu::@14 menu::@15 menu::@16 menu::@5 menu::@6 menu::@7 menu::@8 menu::@9 mode_ctrl::@10 mode_ctrl::@3 mode_ctrl::@4 mode_ctrl::@5 mode_ctrl::@6 mode_ctrl::@7 mode_ctrl::@8 mode_ctrl::@9
[211] (byte) keyboard_key_pressed::key#20 ← phi( menu::@5/(const byte) KEY_1#0 menu::@6/(const byte) KEY_2#0 menu::@7/(const byte) KEY_3#0 menu::@8/(const byte) KEY_4#0 menu::@9/(const byte) KEY_6#0 menu::@10/(const byte) KEY_7#0 menu::@11/(const byte) KEY_8#0 menu::@12/(const byte) KEY_A#0 menu::@13/(const byte) KEY_B#0 menu::@14/(const byte) KEY_C#0 menu::@15/(const byte) KEY_D#0 menu::@16/(const byte) KEY_E#0 mode_ctrl::@4/(const byte) KEY_L#0 mode_ctrl::@5/(const byte) KEY_H#0 mode_ctrl::@6/(const byte) KEY_O#0 mode_ctrl::@7/(const byte) KEY_B#0 mode_ctrl::@8/(const byte) KEY_U#0 mode_ctrl::@9/(const byte) KEY_C#0 mode_ctrl::@10/(const byte) KEY_0#0 mode_ctrl::@3/(const byte) KEY_SPACE#0 )
[212] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#20 & (byte) 7
@ -11355,6 +11427,8 @@ keyboard_key_pressed::@1: scope:[keyboard_key_pressed] from keyboard_key_presse
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@1
[219] return
to:@return
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
[220] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
[221] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
@ -11362,6 +11436,8 @@ keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
[222] return
to:@return
(void()) dtvSetCpuBankSegment1((byte) dtvSetCpuBankSegment1::cpuBankIdx)
dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@2 mode_8bppchunkybmm::@6 mode_8bppchunkybmm::@8
[223] (byte) dtvSetCpuBankSegment1::cpuBankIdx#3 ← phi( mode_8bppchunkybmm::@2/(byte)(const dword) mode_8bppchunkybmm::PLANEB#0/(word) $4000 mode_8bppchunkybmm::@6/(byte) dtvSetCpuBankSegment1::cpuBankIdx#1 mode_8bppchunkybmm::@8/(byte)(number) $4000/(number) $4000 )
[224] *((const byte*) dtvSetCpuBankSegment1::cpuBank#0) ← (byte) dtvSetCpuBankSegment1::cpuBankIdx#3
@ -11370,6 +11446,8 @@ dtvSetCpuBankSegment1: scope:[dtvSetCpuBankSegment1] from mode_8bppchunkybmm::@
dtvSetCpuBankSegment1::@return: scope:[dtvSetCpuBankSegment1] from dtvSetCpuBankSegment1
[226] return
to:@return
(void()) mode_8bpppixelcell()
mode_8bpppixelcell: scope:[mode_8bpppixelcell] from menu::@27
[227] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0|(const byte) DTV_CHUNKY#0
[228] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -11466,6 +11544,8 @@ mode_8bpppixelcell::@13: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@1
mode_8bpppixelcell::@return: scope:[mode_8bpppixelcell] from mode_8bpppixelcell::@13
[281] return
to:@return
(void()) mode_sixsfred()
mode_sixsfred: scope:[mode_sixsfred] from menu::@26
[282] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0
[283] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -11553,6 +11633,8 @@ mode_sixsfred::@12: scope:[mode_sixsfred] from mode_sixsfred::@11
mode_sixsfred::@return: scope:[mode_sixsfred] from mode_sixsfred::@12
[334] return
to:@return
(void()) mode_twoplanebitmap()
mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@25
[335] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_HIGHCOLOR#0|(const byte) DTV_LINEAR#0
[336] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -11653,6 +11735,8 @@ mode_twoplanebitmap::@8: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::
[393] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte) 0
[394] (byte*) mode_twoplanebitmap::gfxa#1 ← ++ (byte*) mode_twoplanebitmap::gfxa#3
to:mode_twoplanebitmap::@9
(void()) mode_sixsfred2()
mode_sixsfred2: scope:[mode_sixsfred2] from menu::@24
[395] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_LINEAR#0
[396] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte) 3
@ -11742,6 +11826,8 @@ mode_sixsfred2::@12: scope:[mode_sixsfred2] from mode_sixsfred2::@11
mode_sixsfred2::@return: scope:[mode_sixsfred2] from mode_sixsfred2::@12
[449] return
to:@return
(void()) mode_hicolmcchar()
mode_hicolmcchar: scope:[mode_hicolmcchar] from menu::@23
[450] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[451] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const byte*) mode_hicolmcchar::COLORS#0/(word) $400
@ -11796,6 +11882,8 @@ mode_hicolmcchar::@6: scope:[mode_hicolmcchar] from mode_hicolmcchar::@5
mode_hicolmcchar::@return: scope:[mode_hicolmcchar] from mode_hicolmcchar::@6
[483] return
to:@return
(void()) mode_hicolecmchar()
mode_hicolecmchar: scope:[mode_hicolecmchar] from menu::@22
[484] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[485] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const byte*) mode_hicolecmchar::COLORS#0/(word) $400
@ -11851,6 +11939,8 @@ mode_hicolecmchar::@6: scope:[mode_hicolecmchar] from mode_hicolecmchar::@5
mode_hicolecmchar::@return: scope:[mode_hicolecmchar] from mode_hicolecmchar::@6
[518] return
to:@return
(void()) mode_hicolstdchar()
mode_hicolstdchar: scope:[mode_hicolstdchar] from menu::@21
[519] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[520] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const byte*) mode_hicolstdchar::COLORS#0/(word) $400
@ -11903,6 +11993,8 @@ mode_hicolstdchar::@6: scope:[mode_hicolstdchar] from mode_hicolstdchar::@5
mode_hicolstdchar::@return: scope:[mode_hicolstdchar] from mode_hicolstdchar::@6
[550] return
to:@return
(void()) mode_stdbitmap()
mode_stdbitmap: scope:[mode_stdbitmap] from menu::@20
[551] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[552] *((const byte*) DTV_CONTROL#0) ← (byte) 0
@ -11972,6 +12064,8 @@ mode_stdbitmap::@8: scope:[mode_stdbitmap] from mode_stdbitmap::@7
mode_stdbitmap::@11: scope:[mode_stdbitmap] from mode_stdbitmap::@8
[591] (byte) mode_stdbitmap::l#1 ← ++ (byte) mode_stdbitmap::l#2
to:mode_stdbitmap::@7
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
bitmap_line: scope:[bitmap_line] from mode_stdbitmap::@8
[592] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
to:bitmap_line::@2
@ -12066,6 +12160,8 @@ bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@11
[652] (byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#11
[653] call bitmap_line_xdyi
to:bitmap_line::@return
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8
[654] (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@8/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@13/(byte) bitmap_line_xdyi::x1#1 )
[654] (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@8/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@13/(byte) bitmap_line_xdyi::xd#1 )
@ -12100,6 +12196,8 @@ bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
[668] return
to:@return
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[669] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
[669] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
@ -12112,6 +12210,8 @@ bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[675] return
to:@return
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@14 bitmap_line::@4
[676] (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@4/(byte) bitmap_line_ydxi::y1#0 )
[676] (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@4/(byte) bitmap_line_ydxi::yd#0 )
@ -12146,6 +12246,8 @@ bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[690] return
to:@return
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9
[691] (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@9/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@12/(byte) bitmap_line_xdyd::x1#1 )
[691] (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@9/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@12/(byte) bitmap_line_xdyd::xd#1 )
@ -12180,6 +12282,8 @@ bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
[705] return
to:@return
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6
[706] (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@6/(byte) bitmap_line_ydxd::y1#1 )
[706] (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@6/(byte) bitmap_line_ydxd::yd#1 )
@ -12214,6 +12318,8 @@ bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[720] return
to:@return
(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear] from mode_stdbitmap::@10
[721] (word) bitmap_clear::bitmap#0 ← *((const byte[$100]) bitmap_plot_xhi#0) w= *((const byte[$100]) bitmap_plot_xlo#0)
[722] (byte*~) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
@ -12237,6 +12343,8 @@ bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
[731] return
to:@return
(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init] from mode_stdbitmap::@6
[732] phi()
to:bitmap_init::@1
@ -12280,6 +12388,8 @@ bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[756] return
to:@return
(void()) mode_mcchar()
mode_mcchar: scope:[mode_mcchar] from menu::@19
[757] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[758] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const dword) DTV_COLOR_BANK_DEFAULT#0/(word) $400
@ -12336,6 +12446,8 @@ mode_mcchar::@6: scope:[mode_mcchar] from mode_mcchar::@5
mode_mcchar::@return: scope:[mode_mcchar] from mode_mcchar::@6
[792] return
to:@return
(void()) mode_ecmchar()
mode_ecmchar: scope:[mode_ecmchar] from menu::@18
[793] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[794] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const dword) DTV_COLOR_BANK_DEFAULT#0/(word) $400
@ -12393,6 +12505,8 @@ mode_ecmchar::@6: scope:[mode_ecmchar] from mode_ecmchar::@5
mode_ecmchar::@return: scope:[mode_ecmchar] from mode_ecmchar::@6
[829] return
to:@return
(void()) mode_stdchar()
mode_stdchar: scope:[mode_stdchar] from menu::@17
[830] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← (byte) 0
[831] *((const byte*) DTV_COLOR_BANK_LO#0) ← <(word)(const dword) DTV_COLOR_BANK_DEFAULT#0/(word) $400
@ -12447,6 +12561,8 @@ mode_stdchar::@6: scope:[mode_stdchar] from mode_stdchar::@5
mode_stdchar::@return: scope:[mode_stdchar] from mode_stdchar::@6
[863] return
to:@return
(void()) print_str_lines((byte*) print_str_lines::str)
print_str_lines: scope:[print_str_lines] from menu::@30
[864] phi()
to:print_str_lines::@1
@ -12481,6 +12597,8 @@ print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@3
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@5
[878] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#19
to:print_str_lines::@1
(void()) print_ln()
print_ln: scope:[print_ln] from print_str_lines::@5
[879] phi()
to:print_ln::@1
@ -12492,6 +12610,8 @@ print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
print_ln::@return: scope:[print_ln] from print_ln::@1
[883] return
to:@return
(void()) print_cls()
print_cls: scope:[print_cls] from menu::@29
[884] phi()
[885] call memset
@ -12499,6 +12619,8 @@ print_cls: scope:[print_cls] from menu::@29
print_cls::@return: scope:[print_cls] from print_cls
[886] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[887] phi()
to:memset::@1
@ -12513,6 +12635,8 @@ memset::@2: scope:[memset] from memset::@1
[891] *((byte*) memset::dst#2) ← (const byte) memset::c#0
[892] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@1
(void()) print_set_screen((byte*) print_set_screen::screen)
print_set_screen: scope:[print_set_screen] from menu::@4
[893] phi()
to:print_set_screen::@return

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call print
@ -22,6 +24,8 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[10] return
to:@return
(void()) print((word) print::w)
print: scope:[print] from main main::@1 main::@2
[11] (word) print::w#3 ← phi( main/(word) $1234 main::@1/(const word) main::w#0 main::@2/(byte) $12*(word) $100+(byte) $34 )
[11] (byte) idx#12 ← phi( main/(byte) 0 main::@1/(byte) idx#13 main::@2/(byte) idx#13 )

View File

@ -4,6 +4,8 @@ Identified constant variable (word) main::w
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @2
(byte) idx#15 ← phi( @2/(byte) idx#16 )
(word) main::w#0 ← (number) $1234
@ -35,6 +37,8 @@ main::@return: scope:[main] from main::@3
(word*) SCREEN#0 ← ((word*)) (number) $400
(byte) idx#4 ← (number) 0
to:@2
(void()) print((word) print::w)
print: scope:[print] from main main::@1 main::@2
(word) print::w#3 ← phi( main/(word) print::w#0 main::@1/(word) print::w#1 main::@2/(word) print::w#2 )
(byte) idx#12 ← phi( main/(byte) idx#15 main::@1/(byte) idx#0 main::@2/(byte) idx#1 )
@ -208,6 +212,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call print
@ -223,6 +229,8 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[10] return
to:@return
(void()) print((word) print::w)
print: scope:[print] from main main::@1 main::@2
[11] (word) print::w#3 ← phi( main/(word) $1234 main::@1/(const word) main::w#0 main::@2/(byte) $12*(word) $100+(byte) $34 )
[11] (byte) idx#12 ← phi( main/(byte) 0 main::@1/(byte) idx#13 main::@2/(byte) idx#13 )

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call line
@ -18,6 +20,8 @@ main::@1: scope:[main] from main
main::@return: scope:[main] from main::@1
[8] return
to:@return
(void()) line((byte) line::x0 , (byte) line::x1)
line: scope:[line] from main main::@1
[9] (byte*) screen#16 ← phi( main/(byte*) 1024 main::@1/(byte*) screen#10 )
[9] (byte) line::x1#3 ← phi( main/(byte) 2 main::@1/(byte) 5 )

View File

@ -8,6 +8,8 @@ CONTROL FLOW GRAPH SSA
@begin: scope:[] from
(byte*) screen#0 ← ((byte*)) (number) $400
to:@2
(void()) main()
main: scope:[main] from @2
(byte*) screen#13 ← phi( @2/(byte*) screen#15 )
(byte) line::x0#0 ← (number) 1
@ -30,6 +32,8 @@ main::@return: scope:[main] from main::@2
(byte*) screen#3 ← (byte*) screen#9
return
to:@return
(void()) line((byte) line::x0 , (byte) line::x1)
line: scope:[line] from main main::@1
(byte*) screen#16 ← phi( main/(byte*) screen#13 main::@1/(byte*) screen#1 )
(byte) line::x1#3 ← phi( main/(byte) line::x1#0 main::@1/(byte) line::x1#1 )
@ -206,6 +210,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call line
@ -217,6 +223,8 @@ main::@1: scope:[main] from main
main::@return: scope:[main] from main::@1
[8] return
to:@return
(void()) line((byte) line::x0 , (byte) line::x1)
line: scope:[line] from main main::@1
[9] (byte*) screen#16 ← phi( main/(byte*) 1024 main::@1/(byte*) screen#10 )
[9] (byte) line::x1#3 ← phi( main/(byte) 2 main::@1/(byte) 5 )

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -4,6 +4,8 @@ Culled Empty Block (label) main::@2
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
(signed byte[]) main::sbs#0 ← { (number) -1, (number) -2, (number) -3, (number) -4 }
(byte*) main::SCREEN#0 ← ((byte*)) (number) $400
@ -107,6 +109,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::getScreen1

View File

@ -12,6 +12,8 @@ CONTROL FLOW GRAPH SSA
(byte*~) $1 ← ((byte*)) (number) $1400
(byte*[]) screens#0 ← { (byte*~) $0, (byte*~) $1 }
to:@3
(void()) main()
main: scope:[main] from @3
(byte*) main::screen#0 ← (byte*) 0
(byte) main::getScreen1_id#0 ← (number) 0
@ -186,6 +188,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::getScreen1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::getScreen1

View File

@ -13,6 +13,8 @@ CONTROL FLOW GRAPH SSA
(byte*~) $1 ← ((byte*)) (number) $1400
(byte*[]) screens#0 ← { (byte*~) $0, (byte*~) $1 }
to:@3
(void()) main()
main: scope:[main] from @3
(byte*) main::DSP#0 ← ((byte*)) (number) $400
(byte) main::getScreen1_id#0 ← (number) 0
@ -186,6 +188,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::getScreen1

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::sprite_ptr#0) ← (byte)(const byte*) sprite#0/(byte) $40
to:main::@return

View File

@ -6,6 +6,8 @@ CONTROL FLOW GRAPH SSA
(byte*) sprite#0 ← ((byte*)) (number) $5000
(byte*) SCREEN#0 ← ((byte*)) (number) $4400
to:@1
(void()) main()
main: scope:[main] from @1
(byte*~) main::$0 ← (byte*) SCREEN#0 + (number) $378
(byte*) main::sprite_ptr#0 ← (byte*~) main::$0
@ -102,6 +104,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::sprite_ptr#0) ← (byte)(const byte*) sprite#0/(byte) $40
to:main::@return

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::SCREEN#0) ← (const byte) main::midw#0
[5] *((const byte*) main::SCREEN#0+(byte) 1) ← (const byte) main::midb#0

View File

@ -8,6 +8,8 @@ Culled Empty Block (label) main::@4
CONTROL FLOW GRAPH SSA
@begin: scope:[] from
to:@1
(void()) main()
main: scope:[main] from @1
(byte*) main::SCREEN#0 ← ((byte*)) (number) $400
(byte) main::min#0 ← (number) $a
@ -202,6 +204,8 @@ FINAL CONTROL FLOW GRAPH
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] *((const byte*) main::SCREEN#0) ← (const byte) main::midw#0
[5] *((const byte*) main::SCREEN#0+(byte) 1) ← (const byte) main::midb#0

View File

@ -7,6 +7,8 @@
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
to:main::@1
@ -26,6 +28,8 @@ main::@2: scope:[main] from main::@1
main::@return: scope:[main] from main::@2
[14] return
to:@return
(void()) w()
w: scope:[w] from main::@2
[15] phi()
to:w::@1

Some files were not shown because too many files have changed in this diff Show More