2019-03-21 21:24:39 +00:00
|
|
|
@begin: scope:[] from
|
|
|
|
[0] phi()
|
2019-03-31 15:10:41 +00:00
|
|
|
to:@1
|
|
|
|
@1: scope:[] from @begin
|
2019-03-21 21:24:39 +00:00
|
|
|
[1] phi()
|
|
|
|
[2] call main
|
|
|
|
to:@end
|
2019-03-31 15:10:41 +00:00
|
|
|
@end: scope:[] from @1
|
2019-03-21 21:24:39 +00:00
|
|
|
[3] phi()
|
2019-09-18 21:00:30 +00:00
|
|
|
|
|
|
|
(void()) main()
|
2019-03-31 15:10:41 +00:00
|
|
|
main: scope:[main] from @1
|
2019-03-21 21:24:39 +00:00
|
|
|
[4] phi()
|
|
|
|
[5] call print_cls
|
|
|
|
to:main::@1
|
2019-03-31 15:10:41 +00:00
|
|
|
main::@1: scope:[main] from main main::@6
|
2019-05-30 20:29:04 +00:00
|
|
|
[6] (byte) main::i#2 ← phi( main/(byte) 0 main::@6/(byte) main::i#1 )
|
|
|
|
[6] (byte*) print_line_cursor#19 ← phi( main/(byte*) 1024 main::@6/(byte*) print_line_cursor#1 )
|
2019-06-30 13:30:08 +00:00
|
|
|
[6] (byte*) print_char_cursor#53 ← phi( main/(byte*) 1024 main::@6/(byte*~) print_char_cursor#64 )
|
2019-05-30 20:29:04 +00:00
|
|
|
[6] (signed word) main::w1#2 ← phi( main/(signed word) $4d2 main::@6/(signed word) main::w1#1 )
|
|
|
|
[7] (signed word) main::w2#0 ← (signed word) main::w1#2 - (signed byte) $5b
|
|
|
|
[8] (signed word) main::w1#1 ← (signed word) main::w2#0 - (signed byte) $29
|
2019-03-21 21:24:39 +00:00
|
|
|
[9] (signed word) print_sword::w#1 ← (signed word) main::w1#1
|
|
|
|
[10] call print_sword
|
2019-03-31 15:10:41 +00:00
|
|
|
to:main::@2
|
|
|
|
main::@2: scope:[main] from main::@1
|
2019-03-21 21:24:39 +00:00
|
|
|
[11] phi()
|
|
|
|
[12] call print_char
|
2019-03-31 15:10:41 +00:00
|
|
|
to:main::@3
|
|
|
|
main::@3: scope:[main] from main::@2
|
2019-03-21 21:24:39 +00:00
|
|
|
[13] (signed word) print_sword::w#2 ← (signed word) main::w2#0
|
|
|
|
[14] call print_sword
|
2019-03-31 15:10:41 +00:00
|
|
|
to:main::@4
|
|
|
|
main::@4: scope:[main] from main::@3
|
2019-03-21 21:24:39 +00:00
|
|
|
[15] phi()
|
|
|
|
[16] call print_ln
|
2019-03-31 15:10:41 +00:00
|
|
|
to:main::@5
|
|
|
|
main::@5: scope:[main] from main::@4
|
2019-03-21 21:24:39 +00:00
|
|
|
[17] (byte) main::i#1 ← ++ (byte) main::i#2
|
2019-05-30 20:29:04 +00:00
|
|
|
[18] if((byte) main::i#1!=(byte) $b) goto main::@6
|
2019-03-21 21:24:39 +00:00
|
|
|
to:main::@return
|
2019-03-31 15:10:41 +00:00
|
|
|
main::@return: scope:[main] from main::@5
|
2019-03-21 21:24:39 +00:00
|
|
|
[19] return
|
|
|
|
to:@return
|
2019-03-31 15:10:41 +00:00
|
|
|
main::@6: scope:[main] from main::@5
|
2019-05-30 20:29:04 +00:00
|
|
|
[20] (byte*~) print_char_cursor#64 ← (byte*) print_line_cursor#1
|
2019-03-21 21:24:39 +00:00
|
|
|
to:main::@1
|
2019-09-18 21:00:30 +00:00
|
|
|
|
|
|
|
(void()) print_ln()
|
2019-03-31 15:10:41 +00:00
|
|
|
print_ln: scope:[print_ln] from main::@4
|
2019-03-21 21:24:39 +00:00
|
|
|
[21] phi()
|
|
|
|
to:print_ln::@1
|
|
|
|
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
|
|
|
[22] (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#19 print_ln::@1/(byte*) print_line_cursor#1 )
|
2019-05-30 20:29:04 +00:00
|
|
|
[23] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte) $28
|
2019-06-30 13:30:08 +00:00
|
|
|
[24] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#13) goto print_ln::@1
|
2019-03-21 21:24:39 +00:00
|
|
|
to:print_ln::@return
|
|
|
|
print_ln::@return: scope:[print_ln] from print_ln::@1
|
|
|
|
[25] return
|
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
|
|
|
(void()) print_sword((signed word) print_sword::w)
|
2019-03-31 15:10:41 +00:00
|
|
|
print_sword: scope:[print_sword] from main::@1 main::@3
|
2019-06-30 13:30:08 +00:00
|
|
|
[26] (byte*) print_char_cursor#47 ← phi( main::@1/(byte*) print_char_cursor#53 main::@3/(byte*) print_char_cursor#13 )
|
2019-03-31 15:10:41 +00:00
|
|
|
[26] (signed word) print_sword::w#3 ← phi( main::@1/(signed word) print_sword::w#1 main::@3/(signed word) print_sword::w#2 )
|
2019-06-30 13:30:08 +00:00
|
|
|
[27] if((signed word) print_sword::w#3<(signed byte) 0) goto print_sword::@1
|
|
|
|
to:print_sword::@3
|
|
|
|
print_sword::@3: scope:[print_sword] from print_sword
|
2019-03-21 21:24:39 +00:00
|
|
|
[28] phi()
|
|
|
|
[29] call print_char
|
2019-06-30 13:30:08 +00:00
|
|
|
to:print_sword::@2
|
|
|
|
print_sword::@2: scope:[print_sword] from print_sword::@3 print_sword::@4
|
|
|
|
[30] (signed word) print_sword::w#5 ← phi( print_sword::@4/(signed word) print_sword::w#0 print_sword::@3/(signed word) print_sword::w#3 )
|
|
|
|
[31] (word) print_word::w#0 ← (word)(signed word) print_sword::w#5
|
|
|
|
[32] call print_word
|
2019-03-21 21:24:39 +00:00
|
|
|
to:print_sword::@return
|
2019-06-30 13:30:08 +00:00
|
|
|
print_sword::@return: scope:[print_sword] from print_sword::@2
|
|
|
|
[33] return
|
2019-03-21 21:24:39 +00:00
|
|
|
to:@return
|
2019-06-30 13:30:08 +00:00
|
|
|
print_sword::@1: scope:[print_sword] from print_sword
|
|
|
|
[34] phi()
|
|
|
|
[35] call print_char
|
|
|
|
to:print_sword::@4
|
|
|
|
print_sword::@4: scope:[print_sword] from print_sword::@1
|
|
|
|
[36] (signed word) print_sword::w#0 ← - (signed word) print_sword::w#3
|
|
|
|
to:print_sword::@2
|
2019-09-18 21:00:30 +00:00
|
|
|
|
|
|
|
(void()) print_char((byte) print_char::ch)
|
2019-06-30 13:30:08 +00:00
|
|
|
print_char: scope:[print_char] from main::@2 print_byte print_byte::@1 print_sword::@1 print_sword::@3
|
|
|
|
[37] (byte*) print_char_cursor#36 ← phi( main::@2/(byte*) print_char_cursor#13 print_byte/(byte*) print_char_cursor#13 print_byte::@1/(byte*) print_char_cursor#13 print_sword::@1/(byte*) print_char_cursor#47 print_sword::@3/(byte*) print_char_cursor#47 )
|
|
|
|
[37] (byte) print_char::ch#5 ← phi( main::@2/(byte) ' ' print_byte/(byte) print_char::ch#2 print_byte::@1/(byte) print_char::ch#3 print_sword::@1/(byte) '-' print_sword::@3/(byte) ' ' )
|
|
|
|
[38] *((byte*) print_char_cursor#36) ← (byte) print_char::ch#5
|
|
|
|
[39] (byte*) print_char_cursor#13 ← ++ (byte*) print_char_cursor#36
|
|
|
|
to:print_char::@return
|
|
|
|
print_char::@return: scope:[print_char] from print_char
|
|
|
|
[40] return
|
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
|
|
|
(void()) print_word((word) print_word::w)
|
2019-06-30 13:30:08 +00:00
|
|
|
print_word: scope:[print_word] from print_sword::@2
|
|
|
|
[41] (byte) print_byte::b#0 ← > (word) print_word::w#0
|
|
|
|
[42] call print_byte
|
2019-03-21 21:24:39 +00:00
|
|
|
to:print_word::@1
|
|
|
|
print_word::@1: scope:[print_word] from print_word
|
2019-06-30 13:30:08 +00:00
|
|
|
[43] (byte) print_byte::b#1 ← < (word) print_word::w#0
|
|
|
|
[44] call print_byte
|
2019-03-21 21:24:39 +00:00
|
|
|
to:print_word::@return
|
|
|
|
print_word::@return: scope:[print_word] from print_word::@1
|
2019-06-30 13:30:08 +00:00
|
|
|
[45] return
|
2019-03-21 21:24:39 +00:00
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
|
|
|
(void()) print_byte((byte) print_byte::b)
|
2019-03-21 21:24:39 +00:00
|
|
|
print_byte: scope:[print_byte] from print_word print_word::@1
|
2019-06-30 13:30:08 +00:00
|
|
|
[46] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 )
|
|
|
|
[47] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte) 4
|
2019-09-29 18:57:23 +00:00
|
|
|
[48] (byte) print_char::ch#2 ← *((const byte[]) print_hextab + (byte~) print_byte::$0)
|
2019-06-30 13:30:08 +00:00
|
|
|
[49] call print_char
|
2019-03-21 21:24:39 +00:00
|
|
|
to:print_byte::@1
|
|
|
|
print_byte::@1: scope:[print_byte] from print_byte
|
2019-06-30 13:30:08 +00:00
|
|
|
[50] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte) $f
|
2019-09-29 18:57:23 +00:00
|
|
|
[51] (byte) print_char::ch#3 ← *((const byte[]) print_hextab + (byte~) print_byte::$2)
|
2019-06-30 13:30:08 +00:00
|
|
|
[52] call print_char
|
2019-03-21 21:24:39 +00:00
|
|
|
to:print_byte::@return
|
|
|
|
print_byte::@return: scope:[print_byte] from print_byte::@1
|
2019-06-30 13:30:08 +00:00
|
|
|
[53] return
|
2019-03-21 21:24:39 +00:00
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
|
|
|
(void()) print_cls()
|
2019-03-21 21:24:39 +00:00
|
|
|
print_cls: scope:[print_cls] from main
|
2019-06-30 13:30:08 +00:00
|
|
|
[54] phi()
|
2019-07-17 23:54:16 +00:00
|
|
|
[55] call memset
|
2019-03-21 21:24:39 +00:00
|
|
|
to:print_cls::@return
|
2019-07-17 23:54:16 +00:00
|
|
|
print_cls::@return: scope:[print_cls] from print_cls
|
|
|
|
[56] return
|
|
|
|
to:@return
|
2019-09-18 21:00:30 +00:00
|
|
|
|
|
|
|
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
|
2019-07-17 23:54:16 +00:00
|
|
|
memset: scope:[memset] from print_cls
|
|
|
|
[57] phi()
|
|
|
|
to:memset::@1
|
2019-08-25 20:21:56 +00:00
|
|
|
memset::@1: scope:[memset] from memset memset::@2
|
|
|
|
[58] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
|
|
|
|
[59] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
|
2019-07-17 23:54:16 +00:00
|
|
|
to:memset::@return
|
|
|
|
memset::@return: scope:[memset] from memset::@1
|
2019-08-25 20:21:56 +00:00
|
|
|
[60] return
|
2019-03-21 21:24:39 +00:00
|
|
|
to:@return
|
2019-08-25 20:21:56 +00:00
|
|
|
memset::@2: scope:[memset] from memset::@1
|
|
|
|
[61] *((byte*) memset::dst#2) ← (const byte) memset::c#0
|
|
|
|
[62] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
|
|
|
|
to:memset::@1
|