From 17ffe83bd2f4c39901adc3e7f2581b299b10299a Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Tue, 3 Apr 2018 00:02:25 +0200 Subject: [PATCH] Implemented v0.1 of a screen form library --- .../fragment/asm/vbsaa_ge_vbuc1_then_la1.asm | 6 + .../vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy.asm | 1 + .../vbuaa=vbuaa_bor_pbuz1_derefidx_vbuyy.asm | 1 + .../dk/camelot64/kickc/test/TestPrograms.java | 1 - .../kickc/test/kc/c64dtv-gfxexplorer.kc | 118 +- .../java/dk/camelot64/kickc/test/kc/print.kc | 7 +- .../kickc/test/ref/c64dtv-gfxexplorer.asm | 221 +- .../kickc/test/ref/c64dtv-gfxexplorer.cfg | 361 +- .../kickc/test/ref/c64dtv-gfxexplorer.log | 6869 ++++++++++++++--- .../kickc/test/ref/c64dtv-gfxexplorer.sym | 222 +- .../kickc/test/ref/c64dtv-gfxmodes.log | 52 +- .../dk/camelot64/kickc/test/ref/constants.log | 22 +- .../kickc/test/ref/incrementinarray.log | 22 +- .../dk/camelot64/kickc/test/ref/linegen.asm | 6 +- .../dk/camelot64/kickc/test/ref/linegen.cfg | 12 +- .../dk/camelot64/kickc/test/ref/linegen.log | 328 +- .../dk/camelot64/kickc/test/ref/linegen.sym | 10 +- .../dk/camelot64/kickc/test/ref/printmsg.log | 22 +- .../camelot64/kickc/test/ref/sinus-basic.asm | 6 +- .../camelot64/kickc/test/ref/sinus-basic.cfg | 8 +- .../camelot64/kickc/test/ref/sinus-basic.log | 228 +- .../camelot64/kickc/test/ref/sinus-basic.sym | 8 +- .../kickc/test/ref/sinus-sprites.log | 22 +- .../camelot64/kickc/test/ref/sinusgen16.asm | 6 +- .../camelot64/kickc/test/ref/sinusgen16.cfg | 4 +- .../camelot64/kickc/test/ref/sinusgen16.log | 172 +- .../camelot64/kickc/test/ref/sinusgen16.sym | 4 +- .../camelot64/kickc/test/ref/sinusgen16b.asm | 6 +- .../camelot64/kickc/test/ref/sinusgen16b.cfg | 4 +- .../camelot64/kickc/test/ref/sinusgen16b.log | 188 +- .../camelot64/kickc/test/ref/sinusgen16b.sym | 4 +- .../dk/camelot64/kickc/test/ref/sinusgen8.asm | 6 +- .../dk/camelot64/kickc/test/ref/sinusgen8.cfg | 4 +- .../dk/camelot64/kickc/test/ref/sinusgen8.log | 168 +- .../dk/camelot64/kickc/test/ref/sinusgen8.sym | 4 +- .../camelot64/kickc/test/ref/sinusgen8b.asm | 6 +- .../camelot64/kickc/test/ref/sinusgen8b.cfg | 4 +- .../camelot64/kickc/test/ref/sinusgen8b.log | 184 +- .../camelot64/kickc/test/ref/sinusgen8b.sym | 4 +- .../kickc/test/ref/sinusgenscale8.asm | 6 +- .../kickc/test/ref/sinusgenscale8.cfg | 8 +- .../kickc/test/ref/sinusgenscale8.log | 316 +- .../kickc/test/ref/sinusgenscale8.sym | 8 +- .../kickc/test/ref/test-comparisons.asm | 6 +- .../kickc/test/ref/test-comparisons.cfg | 18 +- .../kickc/test/ref/test-comparisons.log | 476 +- .../kickc/test/ref/test-comparisons.sym | 14 +- .../kickc/test/ref/test-division.asm | 6 +- .../kickc/test/ref/test-division.cfg | 20 +- .../kickc/test/ref/test-division.log | 380 +- .../kickc/test/ref/test-division.sym | 14 +- .../camelot64/kickc/test/ref/test-lowhigh.asm | 6 +- .../camelot64/kickc/test/ref/test-lowhigh.cfg | 8 +- .../camelot64/kickc/test/ref/test-lowhigh.log | 214 +- .../camelot64/kickc/test/ref/test-lowhigh.sym | 8 +- .../kickc/test/ref/test-multiply-16bit.asm | 6 +- .../kickc/test/ref/test-multiply-16bit.cfg | 10 +- .../kickc/test/ref/test-multiply-16bit.log | 392 +- .../kickc/test/ref/test-multiply-16bit.sym | 8 +- .../kickc/test/ref/test-multiply-8bit.asm | 6 +- .../kickc/test/ref/test-multiply-8bit.cfg | 14 +- .../kickc/test/ref/test-multiply-8bit.log | 498 +- .../kickc/test/ref/test-multiply-8bit.sym | 10 +- 63 files changed, 8504 insertions(+), 3269 deletions(-) create mode 100644 src/main/java/dk/camelot64/kickc/fragment/asm/vbsaa_ge_vbuc1_then_la1.asm create mode 100644 src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy.asm create mode 100644 src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bor_pbuz1_derefidx_vbuyy.asm diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vbsaa_ge_vbuc1_then_la1.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vbsaa_ge_vbuc1_then_la1.asm new file mode 100644 index 000000000..97faa87f8 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vbsaa_ge_vbuc1_then_la1.asm @@ -0,0 +1,6 @@ +sec +sbc #{c1} +bvc !+ +eor #$80 +!: +bpl {la1} diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy.asm new file mode 100644 index 000000000..21917ac1e --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy.asm @@ -0,0 +1 @@ +and ({z1}),y \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bor_pbuz1_derefidx_vbuyy.asm b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bor_pbuz1_derefidx_vbuyy.asm new file mode 100644 index 000000000..effab3eac --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/fragment/asm/vbuaa=vbuaa_bor_pbuz1_derefidx_vbuyy.asm @@ -0,0 +1 @@ +ora ({z1}),y \ No newline at end of file diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java index 5881973b3..e2af7f14b 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java @@ -1,4 +1,3 @@ - package dk.camelot64.kickc.test; import dk.camelot64.kickc.CompileLog; diff --git a/src/test/java/dk/camelot64/kickc/test/kc/c64dtv-gfxexplorer.kc b/src/test/java/dk/camelot64/kickc/test/kc/c64dtv-gfxexplorer.kc index 7f34dddde..e442b9a85 100644 --- a/src/test/java/dk/camelot64/kickc/test/kc/c64dtv-gfxexplorer.kc +++ b/src/test/java/dk/camelot64/kickc/test/kc/c64dtv-gfxexplorer.kc @@ -54,10 +54,124 @@ void menu() { print_set_screen(SCREEN); print_cls(); print_str_lines(MENU_TEXT); - // Wait for keypress + form_set_screen(SCREEN); + form_render_values(); + // Allow user to control the form while(true) { - if(keyboard_key_pressed(KEY_SPACE)!=0) { + while(*RASTER!=$ff) {} + form_control(); + } +} + + +// Table with addresses of the y-lines of the form. The first line contains the address of the form screen. +byte[25] form_line_lo; +byte[25] form_line_hi; +// Current selected field in the form +byte form_field_idx = 0; +// Number of form fields +byte form_fields_cnt = 9; +// Form fields x/y-positions +byte[] form_fields_x = { 7, 7, 7, 7, 7, 7, 7, 17, 17 }; +byte[] form_fields_y = { 2, 3, 4, 5, 6, 7, 8, 7, 8 }; +// Form fields values +byte[] form_fields_val = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +// Press-status for the DOWN key from last frame - used for debounce +byte key_down_debounce = 0; +// Press-status for the right key from last frame - used for debounce +byte key_right_debounce = 0; + +// The number of frames to use for a full blink cycle +const signed byte FORM_CURSOR_BLINK = 40; +// Counts down to blink for form cursor (it is inversed in the lower half) +signed byte form_cursor_count = FORM_CURSOR_BLINK/2; + +// Set the screen to use for the form. +// screen is the start address of the screen to use +void form_set_screen(byte* screen) { + // Calculate the field line table + byte* line = screen; + for(byte y: 0..24) { + form_line_lo[y] = line; + line = line + 40; + } +} + +// Get the screen address of a form field +// field_idx is the index of the field to get the screen address for +byte* form_field_ptr(byte field_idx) { + byte y = form_fields_y[field_idx]; + byte* line = (byte*) { form_line_hi[y], form_line_lo[y] }; + byte x = form_fields_x[field_idx]; + byte* field = line+x; + return field; +} + +// Render all form values from the form_fields_val array +void form_render_values() { + for( byte idx=0; idx>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.asm b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.asm index c9f879213..9dd288e56 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.asm @@ -1,6 +1,7 @@ .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" + .label RASTER = $d012 .label BORDERCOL = $d020 .label BGCOL = $d021 .label VIC_CONTROL = $d011 @@ -23,14 +24,27 @@ .label DTV_COLOR_BANK_HI = $d037 .const DTV_COLOR_BANK_DEFAULT = $1d800 .label DTV_GRAPHICS_VIC_BANK = $d03d - .const KEY_SPACE = $3c - .label print_char_cursor = 4 - .label print_line_cursor = 6 + .const KEY_CRSR_RIGHT = 2 + .const KEY_CRSR_DOWN = 7 + .const KEY_RSHIFT = $34 + .const form_fields_cnt = 9 + .const FORM_CURSOR_BLINK = $28 + .label print_char_cursor = 8 + .label form_cursor_count = 2 + .label key_down_debounce = 3 + .label key_right_debounce = 4 + .label print_line_cursor = $a jsr main main: { sei lda #DTV_FEATURE_ENABLE sta DTV_FEATURE + lda #0 + sta key_right_debounce + tax + sta key_down_debounce + lda #FORM_CURSOR_BLINK/2 + sta form_cursor_count b2: jsr menu jmp b2 @@ -38,7 +52,7 @@ main: { menu: { .label SCREEN = $8000 .label CHARSET = $9800 - .label c = 2 + .label c = 5 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK lda #DTV_COLOR_BANK_DEFAULT/$400 @@ -56,12 +70,12 @@ menu: { sta VIC_CONTROL2 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY - ldx #0 + ldy #0 b1: - lda DTV_PALETTE_DEFAULT,x - sta DTV_PALETTE,x - inx - cpx #$10 + lda DTV_PALETTE_DEFAULT,y + sta DTV_PALETTE,y + iny + cpy #$10 bne b1 lda #>3 + .label colidx = 7 + tya + and #7 + sta colidx + tya + lsr + lsr + lsr + tay jsr keyboard_matrix_read - and keyboard_matrix_col_bitmask+colidx + ldy colidx + and keyboard_matrix_col_bitmask,y rts } keyboard_matrix_read: { - lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx + lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A lda CIA1_PORT_B eor #$ff rts } +form_field_ptr: { + .label return = 5 + .label field_idx = 7 + .label _2 = 5 + ldy field_idx + lda form_fields_y,y + tay + lda form_line_hi,y + sta _2+1 + lda form_line_lo,y + sta _2 + ldy field_idx + lda form_fields_x,y + clc + adc return + sta return + lda #0 + adc return+1 + sta return+1 + rts +} +form_render_values: { + .label field = 5 + .label idx = 7 + lda #0 + sta idx + b1: + jsr form_field_ptr + ldy idx + lda form_fields_val,y + tay + lda print_hextab,y + ldy #0 + sta (field),y + inc idx + lda idx + cmp #form_fields_cnt + bcc b1 + rts +} +form_set_screen: { + .label line = 5 + ldy #0 + lda #menu.SCREEN + sta line+1 + b1: + lda line + sta form_line_lo,y + lda line+1 + sta form_line_hi,y + lda line + clc + adc #$28 + sta line + bcc !+ + inc line+1 + !: + iny + cpy #$19 + bne b1 + rts +} print_str_lines: { - .label str = 2 + .label str = 5 lda #menu.SCREEN @@ -175,7 +352,7 @@ print_ln: { rts } print_cls: { - .label sc = 2 + .label sc = 5 lda #menu.SCREEN @@ -200,6 +377,12 @@ print_set_screen: { rts } DTV_PALETTE_DEFAULT: .byte 0, $f, $36, $be, $58, $db, $86, $ff, $29, $26, $3b, 5, 7, $df, $9a, $a + print_hextab: .text "0123456789abcdef" keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80 + form_line_lo: .fill $19, 0 + form_line_hi: .fill $19, 0 + form_fields_x: .byte 7, 7, 7, 7, 7, 7, 7, $11, $11 + form_fields_y: .byte 2, 3, 4, 5, 6, 7, 8, 7, 8 + form_fields_val: .byte 0, 0, 0, 0, 0, 0, 0, 0, 0 MENU_TEXT: .text " DTV GfxExplorer PRESET 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p1 patt p2 screen s3 @"+" mcm 0 start 00 start 00 gfx g4 @"+" ecm 0 step 00 step 00 colors c5 @"+" hicol 0 mod 00 mod 00 bgcol0 00 @"+" line 0 bgcol1 00 @"+" colof 0 borof 0 bgcol2 00 @"+" chunk 0 overs 0 bgcol3 00 @"+"@" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.cfg b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.cfg index 594ebdf56..d330eff67 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.cfg @@ -1,154 +1,323 @@ @begin: scope:[] from [0] phi() [ ] ( ) - to:@21 -@21: scope:[] from @begin + to:@25 +@25: scope:[] from @begin [1] phi() [ ] ( ) [2] call main param-assignment [ ] ( ) to:@end -@end: scope:[] from @21 +@end: scope:[] from @25 [3] phi() [ ] ( ) -main: scope:[main] from @21 +main: scope:[main] from @25 asm { sei } [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) to:main::@1 main::@1: scope:[main] from main main::@2 - [6] if(true) goto main::@2 [ ] ( main:2 [ ] ) + [6] (byte) key_right_debounce#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) key_right_debounce#11 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [6] (byte) form_field_idx#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) form_field_idx#14 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [6] (byte) key_down_debounce#1 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@2/(byte) key_down_debounce#11 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [6] (signed byte) form_cursor_count#1 ← phi( main/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 main::@2/(signed byte) form_cursor_count#13 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [7] if(true) goto main::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:main::@return main::@return: scope:[main] from main::@1 - [7] return [ ] ( main:2 [ ] ) + [8] return [ ] ( main:2 [ ] ) to:@return main::@2: scope:[main] from main::@1 - [8] phi() [ ] ( main:2 [ ] ) - [9] call menu param-assignment [ ] ( main:2 [ ] ) + [9] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [10] call menu param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) to:main::@1 menu: scope:[menu] from main::@2 - [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9 [ ] ) - [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) - [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) - [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) - [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) - [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9 [ ] ) - [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) - [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] ) - [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) + [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [19] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:menu::@1 menu::@1: scope:[menu] from menu menu::@1 - [19] (byte) menu::i#2 ← phi( menu/(byte/signed byte/word/signed word/dword/signed dword) 0 menu::@1/(byte) menu::i#1 ) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) - [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) - [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ menu::i#1 ] ( main:2::menu:9 [ menu::i#1 ] ) - [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ menu::i#1 ] ( main:2::menu:9 [ menu::i#1 ] ) + [20] (byte) menu::i#2 ← phi( menu/(byte/signed byte/word/signed word/dword/signed dword) 0 menu::@1/(byte) menu::i#1 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) + [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) + [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) + [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) to:menu::@2 menu::@2: scope:[menu] from menu::@1 menu::@2 - [23] (byte*) menu::c#2 ← phi( menu::@2/(byte*) menu::c#1 menu::@1/(const byte*) COLS#0 ) [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) - [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) - [25] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) - [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) - to:menu::@8 -menu::@8: scope:[menu] from menu::@2 - [27] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) - [28] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) - [29] call print_set_screen param-assignment [ ] ( main:2::menu:9 [ ] ) - to:menu::@14 -menu::@14: scope:[menu] from menu::@8 - [30] phi() [ ] ( main:2::menu:9 [ ] ) - [31] call print_cls param-assignment [ ] ( main:2::menu:9 [ ] ) - to:menu::@15 -menu::@15: scope:[menu] from menu::@14 - [32] phi() [ ] ( main:2::menu:9 [ ] ) - [33] call print_str_lines param-assignment [ ] ( main:2::menu:9 [ ] ) - to:menu::@3 -menu::@3: scope:[menu] from menu::@15 menu::@17 - [34] if(true) goto menu::@4 [ ] ( main:2::menu:9 [ ] ) - to:menu::@return -menu::@return: scope:[menu] from menu::@17 menu::@3 - [35] return [ ] ( main:2::menu:9 [ ] ) - to:@return -menu::@4: scope:[menu] from menu::@3 - [36] phi() [ ] ( main:2::menu:9 [ ] ) - [37] call keyboard_key_pressed param-assignment [ keyboard_key_pressed::return#0 ] ( main:2::menu:9 [ keyboard_key_pressed::return#0 ] ) - [38] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ keyboard_key_pressed::return#2 ] ( main:2::menu:9 [ keyboard_key_pressed::return#2 ] ) + [24] (byte*) menu::c#2 ← phi( menu::@2/(byte*) menu::c#1 menu::@1/(const byte*) COLS#0 ) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ) + [25] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ) + [26] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) + [27] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) + to:menu::@10 +menu::@10: scope:[menu] from menu::@2 + [28] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [29] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [30] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:menu::@17 -menu::@17: scope:[menu] from menu::@4 - [39] (byte~) menu::$29 ← (byte) keyboard_key_pressed::return#2 [ menu::$29 ] ( main:2::menu:9 [ menu::$29 ] ) - [40] if((byte~) menu::$29==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@3 [ ] ( main:2::menu:9 [ ] ) +menu::@17: scope:[menu] from menu::@10 + [31] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [32] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + to:menu::@18 +menu::@18: scope:[menu] from menu::@17 + [33] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [34] call print_str_lines param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + to:menu::@19 +menu::@19: scope:[menu] from menu::@18 + [35] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [36] call form_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + to:menu::@20 +menu::@20: scope:[menu] from menu::@19 + [37] phi() [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + [38] call form_render_values param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + to:menu::@3 +menu::@3: scope:[menu] from menu::@20 menu::@8 + [39] (byte) key_right_debounce#11 ← phi( menu::@20/(byte) key_right_debounce#1 menu::@8/(byte) key_right_debounce#13 ) [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + [39] (byte) form_field_idx#14 ← phi( menu::@20/(byte) form_field_idx#1 menu::@8/(byte) form_field_idx#18 ) [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + [39] (byte) key_down_debounce#11 ← phi( menu::@20/(byte) key_down_debounce#1 menu::@8/(byte) key_down_debounce#13 ) [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + [39] (signed byte) form_cursor_count#13 ← phi( menu::@20/(signed byte) form_cursor_count#1 menu::@8/(signed byte) form_cursor_count#16 ) [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + [40] if(true) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) to:menu::@return -keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@4 - [41] phi() [ ] ( main:2::menu:9::keyboard_key_pressed:37 [ ] ) - [42] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_matrix_read::return#0 ] ) - [43] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_matrix_read::return#2 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_matrix_read::return#2 ] ) +menu::@return: scope:[menu] from menu::@3 + [41] return [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + to:@return +menu::@6: scope:[menu] from menu::@3 menu::@6 + [42] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + to:menu::@8 +menu::@8: scope:[menu] from menu::@6 + [43] phi() [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + [44] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + to:menu::@3 +form_control: scope:[form_control] from menu::@8 + [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) + [46] call form_field_ptr param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) + [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) + to:form_control::@28 +form_control::@28: scope:[form_control] from form_control + [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) + [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) + [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) + to:form_control::@1 +form_control::@1: scope:[form_control] from form_control::@28 form_control::@33 + [51] (signed byte) form_cursor_count#15 ← phi( form_control::@28/(const signed byte) FORM_CURSOR_BLINK#0 form_control::@33/(signed byte) form_cursor_count#5 ) [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) + [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@15 +form_control::@15: scope:[form_control] from form_control::@1 + [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) + [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@3 +form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 + [55] phi() [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) + [56] call keyboard_key_pressed param-assignment [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ) + [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) + to:form_control::@29 +form_control::@29: scope:[form_control] from form_control::@3 + [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) + [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) + to:form_control::@17 +form_control::@17: scope:[form_control] from form_control::@29 + [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) + [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) + to:form_control::@18 +form_control::@18: scope:[form_control] from form_control::@17 + [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) + [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) + [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) + [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) + to:form_control::@31 +form_control::@31: scope:[form_control] from form_control::@18 + [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) + [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) + to:form_control::@19 +form_control::@19: scope:[form_control] from form_control::@31 + [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) + [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) + to:form_control::@8 +form_control::@8: scope:[form_control] from form_control::@19 form_control::@34 form_control::@35 form_control::@6 + [70] (byte) form_field_idx#30 ← phi( form_control::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 form_control::@6/(const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 form_control::@34/(byte) form_field_idx#37 form_control::@35/(byte) form_field_idx#38 ) [ key_right_debounce#11 key_down_debounce#23 form_field_idx#30 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#30 ] ) + to:form_control::@return +form_control::@return: scope:[form_control] from form_control::@13 form_control::@24 form_control::@30 form_control::@8 + [71] (byte) key_right_debounce#13 ← phi( form_control::@30/(byte) key_right_debounce#11 form_control::@24/(byte) key_right_debounce#21 form_control::@13/(byte) key_right_debounce#21 form_control::@8/(byte) key_right_debounce#11 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (byte) form_field_idx#18 ← phi( form_control::@30/(byte) form_field_idx#14 form_control::@24/(byte) form_field_idx#14 form_control::@13/(byte) form_field_idx#14 form_control::@8/(byte) form_field_idx#30 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (byte) key_down_debounce#13 ← phi( form_control::@30/(byte) key_down_debounce#20 form_control::@24/(byte) key_down_debounce#20 form_control::@13/(byte) key_down_debounce#20 form_control::@8/(byte) key_down_debounce#23 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [71] (signed byte) form_cursor_count#16 ← phi( form_control::@30/(signed byte) form_cursor_count#15 form_control::@24/(signed byte) form_cursor_count#15 form_control::@13/(signed byte) form_cursor_count#15 form_control::@8/(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + to:@return +form_control::@34: scope:[form_control] from form_control::@19 + [73] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) + to:form_control::@8 +form_control::@6: scope:[form_control] from form_control::@31 + [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) + [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) + to:form_control::@8 +form_control::@35: scope:[form_control] from form_control::@6 + [76] phi() [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) + to:form_control::@8 +form_control::@4: scope:[form_control] from form_control::@17 form_control::@29 + [77] (byte) key_down_debounce#20 ← phi( form_control::@29/(byte) key_down_debounce#11 form_control::@17/(byte) key_down_debounce#23 ) [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 ] ) + [78] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ) + [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) + to:form_control::@30 +form_control::@30: scope:[form_control] from form_control::@4 + [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) + [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) + to:form_control::@24 +form_control::@24: scope:[form_control] from form_control::@30 + [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) + [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@25 +form_control::@25: scope:[form_control] from form_control::@24 + [84] phi() [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) + [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) + to:form_control::@32 +form_control::@32: scope:[form_control] from form_control::@25 + [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) + [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@26 +form_control::@26: scope:[form_control] from form_control::@32 + [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) + [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) + [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@13 +form_control::@13: scope:[form_control] from form_control::@12 form_control::@26 + [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@return +form_control::@12: scope:[form_control] from form_control::@32 + [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) + [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) + [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) + to:form_control::@13 +form_control::@2: scope:[form_control] from form_control::@1 + [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) + [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) + to:form_control::@3 +form_control::@33: scope:[form_control] from form_control::@28 + [98] phi() [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) + to:form_control::@1 +keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@18 form_control::@25 form_control::@3 form_control::@4 + [99] (byte) keyboard_key_pressed::key#4 ← phi( form_control::@18/(const byte) KEY_RSHIFT#0 form_control::@25/(const byte) KEY_RSHIFT#0 form_control::@3/(const byte) KEY_CRSR_DOWN#0 form_control::@4/(const byte) KEY_CRSR_RIGHT#0 ) [ keyboard_key_pressed::key#4 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 ] ) + [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) + [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) + [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) + [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) + [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) to:keyboard_key_pressed::@2 keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed - [44] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::$2 ] ) - [45] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) + [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) + [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 - [46] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) + [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) to:@return keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed - [47] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ ] ) - [48] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) + [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) + [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) to:keyboard_matrix_read::@return keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read - [49] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) + [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) to:@return -print_str_lines: scope:[print_str_lines] from menu::@15 - [50] phi() [ ] ( main:2::menu:9::print_str_lines:33 [ ] ) +form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@1 + [111] (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(byte) form_field_ptr::field_idx#0 ) [ form_field_ptr::field_idx#2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 ] ) + [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) + [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) + [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) + [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) + to:form_field_ptr::@return +form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr + [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) + to:@return +form_render_values: scope:[form_render_values] from menu::@20 + [117] phi() [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + to:form_render_values::@1 +form_render_values::@1: scope:[form_render_values] from form_render_values form_render_values::@3 + [118] (byte) form_render_values::idx#2 ← phi( form_render_values/(byte/signed byte/word/signed word/dword/signed dword) 0 form_render_values::@3/(byte) form_render_values::idx#1 ) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) + [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) + [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) + to:form_render_values::@3 +form_render_values::@3: scope:[form_render_values] from form_render_values::@1 + [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) + [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) + [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) + [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) + to:form_render_values::@return +form_render_values::@return: scope:[form_render_values] from form_render_values::@3 + [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + to:@return +form_set_screen: scope:[form_set_screen] from menu::@19 + [127] phi() [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + to:form_set_screen::@1 +form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_screen::@1 + [128] (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte/signed byte/word/signed word/dword/signed dword) 0 form_set_screen::@1/(byte) form_set_screen::y#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [128] (byte*) form_set_screen::line#2 ← phi( form_set_screen/(const byte*) menu::SCREEN#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) + [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) + [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) + [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) + [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) + [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) + to:form_set_screen::@return +form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1 + [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + to:@return +print_str_lines: scope:[print_str_lines] from menu::@18 + [137] phi() [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:print_str_lines::@1 print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9 - [51] (byte*) print_line_cursor#17 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@9/(byte*) print_line_cursor#19 ) [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) - [51] (byte*) print_char_cursor#19 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@9/(byte*~) print_char_cursor#53 ) [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) - [51] (byte*) print_str_lines::str#2 ← phi( print_str_lines/(const string) MENU_TEXT#0 print_str_lines::@9/(byte*) print_str_lines::str#0 ) [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) - [52] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) + [138] (byte*) print_line_cursor#17 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@9/(byte*) print_line_cursor#19 ) [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) + [138] (byte*) print_char_cursor#19 ← phi( print_str_lines/(const byte*) menu::SCREEN#0 print_str_lines::@9/(byte*~) print_char_cursor#59 ) [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) + [138] (byte*) print_str_lines::str#2 ← phi( print_str_lines/(const string) MENU_TEXT#0 print_str_lines::@9/(byte*) print_str_lines::str#0 ) [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) + [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) to:print_str_lines::@return print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1 - [53] return [ ] ( main:2::menu:9::print_str_lines:33 [ ] ) + [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:@return print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@5 - [54] (byte*) print_char_cursor#17 ← phi( print_str_lines::@1/(byte*) print_char_cursor#19 print_str_lines::@5/(byte*) print_char_cursor#32 ) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] ) - [54] (byte*) print_str_lines::str#3 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 print_str_lines::@5/(byte*) print_str_lines::str#0 ) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] ) - [55] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) - [56] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) - [57] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) + [141] (byte*) print_char_cursor#17 ← phi( print_str_lines::@1/(byte*) print_char_cursor#19 print_str_lines::@5/(byte*) print_char_cursor#32 ) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] ) + [141] (byte*) print_str_lines::str#3 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 print_str_lines::@5/(byte*) print_str_lines::str#0 ) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] ) + [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) + [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) + [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) to:print_str_lines::@8 print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4 - [58] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) - [59] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) + [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) + [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) to:print_str_lines::@5 print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8 - [60] (byte*) print_char_cursor#32 ← phi( print_str_lines::@4/(byte*) print_char_cursor#17 print_str_lines::@8/(byte*) print_char_cursor#1 ) [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 print_str_lines::ch#0 ] ) - [61] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) + [147] (byte*) print_char_cursor#32 ← phi( print_str_lines::@4/(byte*) print_char_cursor#17 print_str_lines::@8/(byte*) print_char_cursor#1 ) [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 print_str_lines::ch#0 ] ) + [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) to:print_str_lines::@9 print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5 - [62] phi() [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) - [63] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_line_cursor#19 ] ) - [64] (byte*~) print_char_cursor#53 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ) + [149] phi() [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) + [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) to:print_str_lines::@1 print_ln: scope:[print_ln] from print_str_lines::@9 - [65] phi() [ print_line_cursor#17 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#17 print_char_cursor#32 ] ) + [152] phi() [ print_line_cursor#17 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#17 print_char_cursor#32 ] ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 - [66] (byte*) print_line_cursor#18 ← phi( print_ln/(byte*) print_line_cursor#17 print_ln::@1/(byte*) print_line_cursor#19 ) [ print_char_cursor#32 print_line_cursor#18 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_char_cursor#32 print_line_cursor#18 ] ) - [67] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) - [68] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) + [153] (byte*) print_line_cursor#18 ← phi( print_ln/(byte*) print_line_cursor#17 print_ln::@1/(byte*) print_line_cursor#19 ) [ print_char_cursor#32 print_line_cursor#18 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#32 print_line_cursor#18 ] ) + [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) + [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@1 - [69] return [ print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 ] ) + [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) to:@return -print_cls: scope:[print_cls] from menu::@14 - [70] phi() [ ] ( main:2::menu:9::print_cls:31 [ ] ) +print_cls: scope:[print_cls] from menu::@17 + [157] phi() [ ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 - [71] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) menu::SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) - [72] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) - [73] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) - [74] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) + [158] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) menu::SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) + [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) + [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) + [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 - [75] return [ ] ( main:2::menu:9::print_cls:31 [ ] ) + [162] return [ ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:@return -print_set_screen: scope:[print_set_screen] from menu::@8 - [76] phi() [ ] ( main:2::menu:9::print_set_screen:29 [ ] ) +print_set_screen: scope:[print_set_screen] from menu::@10 + [163] phi() [ ] ( main:2::menu:10::print_set_screen:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:print_set_screen::@return print_set_screen::@return: scope:[print_set_screen] from print_set_screen - [77] return [ ] ( main:2::menu:9::print_set_screen:29 [ ] ) + [164] return [ ] ( main:2::menu:10::print_set_screen:30 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) to:@return diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log index 81f149c24..253bf6452 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log @@ -55,12 +55,126 @@ void menu() { print_set_screen(SCREEN); print_cls(); print_str_lines(MENU_TEXT); - // Wait for keypress + form_set_screen(SCREEN); + form_render_values(); + // Allow user to control the form while(true) { - if(keyboard_key_pressed(KEY_SPACE)!=0) { + while(*RASTER!=$ff) {} + form_control(); + } +} + + +// Table with addresses of the y-lines of the form. The first line contains the address of the form screen. +byte[25] form_line_lo; +byte[25] form_line_hi; +// Current selected field in the form +byte form_field_idx = 0; +// Number of form fields +byte form_fields_cnt = 9; +// Form fields x/y-positions +byte[] form_fields_x = { 7, 7, 7, 7, 7, 7, 7, 17, 17 }; +byte[] form_fields_y = { 2, 3, 4, 5, 6, 7, 8, 7, 8 }; +// Form fields values +byte[] form_fields_val = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +// Press-status for the DOWN key from last frame - used for debounce +byte key_down_debounce = 0; +// Press-status for the right key from last frame - used for debounce +byte key_right_debounce = 0; + +// The number of frames to use for a full blink cycle +const signed byte FORM_CURSOR_BLINK = 40; +// Counts down to blink for form cursor (it is inversed in the lower half) +signed byte form_cursor_count = FORM_CURSOR_BLINK/2; + +// Set the screen to use for the form. +// screen is the start address of the screen to use +void form_set_screen(byte* screen) { + // Calculate the field line table + byte* line = screen; + for(byte y: 0..24) { + form_line_lo[y] = line; + line = line + 40; + } +} + +// Get the screen address of a form field +// field_idx is the index of the field to get the screen address for +byte* form_field_ptr(byte field_idx) { + byte y = form_fields_y[field_idx]; + byte* line = (byte*) { form_line_hi[y], form_line_lo[y] }; + byte x = form_fields_x[field_idx]; + byte* field = line+x; + return field; +} + +// Render all form values from the form_fields_val array +void form_render_values() { + for( byte idx=0; idx>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -511,6 +626,10 @@ byte keyboard_get_keycode(byte ch) { } Importing c64.kc Adding pre/post-modifier (byte*) menu::c ← ++ (byte*) menu::c +Adding pre/post-modifier (byte) form_render_values::idx ← ++ (byte) form_render_values::idx +Adding pre/post-modifier (signed byte) form_cursor_count ← -- (signed byte) form_cursor_count +Adding pre/post-modifier (byte) form_field_idx ← ++ (byte) form_field_idx +Adding pre/post-modifier (byte) form_field_idx ← -- (byte) form_field_idx STATEMENTS (byte*) PROCPORT_DDR ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -741,12 +860,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -955,21 +1074,162 @@ menu::@2: (void~) menu::$26 ← call print_set_screen (byte*) menu::SCREEN (void~) menu::$27 ← call print_cls (void~) menu::$28 ← call print_str_lines (byte[]) MENU_TEXT + (void~) menu::$29 ← call form_set_screen (byte*) menu::SCREEN + (void~) menu::$30 ← call form_render_values menu::@3: if(true) goto menu::@4 goto menu::@5 menu::@4: - (byte~) menu::$29 ← call keyboard_key_pressed (byte) KEY_SPACE - (boolean~) menu::$30 ← (byte~) menu::$29 != (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) menu::$31 ← ! (boolean~) menu::$30 - if((boolean~) menu::$31) goto menu::@6 - goto menu::@return menu::@6: + (boolean~) menu::$31 ← *((byte*) RASTER) != (byte/word/signed word/dword/signed dword) 255 + if((boolean~) menu::$31) goto menu::@7 + goto menu::@8 +menu::@7: + goto menu::@6 +menu::@8: + (void~) menu::$32 ← call form_control goto menu::@3 menu::@5: menu::@return: return endproc // menu() + (byte[25]) form_line_lo ← { fill( 25, 0) } + (byte[25]) form_line_hi ← { fill( 25, 0) } + (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) form_fields_cnt ← (byte/signed byte/word/signed word/dword/signed dword) 9 + (byte[]) form_fields_x ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 17 } + (byte[]) form_fields_y ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8 } + (byte[]) form_fields_val ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte) key_down_debounce ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) key_right_debounce ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (signed byte) FORM_CURSOR_BLINK ← (byte/signed byte/word/signed word/dword/signed dword) 40 + (signed word/signed byte/signed dword~) $9 ← (signed byte) FORM_CURSOR_BLINK / (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) form_cursor_count ← (signed word/signed byte/signed dword~) $9 +proc (void()) form_set_screen((byte*) form_set_screen::screen) + (byte*) form_set_screen::line ← (byte*) form_set_screen::screen + (byte) form_set_screen::y ← (byte/signed byte/word/signed word/dword/signed dword) 0 +form_set_screen::@1: + (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line + *((byte[25]) form_line_lo + (byte) form_set_screen::y) ← (byte~) form_set_screen::$0 + (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line + *((byte[25]) form_line_hi + (byte) form_set_screen::y) ← (byte~) form_set_screen::$1 + (byte*~) form_set_screen::$2 ← (byte*) form_set_screen::line + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) form_set_screen::line ← (byte*~) form_set_screen::$2 + (byte) form_set_screen::y ← ++ (byte) form_set_screen::y + (boolean~) form_set_screen::$3 ← (byte) form_set_screen::y != (byte/signed byte/word/signed word/dword/signed dword) 25 + if((boolean~) form_set_screen::$3) goto form_set_screen::@1 +form_set_screen::@return: + return +endproc // form_set_screen() +proc (byte*()) form_field_ptr((byte) form_field_ptr::field_idx) + (byte) form_field_ptr::y ← *((byte[]) form_fields_y + (byte) form_field_ptr::field_idx) + (byte*~) form_field_ptr::$0 ← ((byte*)) { *((byte[25]) form_line_hi + (byte) form_field_ptr::y), *((byte[25]) form_line_lo + (byte) form_field_ptr::y) } + (byte*) form_field_ptr::line ← (byte*~) form_field_ptr::$0 + (byte) form_field_ptr::x ← *((byte[]) form_fields_x + (byte) form_field_ptr::field_idx) + (byte*~) form_field_ptr::$1 ← (byte*) form_field_ptr::line + (byte) form_field_ptr::x + (byte*) form_field_ptr::field ← (byte*~) form_field_ptr::$1 + (byte*) form_field_ptr::return ← (byte*) form_field_ptr::field + goto form_field_ptr::@return +form_field_ptr::@return: + (byte*) form_field_ptr::return ← (byte*) form_field_ptr::return + return (byte*) form_field_ptr::return +endproc // form_field_ptr() +proc (void()) form_render_values() + (byte) form_render_values::idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 +form_render_values::@1: + (byte*~) form_render_values::$0 ← call form_field_ptr (byte) form_render_values::idx + (byte*) form_render_values::field ← (byte*~) form_render_values::$0 + *((byte*) form_render_values::field) ← *((byte[]) print_hextab + *((byte[]) form_fields_val + (byte) form_render_values::idx)) + (byte) form_render_values::idx ← ++ (byte) form_render_values::idx + (boolean~) form_render_values::$1 ← (byte) form_render_values::idx < (byte) form_fields_cnt + if((boolean~) form_render_values::$1) goto form_render_values::@1 +form_render_values::@return: + return +endproc // form_render_values() +proc (void()) form_control() + (byte*~) form_control::$0 ← call form_field_ptr (byte) form_field_idx + (byte*) form_control::field ← (byte*~) form_control::$0 + (signed byte) form_cursor_count ← -- (signed byte) form_cursor_count + (boolean~) form_control::$1 ← (signed byte) form_cursor_count < (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$2 ← ! (boolean~) form_control::$1 + if((boolean~) form_control::$2) goto form_control::@1 + (signed byte) form_cursor_count ← (signed byte) FORM_CURSOR_BLINK +form_control::@1: + (signed word/signed byte/signed dword~) form_control::$3 ← (signed byte) FORM_CURSOR_BLINK / (byte/signed byte/word/signed word/dword/signed dword) 2 + (boolean~) form_control::$4 ← (signed byte) form_cursor_count < (signed word/signed byte/signed dword~) form_control::$3 + (boolean~) form_control::$5 ← ! (boolean~) form_control::$4 + if((boolean~) form_control::$5) goto form_control::@2 + (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field) | (byte/word/signed word/dword/signed dword) 128 + *((byte*) form_control::field) ← (byte/word/dword~) form_control::$6 + goto form_control::@3 +form_control::@2: + (byte~) form_control::$7 ← *((byte*) form_control::field) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field) ← (byte~) form_control::$7 +form_control::@3: + (byte~) form_control::$8 ← call keyboard_key_pressed (byte) KEY_CRSR_DOWN + (byte) form_control::key_down ← (byte~) form_control::$8 + (boolean~) form_control::$9 ← (byte) form_control::key_down != (byte) key_down_debounce + (boolean~) form_control::$10 ← ! (boolean~) form_control::$9 + if((boolean~) form_control::$10) goto form_control::@4 + (byte) key_down_debounce ← (byte) form_control::key_down + (boolean~) form_control::$11 ← (byte) form_control::key_down != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$12 ← ! (boolean~) form_control::$11 + if((boolean~) form_control::$12) goto form_control::@5 + (byte~) form_control::$13 ← *((byte*) form_control::field) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field) ← (byte~) form_control::$13 + (byte~) form_control::$14 ← call keyboard_key_pressed (byte) KEY_RSHIFT + (boolean~) form_control::$15 ← (byte~) form_control::$14 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$16 ← ! (boolean~) form_control::$15 + if((boolean~) form_control::$16) goto form_control::@6 + (byte) form_field_idx ← ++ (byte) form_field_idx + (boolean~) form_control::$17 ← (byte) form_field_idx == (byte) form_fields_cnt + (boolean~) form_control::$18 ← ! (boolean~) form_control::$17 + if((boolean~) form_control::$18) goto form_control::@7 + (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 +form_control::@7: + goto form_control::@8 +form_control::@6: + (byte) form_field_idx ← -- (byte) form_field_idx + (boolean~) form_control::$19 ← (byte) form_field_idx == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$20 ← ! (boolean~) form_control::$19 + if((boolean~) form_control::$20) goto form_control::@9 + (byte/signed word/word/dword/signed dword~) form_control::$21 ← (byte) form_fields_cnt - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) form_field_idx ← (byte/signed word/word/dword/signed dword~) form_control::$21 +form_control::@9: +form_control::@8: + (signed word/signed byte/signed dword~) form_control::$22 ← (signed byte) FORM_CURSOR_BLINK / (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) form_cursor_count ← (signed word/signed byte/signed dword~) form_control::$22 + goto form_control::@return +form_control::@5: +form_control::@4: + (byte~) form_control::$23 ← call keyboard_key_pressed (byte) KEY_CRSR_RIGHT + (byte) form_control::key_right ← (byte~) form_control::$23 + (boolean~) form_control::$24 ← (byte) form_control::key_right != (byte) key_right_debounce + (boolean~) form_control::$25 ← ! (boolean~) form_control::$24 + if((boolean~) form_control::$25) goto form_control::@10 + (byte) key_right_debounce ← (byte) form_control::key_right + (boolean~) form_control::$26 ← (byte) form_control::key_right != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$27 ← ! (boolean~) form_control::$26 + if((boolean~) form_control::$27) goto form_control::@11 + (byte~) form_control::$28 ← call keyboard_key_pressed (byte) KEY_RSHIFT + (boolean~) form_control::$29 ← (byte~) form_control::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 + if((boolean~) form_control::$30) goto form_control::@12 + (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((byte[]) form_fields_val + (byte) form_field_idx) + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/word/dword~) form_control::$32 + goto form_control::@13 +form_control::@12: + (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((byte[]) form_fields_val + (byte) form_field_idx) - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/word/dword~) form_control::$34 +form_control::@13: + *((byte*) form_control::field) ← *((byte[]) print_hextab + *((byte[]) form_fields_val + (byte) form_field_idx)) +form_control::@11: +form_control::@10: +form_control::@return: + return +endproc // form_control() call main SYMBOLS @@ -982,6 +1242,7 @@ SYMBOLS (string~) $6 (string~) $7 (string~) $8 +(signed word/signed byte/signed dword~) $9 (byte*) BGCOL (byte*) BGCOL1 (byte*) BGCOL2 @@ -1037,6 +1298,7 @@ SYMBOLS (byte*) DTV_PLANEB_START_MI (byte*) DTV_PLANEB_STEP (byte*) DTV_SPRITE_BANK +(signed byte) FORM_CURSOR_BLINK (byte) GREEN (byte) GREY (byte) KEY_0 @@ -1147,6 +1409,96 @@ SYMBOLS (label) dtvSetCpuBankSegment1::@return (byte*) dtvSetCpuBankSegment1::cpuBank (byte) dtvSetCpuBankSegment1::cpuBankIdx +(void()) form_control() +(byte*~) form_control::$0 +(boolean~) form_control::$1 +(boolean~) form_control::$10 +(boolean~) form_control::$11 +(boolean~) form_control::$12 +(byte~) form_control::$13 +(byte~) form_control::$14 +(boolean~) form_control::$15 +(boolean~) form_control::$16 +(boolean~) form_control::$17 +(boolean~) form_control::$18 +(boolean~) form_control::$19 +(boolean~) form_control::$2 +(boolean~) form_control::$20 +(byte/signed word/word/dword/signed dword~) form_control::$21 +(signed word/signed byte/signed dword~) form_control::$22 +(byte~) form_control::$23 +(boolean~) form_control::$24 +(boolean~) form_control::$25 +(boolean~) form_control::$26 +(boolean~) form_control::$27 +(byte~) form_control::$28 +(boolean~) form_control::$29 +(signed word/signed byte/signed dword~) form_control::$3 +(boolean~) form_control::$30 +(byte/signed word/word/dword/signed dword~) form_control::$31 +(byte/word/dword~) form_control::$32 +(byte/signed word/word/dword/signed dword~) form_control::$33 +(byte/word/dword~) form_control::$34 +(boolean~) form_control::$4 +(boolean~) form_control::$5 +(byte/word/dword~) form_control::$6 +(byte~) form_control::$7 +(byte~) form_control::$8 +(boolean~) form_control::$9 +(label) form_control::@1 +(label) form_control::@10 +(label) form_control::@11 +(label) form_control::@12 +(label) form_control::@13 +(label) form_control::@2 +(label) form_control::@3 +(label) form_control::@4 +(label) form_control::@5 +(label) form_control::@6 +(label) form_control::@7 +(label) form_control::@8 +(label) form_control::@9 +(label) form_control::@return +(byte*) form_control::field +(byte) form_control::key_down +(byte) form_control::key_right +(signed byte) form_cursor_count +(byte) form_field_idx +(byte*()) form_field_ptr((byte) form_field_ptr::field_idx) +(byte*~) form_field_ptr::$0 +(byte*~) form_field_ptr::$1 +(label) form_field_ptr::@return +(byte*) form_field_ptr::field +(byte) form_field_ptr::field_idx +(byte*) form_field_ptr::line +(byte*) form_field_ptr::return +(byte) form_field_ptr::x +(byte) form_field_ptr::y +(byte) form_fields_cnt +(byte[]) form_fields_val +(byte[]) form_fields_x +(byte[]) form_fields_y +(byte[25]) form_line_hi +(byte[25]) form_line_lo +(void()) form_render_values() +(byte*~) form_render_values::$0 +(boolean~) form_render_values::$1 +(label) form_render_values::@1 +(label) form_render_values::@return +(byte*) form_render_values::field +(byte) form_render_values::idx +(void()) form_set_screen((byte*) form_set_screen::screen) +(byte~) form_set_screen::$0 +(byte~) form_set_screen::$1 +(byte*~) form_set_screen::$2 +(boolean~) form_set_screen::$3 +(label) form_set_screen::@1 +(label) form_set_screen::@return +(byte*) form_set_screen::line +(byte*) form_set_screen::screen +(byte) form_set_screen::y +(byte) key_down_debounce +(byte) key_right_debounce (byte[]) keyboard_char_keycodes (byte()) keyboard_get_keycode((byte) keyboard_get_keycode::ch) (label) keyboard_get_keycode::@return @@ -1201,10 +1553,11 @@ SYMBOLS (void~) menu::$26 (void~) menu::$27 (void~) menu::$28 -(byte~) menu::$29 +(void~) menu::$29 (dword~) menu::$3 -(boolean~) menu::$30 +(void~) menu::$30 (boolean~) menu::$31 +(void~) menu::$32 (word~) menu::$4 (byte~) menu::$5 (dword~) menu::$6 @@ -1217,6 +1570,8 @@ SYMBOLS (label) menu::@4 (label) menu::@5 (label) menu::@6 +(label) menu::@7 +(label) menu::@8 (label) menu::@return (byte*) menu::CHARSET (byte*) menu::SCREEN @@ -1229,7 +1584,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1247,6 +1601,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -1691,13 +2046,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @11: scope:[] from @10 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@12 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -1935,54 +2290,254 @@ menu::@1: scope:[menu] from menu menu::@1 (byte) menu::i ← ++ (byte) menu::i (boolean~) menu::$23 ← (byte) menu::i != (byte/signed byte/word/signed word/dword/signed dword) 16 if((boolean~) menu::$23) goto menu::@1 - to:menu::@7 -menu::@7: scope:[menu] from menu::@1 + to:menu::@9 +menu::@9: scope:[menu] from menu::@1 (byte*) menu::c ← (byte*) COLS to:menu::@2 -menu::@2: scope:[menu] from menu::@2 menu::@7 +menu::@2: scope:[menu] from menu::@2 menu::@9 *((byte*) menu::c) ← (byte) LIGHT_GREEN (byte*) menu::c ← ++ (byte*) menu::c (byte*~) menu::$24 ← (byte*) COLS + (word/signed word/dword/signed dword) 1000 (boolean~) menu::$25 ← (byte*) menu::c != (byte*~) menu::$24 if((boolean~) menu::$25) goto menu::@2 - to:menu::@8 -menu::@8: scope:[menu] from menu::@2 + to:menu::@10 +menu::@10: scope:[menu] from menu::@2 *((byte*) BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (void~) menu::$26 ← call print_set_screen (byte*) menu::SCREEN (void~) menu::$27 ← call print_cls (void~) menu::$28 ← call print_str_lines (byte[]) MENU_TEXT + (void~) menu::$29 ← call form_set_screen (byte*) menu::SCREEN + (void~) menu::$30 ← call form_render_values to:menu::@3 -menu::@3: scope:[menu] from menu::@6 menu::@8 +menu::@3: scope:[menu] from menu::@10 menu::@8 if(true) goto menu::@4 - to:menu::@9 -menu::@4: scope:[menu] from menu::@10 menu::@3 - (byte~) menu::$29 ← call keyboard_key_pressed (byte) KEY_SPACE - (boolean~) menu::$30 ← (byte~) menu::$29 != (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) menu::$31 ← ! (boolean~) menu::$30 - if((boolean~) menu::$31) goto menu::@6 to:menu::@11 -menu::@9: scope:[menu] from menu::@3 +menu::@4: scope:[menu] from menu::@12 menu::@3 + to:menu::@6 +menu::@11: scope:[menu] from menu::@3 to:menu::@5 -menu::@5: scope:[menu] from menu::@13 menu::@9 +menu::@5: scope:[menu] from menu::@11 menu::@16 to:menu::@return -menu::@10: scope:[menu] from +menu::@12: scope:[menu] from to:menu::@4 -menu::@6: scope:[menu] from menu::@12 menu::@4 +menu::@6: scope:[menu] from menu::@4 menu::@7 + (boolean~) menu::$31 ← *((byte*) RASTER) != (byte/word/signed word/dword/signed dword) 255 + if((boolean~) menu::$31) goto menu::@7 + to:menu::@13 +menu::@7: scope:[menu] from menu::@14 menu::@6 + to:menu::@6 +menu::@13: scope:[menu] from menu::@6 + to:menu::@8 +menu::@8: scope:[menu] from menu::@13 menu::@15 + (void~) menu::$32 ← call form_control to:menu::@3 -menu::@11: scope:[menu] from menu::@4 - to:menu::@return -menu::@return: scope:[menu] from menu::@11 menu::@5 +menu::@14: scope:[menu] from + to:menu::@7 +menu::@15: scope:[menu] from + to:menu::@8 +menu::@16: scope:[menu] from + to:menu::@5 +menu::@return: scope:[menu] from menu::@5 return to:@return -menu::@12: scope:[menu] from - to:menu::@6 -menu::@13: scope:[menu] from - to:menu::@5 @21: scope:[] from @20 + (byte[25]) form_line_lo ← { fill( 25, 0) } + (byte[25]) form_line_hi ← { fill( 25, 0) } + (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) form_fields_cnt ← (byte/signed byte/word/signed word/dword/signed dword) 9 + (byte[]) form_fields_x ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 17 } + (byte[]) form_fields_y ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8 } + (byte[]) form_fields_val ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte) key_down_debounce ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) key_right_debounce ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (signed byte) FORM_CURSOR_BLINK ← (byte/signed byte/word/signed word/dword/signed dword) 40 + (signed word/signed byte/signed dword~) $9 ← (signed byte) FORM_CURSOR_BLINK / (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) form_cursor_count ← (signed word/signed byte/signed dword~) $9 + to:@22 +form_set_screen: scope:[form_set_screen] from + (byte*) form_set_screen::line ← (byte*) form_set_screen::screen + (byte) form_set_screen::y ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:form_set_screen::@1 +form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_screen::@1 + (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line + *((byte[25]) form_line_lo + (byte) form_set_screen::y) ← (byte~) form_set_screen::$0 + (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line + *((byte[25]) form_line_hi + (byte) form_set_screen::y) ← (byte~) form_set_screen::$1 + (byte*~) form_set_screen::$2 ← (byte*) form_set_screen::line + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) form_set_screen::line ← (byte*~) form_set_screen::$2 + (byte) form_set_screen::y ← ++ (byte) form_set_screen::y + (boolean~) form_set_screen::$3 ← (byte) form_set_screen::y != (byte/signed byte/word/signed word/dword/signed dword) 25 + if((boolean~) form_set_screen::$3) goto form_set_screen::@1 + to:form_set_screen::@2 +form_set_screen::@2: scope:[form_set_screen] from form_set_screen::@1 + to:form_set_screen::@return +form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@2 + return + to:@return +@22: scope:[] from @21 + to:@23 +form_field_ptr: scope:[form_field_ptr] from + (byte) form_field_ptr::y ← *((byte[]) form_fields_y + (byte) form_field_ptr::field_idx) + (byte*~) form_field_ptr::$0 ← ((byte*)) { *((byte[25]) form_line_hi + (byte) form_field_ptr::y), *((byte[25]) form_line_lo + (byte) form_field_ptr::y) } + (byte*) form_field_ptr::line ← (byte*~) form_field_ptr::$0 + (byte) form_field_ptr::x ← *((byte[]) form_fields_x + (byte) form_field_ptr::field_idx) + (byte*~) form_field_ptr::$1 ← (byte*) form_field_ptr::line + (byte) form_field_ptr::x + (byte*) form_field_ptr::field ← (byte*~) form_field_ptr::$1 + (byte*) form_field_ptr::return ← (byte*) form_field_ptr::field + to:form_field_ptr::@return +form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr form_field_ptr::@1 + (byte*) form_field_ptr::return ← (byte*) form_field_ptr::return + return (byte*) form_field_ptr::return + to:@return +form_field_ptr::@1: scope:[form_field_ptr] from + to:form_field_ptr::@return +@23: scope:[] from @22 + to:@24 +form_render_values: scope:[form_render_values] from + (byte) form_render_values::idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:form_render_values::@1 +form_render_values::@1: scope:[form_render_values] from form_render_values form_render_values::@1 + (byte*~) form_render_values::$0 ← call form_field_ptr (byte) form_render_values::idx + (byte*) form_render_values::field ← (byte*~) form_render_values::$0 + *((byte*) form_render_values::field) ← *((byte[]) print_hextab + *((byte[]) form_fields_val + (byte) form_render_values::idx)) + (byte) form_render_values::idx ← ++ (byte) form_render_values::idx + (boolean~) form_render_values::$1 ← (byte) form_render_values::idx < (byte) form_fields_cnt + if((boolean~) form_render_values::$1) goto form_render_values::@1 + to:form_render_values::@2 +form_render_values::@2: scope:[form_render_values] from form_render_values::@1 + to:form_render_values::@return +form_render_values::@return: scope:[form_render_values] from form_render_values::@2 + return + to:@return +@24: scope:[] from @23 + to:@25 +form_control: scope:[form_control] from + (byte*~) form_control::$0 ← call form_field_ptr (byte) form_field_idx + (byte*) form_control::field ← (byte*~) form_control::$0 + (signed byte) form_cursor_count ← -- (signed byte) form_cursor_count + (boolean~) form_control::$1 ← (signed byte) form_cursor_count < (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$2 ← ! (boolean~) form_control::$1 + if((boolean~) form_control::$2) goto form_control::@1 + to:form_control::@14 +form_control::@1: scope:[form_control] from form_control form_control::@14 + (signed word/signed byte/signed dword~) form_control::$3 ← (signed byte) FORM_CURSOR_BLINK / (byte/signed byte/word/signed word/dword/signed dword) 2 + (boolean~) form_control::$4 ← (signed byte) form_cursor_count < (signed word/signed byte/signed dword~) form_control::$3 + (boolean~) form_control::$5 ← ! (boolean~) form_control::$4 + if((boolean~) form_control::$5) goto form_control::@2 + to:form_control::@15 +form_control::@14: scope:[form_control] from form_control + (signed byte) form_cursor_count ← (signed byte) FORM_CURSOR_BLINK + to:form_control::@1 +form_control::@2: scope:[form_control] from form_control::@1 form_control::@16 + (byte~) form_control::$7 ← *((byte*) form_control::field) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field) ← (byte~) form_control::$7 + to:form_control::@3 +form_control::@15: scope:[form_control] from form_control::@1 + (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field) | (byte/word/signed word/dword/signed dword) 128 + *((byte*) form_control::field) ← (byte/word/dword~) form_control::$6 + to:form_control::@3 +form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 + (byte~) form_control::$8 ← call keyboard_key_pressed (byte) KEY_CRSR_DOWN + (byte) form_control::key_down ← (byte~) form_control::$8 + (boolean~) form_control::$9 ← (byte) form_control::key_down != (byte) key_down_debounce + (boolean~) form_control::$10 ← ! (boolean~) form_control::$9 + if((boolean~) form_control::$10) goto form_control::@4 + to:form_control::@17 +form_control::@16: scope:[form_control] from + to:form_control::@2 +form_control::@4: scope:[form_control] from form_control::@3 form_control::@5 + (byte~) form_control::$23 ← call keyboard_key_pressed (byte) KEY_CRSR_RIGHT + (byte) form_control::key_right ← (byte~) form_control::$23 + (boolean~) form_control::$24 ← (byte) form_control::key_right != (byte) key_right_debounce + (boolean~) form_control::$25 ← ! (boolean~) form_control::$24 + if((boolean~) form_control::$25) goto form_control::@10 + to:form_control::@24 +form_control::@17: scope:[form_control] from form_control::@3 + (byte) key_down_debounce ← (byte) form_control::key_down + (boolean~) form_control::$11 ← (byte) form_control::key_down != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$12 ← ! (boolean~) form_control::$11 + if((boolean~) form_control::$12) goto form_control::@5 + to:form_control::@18 +form_control::@5: scope:[form_control] from form_control::@17 form_control::@23 + to:form_control::@4 +form_control::@18: scope:[form_control] from form_control::@17 + (byte~) form_control::$13 ← *((byte*) form_control::field) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field) ← (byte~) form_control::$13 + (byte~) form_control::$14 ← call keyboard_key_pressed (byte) KEY_RSHIFT + (boolean~) form_control::$15 ← (byte~) form_control::$14 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$16 ← ! (boolean~) form_control::$15 + if((boolean~) form_control::$16) goto form_control::@6 + to:form_control::@19 +form_control::@6: scope:[form_control] from form_control::@18 form_control::@21 + (byte) form_field_idx ← -- (byte) form_field_idx + (boolean~) form_control::$19 ← (byte) form_field_idx == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$20 ← ! (boolean~) form_control::$19 + if((boolean~) form_control::$20) goto form_control::@9 + to:form_control::@22 +form_control::@19: scope:[form_control] from form_control::@18 + (byte) form_field_idx ← ++ (byte) form_field_idx + (boolean~) form_control::$17 ← (byte) form_field_idx == (byte) form_fields_cnt + (boolean~) form_control::$18 ← ! (boolean~) form_control::$17 + if((boolean~) form_control::$18) goto form_control::@7 + to:form_control::@20 +form_control::@7: scope:[form_control] from form_control::@19 form_control::@20 + to:form_control::@8 +form_control::@20: scope:[form_control] from form_control::@19 + (byte) form_field_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:form_control::@7 +form_control::@8: scope:[form_control] from form_control::@7 form_control::@9 + (signed word/signed byte/signed dword~) form_control::$22 ← (signed byte) FORM_CURSOR_BLINK / (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) form_cursor_count ← (signed word/signed byte/signed dword~) form_control::$22 + to:form_control::@return +form_control::@21: scope:[form_control] from + to:form_control::@6 +form_control::@9: scope:[form_control] from form_control::@22 form_control::@6 + to:form_control::@8 +form_control::@22: scope:[form_control] from form_control::@6 + (byte/signed word/word/dword/signed dword~) form_control::$21 ← (byte) form_fields_cnt - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) form_field_idx ← (byte/signed word/word/dword/signed dword~) form_control::$21 + to:form_control::@9 +form_control::@return: scope:[form_control] from form_control::@10 form_control::@8 + return + to:@return +form_control::@23: scope:[form_control] from + to:form_control::@5 +form_control::@10: scope:[form_control] from form_control::@11 form_control::@4 + to:form_control::@return +form_control::@24: scope:[form_control] from form_control::@4 + (byte) key_right_debounce ← (byte) form_control::key_right + (boolean~) form_control::$26 ← (byte) form_control::key_right != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$27 ← ! (boolean~) form_control::$26 + if((boolean~) form_control::$27) goto form_control::@11 + to:form_control::@25 +form_control::@11: scope:[form_control] from form_control::@13 form_control::@24 + to:form_control::@10 +form_control::@25: scope:[form_control] from form_control::@24 + (byte~) form_control::$28 ← call keyboard_key_pressed (byte) KEY_RSHIFT + (boolean~) form_control::$29 ← (byte~) form_control::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 + if((boolean~) form_control::$30) goto form_control::@12 + to:form_control::@26 +form_control::@12: scope:[form_control] from form_control::@25 form_control::@27 + (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((byte[]) form_fields_val + (byte) form_field_idx) - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/word/dword~) form_control::$34 + to:form_control::@13 +form_control::@26: scope:[form_control] from form_control::@25 + (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((byte[]) form_fields_val + (byte) form_field_idx) + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte[]) form_fields_val + (byte) form_field_idx) ← (byte/word/dword~) form_control::$32 + to:form_control::@13 +form_control::@13: scope:[form_control] from form_control::@12 form_control::@26 + *((byte*) form_control::field) ← *((byte[]) print_hextab + *((byte[]) form_fields_val + (byte) form_field_idx)) + to:form_control::@11 +form_control::@27: scope:[form_control] from + to:form_control::@12 +@25: scope:[] from @24 call main to:@end -@end: scope:[] from @21 +@end: scope:[] from @25 Removing unused procedure dtvSetCpuBankSegment1 Removing unused procedure print_str_ln @@ -2009,7 +2564,6 @@ Eliminating unused variable (byte*) CHARGEN and assignment [8] (byte*) CHARGEN Eliminating unused variable (byte*) SPRITES_XPOS and assignment [9] (byte*) SPRITES_XPOS ← ((byte*)) (word/dword/signed dword) 53248 Eliminating unused variable (byte*) SPRITES_YPOS and assignment [10] (byte*) SPRITES_YPOS ← ((byte*)) (word/dword/signed dword) 53249 Eliminating unused variable (byte*) SPRITES_XMSB and assignment [11] (byte*) SPRITES_XMSB ← ((byte*)) (word/dword/signed dword) 53264 -Eliminating unused variable (byte*) RASTER and assignment [12] (byte*) RASTER ← ((byte*)) (word/dword/signed dword) 53266 Eliminating unused variable (byte*) SPRITES_ENABLE and assignment [13] (byte*) SPRITES_ENABLE ← ((byte*)) (word/dword/signed dword) 53269 Eliminating unused variable (byte*) SPRITES_EXPAND_Y and assignment [14] (byte*) SPRITES_EXPAND_Y ← ((byte*)) (word/dword/signed dword) 53271 Eliminating unused variable (byte*) SPRITES_PRIORITY and assignment [15] (byte*) SPRITES_PRIORITY ← ((byte*)) (word/dword/signed dword) 53275 @@ -2071,84 +2625,86 @@ Eliminating unused variable (byte*) DTV_PLANEB_MODULO_HI and assignment [89] (by Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [90] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325 Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [95] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310 Eliminating unused variable - keeping the call (void~) print_str_lines::$4 -Eliminating unused variable (byte) KEY_DEL and assignment [131] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0 -Eliminating unused variable (byte) KEY_RETURN and assignment [132] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1 -Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [133] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2 -Eliminating unused variable (byte) KEY_F7 and assignment [134] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3 -Eliminating unused variable (byte) KEY_F1 and assignment [135] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4 -Eliminating unused variable (byte) KEY_F3 and assignment [136] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5 -Eliminating unused variable (byte) KEY_F5 and assignment [137] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6 -Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [138] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7 -Eliminating unused variable (byte) KEY_LSHIFT and assignment [146] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15 -Eliminating unused variable (byte) KEY_HOME and assignment [182] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51 -Eliminating unused variable (byte) KEY_RSHIFT and assignment [183] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52 -Eliminating unused variable (byte) KEY_CTRL and assignment [189] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58 -Eliminating unused variable (byte) KEY_COMMODORE and assignment [192] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 -Eliminating unused variable (byte) KEY_RUNSTOP and assignment [194] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 -Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [195] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +Eliminating unused variable (byte) KEY_DEL and assignment [132] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) KEY_RETURN and assignment [133] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte) KEY_F7 and assignment [135] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3 +Eliminating unused variable (byte) KEY_F1 and assignment [136] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4 +Eliminating unused variable (byte) KEY_F3 and assignment [137] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5 +Eliminating unused variable (byte) KEY_F5 and assignment [138] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6 +Eliminating unused variable (byte) KEY_LSHIFT and assignment [147] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15 +Eliminating unused variable (byte) KEY_HOME and assignment [183] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51 +Eliminating unused variable (byte) KEY_CTRL and assignment [190] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58 +Eliminating unused variable (byte) KEY_COMMODORE and assignment [193] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 +Eliminating unused variable (byte) KEY_RUNSTOP and assignment [195] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 +Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [196] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } Eliminating unused variable - keeping the call (void~) main::$0 Eliminating unused variable - keeping the call (void~) menu::$26 Eliminating unused variable - keeping the call (void~) menu::$27 Eliminating unused variable - keeping the call (void~) menu::$28 -Eliminating unused variable (byte) KEY_3 and assignment [58] (byte) KEY_3 ← (byte/signed byte/word/signed word/dword/signed dword) 8 -Eliminating unused variable (byte) KEY_W and assignment [59] (byte) KEY_W ← (byte/signed byte/word/signed word/dword/signed dword) 9 -Eliminating unused variable (byte) KEY_A and assignment [60] (byte) KEY_A ← (byte/signed byte/word/signed word/dword/signed dword) 10 -Eliminating unused variable (byte) KEY_4 and assignment [61] (byte) KEY_4 ← (byte/signed byte/word/signed word/dword/signed dword) 11 -Eliminating unused variable (byte) KEY_Z and assignment [62] (byte) KEY_Z ← (byte/signed byte/word/signed word/dword/signed dword) 12 -Eliminating unused variable (byte) KEY_S and assignment [63] (byte) KEY_S ← (byte/signed byte/word/signed word/dword/signed dword) 13 -Eliminating unused variable (byte) KEY_E and assignment [64] (byte) KEY_E ← (byte/signed byte/word/signed word/dword/signed dword) 14 -Eliminating unused variable (byte) KEY_5 and assignment [65] (byte) KEY_5 ← (byte/signed byte/word/signed word/dword/signed dword) 16 -Eliminating unused variable (byte) KEY_R and assignment [66] (byte) KEY_R ← (byte/signed byte/word/signed word/dword/signed dword) 17 -Eliminating unused variable (byte) KEY_D and assignment [67] (byte) KEY_D ← (byte/signed byte/word/signed word/dword/signed dword) 18 -Eliminating unused variable (byte) KEY_6 and assignment [68] (byte) KEY_6 ← (byte/signed byte/word/signed word/dword/signed dword) 19 -Eliminating unused variable (byte) KEY_C and assignment [69] (byte) KEY_C ← (byte/signed byte/word/signed word/dword/signed dword) 20 -Eliminating unused variable (byte) KEY_F and assignment [70] (byte) KEY_F ← (byte/signed byte/word/signed word/dword/signed dword) 21 -Eliminating unused variable (byte) KEY_T and assignment [71] (byte) KEY_T ← (byte/signed byte/word/signed word/dword/signed dword) 22 -Eliminating unused variable (byte) KEY_X and assignment [72] (byte) KEY_X ← (byte/signed byte/word/signed word/dword/signed dword) 23 -Eliminating unused variable (byte) KEY_7 and assignment [73] (byte) KEY_7 ← (byte/signed byte/word/signed word/dword/signed dword) 24 -Eliminating unused variable (byte) KEY_Y and assignment [74] (byte) KEY_Y ← (byte/signed byte/word/signed word/dword/signed dword) 25 -Eliminating unused variable (byte) KEY_G and assignment [75] (byte) KEY_G ← (byte/signed byte/word/signed word/dword/signed dword) 26 -Eliminating unused variable (byte) KEY_8 and assignment [76] (byte) KEY_8 ← (byte/signed byte/word/signed word/dword/signed dword) 27 -Eliminating unused variable (byte) KEY_B and assignment [77] (byte) KEY_B ← (byte/signed byte/word/signed word/dword/signed dword) 28 -Eliminating unused variable (byte) KEY_H and assignment [78] (byte) KEY_H ← (byte/signed byte/word/signed word/dword/signed dword) 29 -Eliminating unused variable (byte) KEY_U and assignment [79] (byte) KEY_U ← (byte/signed byte/word/signed word/dword/signed dword) 30 -Eliminating unused variable (byte) KEY_V and assignment [80] (byte) KEY_V ← (byte/signed byte/word/signed word/dword/signed dword) 31 -Eliminating unused variable (byte) KEY_9 and assignment [81] (byte) KEY_9 ← (byte/signed byte/word/signed word/dword/signed dword) 32 -Eliminating unused variable (byte) KEY_I and assignment [82] (byte) KEY_I ← (byte/signed byte/word/signed word/dword/signed dword) 33 -Eliminating unused variable (byte) KEY_J and assignment [83] (byte) KEY_J ← (byte/signed byte/word/signed word/dword/signed dword) 34 -Eliminating unused variable (byte) KEY_0 and assignment [84] (byte) KEY_0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 -Eliminating unused variable (byte) KEY_M and assignment [85] (byte) KEY_M ← (byte/signed byte/word/signed word/dword/signed dword) 36 -Eliminating unused variable (byte) KEY_K and assignment [86] (byte) KEY_K ← (byte/signed byte/word/signed word/dword/signed dword) 37 -Eliminating unused variable (byte) KEY_O and assignment [87] (byte) KEY_O ← (byte/signed byte/word/signed word/dword/signed dword) 38 -Eliminating unused variable (byte) KEY_N and assignment [88] (byte) KEY_N ← (byte/signed byte/word/signed word/dword/signed dword) 39 -Eliminating unused variable (byte) KEY_PLUS and assignment [89] (byte) KEY_PLUS ← (byte/signed byte/word/signed word/dword/signed dword) 40 -Eliminating unused variable (byte) KEY_P and assignment [90] (byte) KEY_P ← (byte/signed byte/word/signed word/dword/signed dword) 41 -Eliminating unused variable (byte) KEY_L and assignment [91] (byte) KEY_L ← (byte/signed byte/word/signed word/dword/signed dword) 42 -Eliminating unused variable (byte) KEY_MINUS and assignment [92] (byte) KEY_MINUS ← (byte/signed byte/word/signed word/dword/signed dword) 43 -Eliminating unused variable (byte) KEY_DOT and assignment [93] (byte) KEY_DOT ← (byte/signed byte/word/signed word/dword/signed dword) 44 -Eliminating unused variable (byte) KEY_COLON and assignment [94] (byte) KEY_COLON ← (byte/signed byte/word/signed word/dword/signed dword) 45 -Eliminating unused variable (byte) KEY_AT and assignment [95] (byte) KEY_AT ← (byte/signed byte/word/signed word/dword/signed dword) 46 -Eliminating unused variable (byte) KEY_COMMA and assignment [96] (byte) KEY_COMMA ← (byte/signed byte/word/signed word/dword/signed dword) 47 -Eliminating unused variable (byte) KEY_POUND and assignment [97] (byte) KEY_POUND ← (byte/signed byte/word/signed word/dword/signed dword) 48 -Eliminating unused variable (byte) KEY_ASTERISK and assignment [98] (byte) KEY_ASTERISK ← (byte/signed byte/word/signed word/dword/signed dword) 49 -Eliminating unused variable (byte) KEY_SEMICOLON and assignment [99] (byte) KEY_SEMICOLON ← (byte/signed byte/word/signed word/dword/signed dword) 50 -Eliminating unused variable (byte) KEY_EQUALS and assignment [100] (byte) KEY_EQUALS ← (byte/signed byte/word/signed word/dword/signed dword) 53 -Eliminating unused variable (byte) KEY_ARROW_UP and assignment [101] (byte) KEY_ARROW_UP ← (byte/signed byte/word/signed word/dword/signed dword) 54 -Eliminating unused variable (byte) KEY_SLASH and assignment [102] (byte) KEY_SLASH ← (byte/signed byte/word/signed word/dword/signed dword) 55 -Eliminating unused variable (byte) KEY_1 and assignment [103] (byte) KEY_1 ← (byte/signed byte/word/signed word/dword/signed dword) 56 -Eliminating unused variable (byte) KEY_ARROW_LEFT and assignment [104] (byte) KEY_ARROW_LEFT ← (byte/signed byte/word/signed word/dword/signed dword) 57 -Eliminating unused variable (byte) KEY_2 and assignment [105] (byte) KEY_2 ← (byte/signed byte/word/signed word/dword/signed dword) 59 -Eliminating unused variable (byte) KEY_Q and assignment [107] (byte) KEY_Q ← (byte/signed byte/word/signed word/dword/signed dword) 62 -Creating constant string variable for inline (const string) $9 " DTV GfxExplorer PRESET 8bpp pixel cell @" -Creating constant string variable for inline (const string) $10 " CONTROL PLANE A PLANE B VIC II @" -Creating constant string variable for inline (const string) $11 " bmm 0 patt p1 patt p2 screen s3 @" -Creating constant string variable for inline (const string) $12 " mcm 0 start 00 start 00 gfx g4 @" -Creating constant string variable for inline (const string) $13 " ecm 0 step 00 step 00 colors c5 @" -Creating constant string variable for inline (const string) $14 " hicol 0 mod 00 mod 00 bgcol0 00 @" -Creating constant string variable for inline (const string) $15 " line 0 bgcol1 00 @" -Creating constant string variable for inline (const string) $16 " colof 0 borof 0 bgcol2 00 @" -Creating constant string variable for inline (const string) $17 " chunk 0 overs 0 bgcol3 00 @" -Creating constant string variable for inline (const string) $18 "@" +Eliminating unused variable - keeping the call (void~) menu::$29 +Eliminating unused variable - keeping the call (void~) menu::$30 +Eliminating unused variable - keeping the call (void~) menu::$32 +Eliminating unused variable (byte) KEY_3 and assignment [62] (byte) KEY_3 ← (byte/signed byte/word/signed word/dword/signed dword) 8 +Eliminating unused variable (byte) KEY_W and assignment [63] (byte) KEY_W ← (byte/signed byte/word/signed word/dword/signed dword) 9 +Eliminating unused variable (byte) KEY_A and assignment [64] (byte) KEY_A ← (byte/signed byte/word/signed word/dword/signed dword) 10 +Eliminating unused variable (byte) KEY_4 and assignment [65] (byte) KEY_4 ← (byte/signed byte/word/signed word/dword/signed dword) 11 +Eliminating unused variable (byte) KEY_Z and assignment [66] (byte) KEY_Z ← (byte/signed byte/word/signed word/dword/signed dword) 12 +Eliminating unused variable (byte) KEY_S and assignment [67] (byte) KEY_S ← (byte/signed byte/word/signed word/dword/signed dword) 13 +Eliminating unused variable (byte) KEY_E and assignment [68] (byte) KEY_E ← (byte/signed byte/word/signed word/dword/signed dword) 14 +Eliminating unused variable (byte) KEY_5 and assignment [69] (byte) KEY_5 ← (byte/signed byte/word/signed word/dword/signed dword) 16 +Eliminating unused variable (byte) KEY_R and assignment [70] (byte) KEY_R ← (byte/signed byte/word/signed word/dword/signed dword) 17 +Eliminating unused variable (byte) KEY_D and assignment [71] (byte) KEY_D ← (byte/signed byte/word/signed word/dword/signed dword) 18 +Eliminating unused variable (byte) KEY_6 and assignment [72] (byte) KEY_6 ← (byte/signed byte/word/signed word/dword/signed dword) 19 +Eliminating unused variable (byte) KEY_C and assignment [73] (byte) KEY_C ← (byte/signed byte/word/signed word/dword/signed dword) 20 +Eliminating unused variable (byte) KEY_F and assignment [74] (byte) KEY_F ← (byte/signed byte/word/signed word/dword/signed dword) 21 +Eliminating unused variable (byte) KEY_T and assignment [75] (byte) KEY_T ← (byte/signed byte/word/signed word/dword/signed dword) 22 +Eliminating unused variable (byte) KEY_X and assignment [76] (byte) KEY_X ← (byte/signed byte/word/signed word/dword/signed dword) 23 +Eliminating unused variable (byte) KEY_7 and assignment [77] (byte) KEY_7 ← (byte/signed byte/word/signed word/dword/signed dword) 24 +Eliminating unused variable (byte) KEY_Y and assignment [78] (byte) KEY_Y ← (byte/signed byte/word/signed word/dword/signed dword) 25 +Eliminating unused variable (byte) KEY_G and assignment [79] (byte) KEY_G ← (byte/signed byte/word/signed word/dword/signed dword) 26 +Eliminating unused variable (byte) KEY_8 and assignment [80] (byte) KEY_8 ← (byte/signed byte/word/signed word/dword/signed dword) 27 +Eliminating unused variable (byte) KEY_B and assignment [81] (byte) KEY_B ← (byte/signed byte/word/signed word/dword/signed dword) 28 +Eliminating unused variable (byte) KEY_H and assignment [82] (byte) KEY_H ← (byte/signed byte/word/signed word/dword/signed dword) 29 +Eliminating unused variable (byte) KEY_U and assignment [83] (byte) KEY_U ← (byte/signed byte/word/signed word/dword/signed dword) 30 +Eliminating unused variable (byte) KEY_V and assignment [84] (byte) KEY_V ← (byte/signed byte/word/signed word/dword/signed dword) 31 +Eliminating unused variable (byte) KEY_9 and assignment [85] (byte) KEY_9 ← (byte/signed byte/word/signed word/dword/signed dword) 32 +Eliminating unused variable (byte) KEY_I and assignment [86] (byte) KEY_I ← (byte/signed byte/word/signed word/dword/signed dword) 33 +Eliminating unused variable (byte) KEY_J and assignment [87] (byte) KEY_J ← (byte/signed byte/word/signed word/dword/signed dword) 34 +Eliminating unused variable (byte) KEY_0 and assignment [88] (byte) KEY_0 ← (byte/signed byte/word/signed word/dword/signed dword) 35 +Eliminating unused variable (byte) KEY_M and assignment [89] (byte) KEY_M ← (byte/signed byte/word/signed word/dword/signed dword) 36 +Eliminating unused variable (byte) KEY_K and assignment [90] (byte) KEY_K ← (byte/signed byte/word/signed word/dword/signed dword) 37 +Eliminating unused variable (byte) KEY_O and assignment [91] (byte) KEY_O ← (byte/signed byte/word/signed word/dword/signed dword) 38 +Eliminating unused variable (byte) KEY_N and assignment [92] (byte) KEY_N ← (byte/signed byte/word/signed word/dword/signed dword) 39 +Eliminating unused variable (byte) KEY_PLUS and assignment [93] (byte) KEY_PLUS ← (byte/signed byte/word/signed word/dword/signed dword) 40 +Eliminating unused variable (byte) KEY_P and assignment [94] (byte) KEY_P ← (byte/signed byte/word/signed word/dword/signed dword) 41 +Eliminating unused variable (byte) KEY_L and assignment [95] (byte) KEY_L ← (byte/signed byte/word/signed word/dword/signed dword) 42 +Eliminating unused variable (byte) KEY_MINUS and assignment [96] (byte) KEY_MINUS ← (byte/signed byte/word/signed word/dword/signed dword) 43 +Eliminating unused variable (byte) KEY_DOT and assignment [97] (byte) KEY_DOT ← (byte/signed byte/word/signed word/dword/signed dword) 44 +Eliminating unused variable (byte) KEY_COLON and assignment [98] (byte) KEY_COLON ← (byte/signed byte/word/signed word/dword/signed dword) 45 +Eliminating unused variable (byte) KEY_AT and assignment [99] (byte) KEY_AT ← (byte/signed byte/word/signed word/dword/signed dword) 46 +Eliminating unused variable (byte) KEY_COMMA and assignment [100] (byte) KEY_COMMA ← (byte/signed byte/word/signed word/dword/signed dword) 47 +Eliminating unused variable (byte) KEY_POUND and assignment [101] (byte) KEY_POUND ← (byte/signed byte/word/signed word/dword/signed dword) 48 +Eliminating unused variable (byte) KEY_ASTERISK and assignment [102] (byte) KEY_ASTERISK ← (byte/signed byte/word/signed word/dword/signed dword) 49 +Eliminating unused variable (byte) KEY_SEMICOLON and assignment [103] (byte) KEY_SEMICOLON ← (byte/signed byte/word/signed word/dword/signed dword) 50 +Eliminating unused variable (byte) KEY_EQUALS and assignment [105] (byte) KEY_EQUALS ← (byte/signed byte/word/signed word/dword/signed dword) 53 +Eliminating unused variable (byte) KEY_ARROW_UP and assignment [106] (byte) KEY_ARROW_UP ← (byte/signed byte/word/signed word/dword/signed dword) 54 +Eliminating unused variable (byte) KEY_SLASH and assignment [107] (byte) KEY_SLASH ← (byte/signed byte/word/signed word/dword/signed dword) 55 +Eliminating unused variable (byte) KEY_1 and assignment [108] (byte) KEY_1 ← (byte/signed byte/word/signed word/dword/signed dword) 56 +Eliminating unused variable (byte) KEY_ARROW_LEFT and assignment [109] (byte) KEY_ARROW_LEFT ← (byte/signed byte/word/signed word/dword/signed dword) 57 +Eliminating unused variable (byte) KEY_2 and assignment [110] (byte) KEY_2 ← (byte/signed byte/word/signed word/dword/signed dword) 59 +Eliminating unused variable (byte) KEY_SPACE and assignment [111] (byte) KEY_SPACE ← (byte/signed byte/word/signed word/dword/signed dword) 60 +Eliminating unused variable (byte) KEY_Q and assignment [112] (byte) KEY_Q ← (byte/signed byte/word/signed word/dword/signed dword) 62 +Creating constant string variable for inline (const string) $10 "0123456789abcdef" +Creating constant string variable for inline (const string) $11 " DTV GfxExplorer PRESET 8bpp pixel cell @" +Creating constant string variable for inline (const string) $12 " CONTROL PLANE A PLANE B VIC II @" +Creating constant string variable for inline (const string) $13 " bmm 0 patt p1 patt p2 screen s3 @" +Creating constant string variable for inline (const string) $14 " mcm 0 start 00 start 00 gfx g4 @" +Creating constant string variable for inline (const string) $15 " ecm 0 step 00 step 00 colors c5 @" +Creating constant string variable for inline (const string) $16 " hicol 0 mod 00 mod 00 bgcol0 00 @" +Creating constant string variable for inline (const string) $17 " line 0 bgcol1 00 @" +Creating constant string variable for inline (const string) $18 " colof 0 borof 0 bgcol2 00 @" +Creating constant string variable for inline (const string) $19 " chunk 0 overs 0 bgcol3 00 @" +Creating constant string variable for inline (const string) $20 "@" Removing empty block print_str_lines::@6 Removing empty block print_str_lines::@3 Removing empty block print_str_lines::@7 @@ -2162,7 +2718,6 @@ Removing empty block @7 Removing empty block @8 Removing empty block @9 Removing empty block @10 -Removing empty block @11 Removing empty block @12 Removing empty block @13 Removing empty block @14 @@ -2176,12 +2731,23 @@ Removing empty block main::@4 Removing empty block main::@3 Removing empty block main::@5 Removing empty block main::@6 -Removing empty block menu::@9 -Removing empty block menu::@5 -Removing empty block menu::@10 Removing empty block menu::@11 +Removing empty block menu::@5 Removing empty block menu::@12 Removing empty block menu::@13 +Removing empty block menu::@14 +Removing empty block menu::@15 +Removing empty block menu::@16 +Removing empty block form_set_screen::@2 +Removing empty block @22 +Removing empty block form_field_ptr::@1 +Removing empty block @23 +Removing empty block form_render_values::@2 +Removing empty block @24 +Removing empty block form_control::@16 +Removing empty block form_control::@21 +Removing empty block form_control::@23 +Removing empty block form_control::@27 PROCEDURE MODIFY VARIABLE ANALYSIS print_str_lines modifies print_char_cursor print_str_lines modifies print_line_cursor @@ -2195,10 +2761,32 @@ print_set_screen modifies print_char_cursor main modifies print_screen main modifies print_line_cursor main modifies print_char_cursor +main modifies form_cursor_count +main modifies key_down_debounce +main modifies form_field_idx +main modifies key_right_debounce menu modifies print_screen menu modifies print_line_cursor menu modifies print_char_cursor +menu modifies form_cursor_count +menu modifies key_down_debounce +menu modifies form_field_idx +menu modifies key_right_debounce +form_control modifies form_cursor_count +form_control modifies key_down_debounce +form_control modifies form_field_idx +form_control modifies key_right_debounce +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... +Completing Phi functions... Completing Phi functions... Completing Phi functions... Completing Phi functions... @@ -2208,6 +2796,7 @@ Completing Phi functions... CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN @begin: scope:[] from + (byte*) RASTER#0 ← ((byte*)) (word/dword/signed dword) 53266 (byte*) BORDERCOL#0 ← ((byte*)) (word/dword/signed dword) 53280 (byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281 (byte*) VIC_CONTROL#0 ← ((byte*)) (word/dword/signed dword) 53265 @@ -2236,27 +2825,27 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@15 -print_str_lines: scope:[print_str_lines] from menu::@15 - (byte*) print_line_cursor#39 ← phi( menu::@15/(byte*) print_line_cursor#12 ) - (byte*) print_char_cursor#41 ← phi( menu::@15/(byte*) print_char_cursor#13 ) - (byte*) print_str_lines::str#4 ← phi( menu::@15/(byte*) print_str_lines::str#1 ) + to:@11 +print_str_lines: scope:[print_str_lines] from menu::@18 + (byte*) print_line_cursor#38 ← phi( menu::@18/(byte*) print_line_cursor#12 ) + (byte*) print_char_cursor#40 ← phi( menu::@18/(byte*) print_char_cursor#13 ) + (byte*) print_str_lines::str#4 ← phi( menu::@18/(byte*) print_str_lines::str#1 ) to:print_str_lines::@1 print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@11 - (byte*) print_line_cursor#31 ← phi( print_str_lines/(byte*) print_line_cursor#39 print_str_lines::@11/(byte*) print_line_cursor#1 ) - (byte*) print_char_cursor#33 ← phi( print_str_lines/(byte*) print_char_cursor#41 print_str_lines::@11/(byte*) print_char_cursor#2 ) + (byte*) print_line_cursor#31 ← phi( print_str_lines/(byte*) print_line_cursor#38 print_str_lines::@11/(byte*) print_line_cursor#1 ) + (byte*) print_char_cursor#33 ← phi( print_str_lines/(byte*) print_char_cursor#40 print_str_lines::@11/(byte*) print_char_cursor#2 ) (byte*) print_str_lines::str#2 ← phi( print_str_lines/(byte*) print_str_lines::str#4 print_str_lines::@11/(byte*) print_str_lines::str#5 ) (boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str#2) != (byte) '@' if((boolean~) print_str_lines::$0) goto print_str_lines::@2 to:print_str_lines::@return print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 - (byte*) print_line_cursor#50 ← phi( print_str_lines::@1/(byte*) print_line_cursor#31 ) - (byte*) print_char_cursor#42 ← phi( print_str_lines::@1/(byte*) print_char_cursor#33 ) + (byte*) print_line_cursor#51 ← phi( print_str_lines::@1/(byte*) print_line_cursor#31 ) + (byte*) print_char_cursor#41 ← phi( print_str_lines::@1/(byte*) print_char_cursor#33 ) (byte*) print_str_lines::str#6 ← phi( print_str_lines::@1/(byte*) print_str_lines::str#2 ) to:print_str_lines::@4 print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5 - (byte*) print_line_cursor#46 ← phi( print_str_lines::@2/(byte*) print_line_cursor#50 print_str_lines::@5/(byte*) print_line_cursor#40 ) - (byte*) print_char_cursor#31 ← phi( print_str_lines::@2/(byte*) print_char_cursor#42 print_str_lines::@5/(byte*) print_char_cursor#43 ) + (byte*) print_line_cursor#45 ← phi( print_str_lines::@2/(byte*) print_line_cursor#51 print_str_lines::@5/(byte*) print_line_cursor#39 ) + (byte*) print_char_cursor#31 ← phi( print_str_lines::@2/(byte*) print_char_cursor#41 print_str_lines::@5/(byte*) print_char_cursor#42 ) (byte*) print_str_lines::str#3 ← phi( print_str_lines::@2/(byte*) print_str_lines::str#6 print_str_lines::@5/(byte*) print_str_lines::str#7 ) (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 @@ -2265,15 +2854,15 @@ print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str if((boolean~) print_str_lines::$2) goto print_str_lines::@5 to:print_str_lines::@8 print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8 - (byte*) print_line_cursor#40 ← phi( print_str_lines::@4/(byte*) print_line_cursor#46 print_str_lines::@8/(byte*) print_line_cursor#47 ) - (byte*) print_char_cursor#43 ← phi( print_str_lines::@4/(byte*) print_char_cursor#31 print_str_lines::@8/(byte*) print_char_cursor#1 ) + (byte*) print_line_cursor#39 ← phi( print_str_lines::@4/(byte*) print_line_cursor#45 print_str_lines::@8/(byte*) print_line_cursor#46 ) + (byte*) print_char_cursor#42 ← phi( print_str_lines::@4/(byte*) print_char_cursor#31 print_str_lines::@8/(byte*) print_char_cursor#1 ) (byte*) print_str_lines::str#7 ← phi( print_str_lines::@4/(byte*) print_str_lines::str#0 print_str_lines::@8/(byte*) print_str_lines::str#8 ) (byte) print_str_lines::ch#1 ← phi( print_str_lines::@4/(byte) print_str_lines::ch#0 print_str_lines::@8/(byte) print_str_lines::ch#2 ) (boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch#1 != (byte) '@' if((boolean~) print_str_lines::$3) goto print_str_lines::@4 to:print_str_lines::@9 print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4 - (byte*) print_line_cursor#47 ← phi( print_str_lines::@4/(byte*) print_line_cursor#46 ) + (byte*) print_line_cursor#46 ← phi( print_str_lines::@4/(byte*) print_line_cursor#45 ) (byte*) print_str_lines::str#8 ← phi( print_str_lines::@4/(byte*) print_str_lines::str#0 ) (byte*) print_char_cursor#17 ← phi( print_str_lines::@4/(byte*) print_char_cursor#31 ) (byte) print_str_lines::ch#2 ← phi( print_str_lines::@4/(byte) print_str_lines::ch#0 ) @@ -2282,8 +2871,8 @@ print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4 to:print_str_lines::@5 print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5 (byte*) print_str_lines::str#9 ← phi( print_str_lines::@5/(byte*) print_str_lines::str#7 ) - (byte*) print_char_cursor#32 ← phi( print_str_lines::@5/(byte*) print_char_cursor#43 ) - (byte*) print_line_cursor#30 ← phi( print_str_lines::@5/(byte*) print_line_cursor#40 ) + (byte*) print_char_cursor#32 ← phi( print_str_lines::@5/(byte*) print_char_cursor#42 ) + (byte*) print_line_cursor#30 ← phi( print_str_lines::@5/(byte*) print_line_cursor#39 ) call print_ln param-assignment to:print_str_lines::@11 print_str_lines::@11: scope:[print_str_lines] from print_str_lines::@9 @@ -2323,8 +2912,14 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#21 return to:@return -print_cls: scope:[print_cls] from menu::@14 - (byte*) print_screen#8 ← phi( menu::@14/(byte*) print_screen#5 ) +@11: scope:[] from @1 + (byte*) print_char_cursor#55 ← phi( @1/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#55 ← phi( @1/(byte*) print_line_cursor#0 ) + (byte*) print_screen#35 ← phi( @1/(byte*) print_screen#0 ) + (byte[]) print_hextab#0 ← (const string) $10 + to:@15 +print_cls: scope:[print_cls] from menu::@17 + (byte*) print_screen#8 ← phi( menu::@17/(byte*) print_screen#5 ) (byte*) print_cls::sc#0 ← (byte*) print_screen#8 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_cls::@1 @@ -2348,8 +2943,8 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 (byte*) print_char_cursor#7 ← (byte*) print_char_cursor#22 return to:@return -print_set_screen: scope:[print_set_screen] from menu::@8 - (byte*) print_set_screen::screen#1 ← phi( menu::@8/(byte*) print_set_screen::screen#0 ) +print_set_screen: scope:[print_set_screen] from menu::@10 + (byte*) print_set_screen::screen#1 ← phi( menu::@10/(byte*) print_set_screen::screen#0 ) (byte*) print_screen#1 ← (byte*) print_set_screen::screen#1 (byte*) print_line_cursor#7 ← (byte*) print_screen#1 (byte*) print_char_cursor#8 ← (byte*) print_line_cursor#7 @@ -2363,11 +2958,13 @@ print_set_screen::@return: scope:[print_set_screen] from print_set_screen (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#23 return to:@return -@15: scope:[] from @1 - (byte*) print_char_cursor#49 ← phi( @1/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#48 ← phi( @1/(byte*) print_line_cursor#0 ) - (byte*) print_screen#29 ← phi( @1/(byte*) print_screen#0 ) - (byte) KEY_SPACE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 60 +@15: scope:[] from @11 + (byte*) print_char_cursor#52 ← phi( @11/(byte*) print_char_cursor#55 ) + (byte*) print_line_cursor#52 ← phi( @11/(byte*) print_line_cursor#55 ) + (byte*) print_screen#31 ← phi( @11/(byte*) print_screen#35 ) + (byte) KEY_CRSR_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) KEY_CRSR_DOWN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) KEY_RSHIFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 52 (byte[8]) keyboard_matrix_row_bitmask#0 ← { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } (byte[]) keyboard_matrix_col_bitmask#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } to:@20 @@ -2383,11 +2980,11 @@ 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 -keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@4 - (byte) keyboard_key_pressed::key#1 ← phi( menu::@4/(byte) keyboard_key_pressed::key#0 ) - (byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key#1 & (byte/signed byte/word/signed word/dword/signed dword) 7 +keyboard_key_pressed: scope:[keyboard_key_pressed] from form_control::@18 form_control::@25 form_control::@3 form_control::@4 + (byte) keyboard_key_pressed::key#4 ← phi( form_control::@18/(byte) keyboard_key_pressed::key#2 form_control::@25/(byte) keyboard_key_pressed::key#3 form_control::@3/(byte) keyboard_key_pressed::key#0 form_control::@4/(byte) keyboard_key_pressed::key#1 ) + (byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 (byte) keyboard_key_pressed::colidx#0 ← (byte~) keyboard_key_pressed::$0 - (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key#1 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) keyboard_key_pressed::rowidx#0 ← (byte~) keyboard_key_pressed::$1 (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 call keyboard_matrix_read param-assignment @@ -2401,65 +2998,102 @@ keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_presse (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3 to:keyboard_key_pressed::@return keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2 - (byte) keyboard_key_pressed::return#3 ← phi( keyboard_key_pressed::@2/(byte) keyboard_key_pressed::return#0 ) - (byte) keyboard_key_pressed::return#1 ← (byte) keyboard_key_pressed::return#3 + (byte) keyboard_key_pressed::return#6 ← phi( keyboard_key_pressed::@2/(byte) keyboard_key_pressed::return#0 ) + (byte) keyboard_key_pressed::return#1 ← (byte) keyboard_key_pressed::return#6 return to:@return -main: scope:[main] from @21 - (byte*) print_char_cursor#44 ← phi( @21/(byte*) print_char_cursor#40 ) - (byte*) print_line_cursor#41 ← phi( @21/(byte*) print_line_cursor#38 ) - (byte*) print_screen#23 ← phi( @21/(byte*) print_screen#22 ) +main: scope:[main] from @25 + (byte) form_fields_cnt#34 ← phi( @25/(byte) form_fields_cnt#38 ) + (byte) key_right_debounce#25 ← phi( @25/(byte) key_right_debounce#24 ) + (byte) form_field_idx#33 ← phi( @25/(byte) form_field_idx#32 ) + (byte) key_down_debounce#25 ← phi( @25/(byte) key_down_debounce#24 ) + (signed byte) form_cursor_count#27 ← phi( @25/(signed byte) form_cursor_count#26 ) + (byte*) print_char_cursor#43 ← phi( @25/(byte*) print_char_cursor#39 ) + (byte*) print_line_cursor#40 ← phi( @25/(byte*) print_line_cursor#37 ) + (byte*) print_screen#22 ← phi( @25/(byte*) print_screen#21 ) asm { sei } *((byte*) DTV_FEATURE#0) ← (byte) DTV_FEATURE_ENABLE#0 to:main::@1 main::@1: scope:[main] from main main::@7 - (byte*) print_char_cursor#36 ← phi( main/(byte*) print_char_cursor#44 main::@7/(byte*) print_char_cursor#10 ) - (byte*) print_line_cursor#34 ← phi( main/(byte*) print_line_cursor#41 main::@7/(byte*) print_line_cursor#9 ) - (byte*) print_screen#18 ← phi( main/(byte*) print_screen#23 main::@7/(byte*) print_screen#3 ) + (byte) form_fields_cnt#32 ← phi( main/(byte) form_fields_cnt#34 main::@7/(byte) form_fields_cnt#35 ) + (byte) key_right_debounce#16 ← phi( main/(byte) key_right_debounce#25 main::@7/(byte) key_right_debounce#0 ) + (byte) form_field_idx#24 ← phi( main/(byte) form_field_idx#33 main::@7/(byte) form_field_idx#0 ) + (byte) key_down_debounce#16 ← phi( main/(byte) key_down_debounce#25 main::@7/(byte) key_down_debounce#0 ) + (signed byte) form_cursor_count#19 ← phi( main/(signed byte) form_cursor_count#27 main::@7/(signed byte) form_cursor_count#0 ) + (byte*) print_char_cursor#36 ← phi( main/(byte*) print_char_cursor#43 main::@7/(byte*) print_char_cursor#10 ) + (byte*) print_line_cursor#34 ← phi( main/(byte*) print_line_cursor#40 main::@7/(byte*) print_line_cursor#9 ) + (byte*) print_screen#18 ← phi( main/(byte*) print_screen#22 main::@7/(byte*) print_screen#3 ) if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 + (byte) form_fields_cnt#29 ← phi( main::@1/(byte) form_fields_cnt#32 ) + (byte) key_right_debounce#15 ← phi( main::@1/(byte) key_right_debounce#16 ) + (byte) form_field_idx#23 ← phi( main::@1/(byte) form_field_idx#24 ) + (byte) key_down_debounce#15 ← phi( main::@1/(byte) key_down_debounce#16 ) + (signed byte) form_cursor_count#18 ← phi( main::@1/(signed byte) form_cursor_count#19 ) (byte*) print_char_cursor#35 ← phi( main::@1/(byte*) print_char_cursor#36 ) (byte*) print_line_cursor#33 ← phi( main::@1/(byte*) print_line_cursor#34 ) (byte*) print_screen#17 ← phi( main::@1/(byte*) print_screen#18 ) call menu param-assignment to:main::@7 main::@7: scope:[main] from main::@2 + (byte) form_fields_cnt#35 ← phi( main::@2/(byte) form_fields_cnt#29 ) + (byte) key_right_debounce#8 ← phi( main::@2/(byte) key_right_debounce#3 ) + (byte) form_field_idx#11 ← phi( main::@2/(byte) form_field_idx#3 ) + (byte) key_down_debounce#8 ← phi( main::@2/(byte) key_down_debounce#3 ) + (signed byte) form_cursor_count#10 ← phi( main::@2/(signed byte) form_cursor_count#3 ) (byte*) print_char_cursor#24 ← phi( main::@2/(byte*) print_char_cursor#15 ) (byte*) print_line_cursor#23 ← phi( main::@2/(byte*) print_line_cursor#14 ) (byte*) print_screen#12 ← phi( main::@2/(byte*) print_screen#6 ) (byte*) print_screen#3 ← (byte*) print_screen#12 (byte*) print_line_cursor#9 ← (byte*) print_line_cursor#23 (byte*) print_char_cursor#10 ← (byte*) print_char_cursor#24 + (signed byte) form_cursor_count#0 ← (signed byte) form_cursor_count#10 + (byte) key_down_debounce#0 ← (byte) key_down_debounce#8 + (byte) form_field_idx#0 ← (byte) form_field_idx#11 + (byte) key_right_debounce#0 ← (byte) key_right_debounce#8 to:main::@1 main::@return: scope:[main] from main::@1 + (byte) key_right_debounce#9 ← phi( main::@1/(byte) key_right_debounce#16 ) + (byte) form_field_idx#12 ← phi( main::@1/(byte) form_field_idx#24 ) + (byte) key_down_debounce#9 ← phi( main::@1/(byte) key_down_debounce#16 ) + (signed byte) form_cursor_count#11 ← phi( main::@1/(signed byte) form_cursor_count#19 ) (byte*) print_char_cursor#25 ← phi( main::@1/(byte*) print_char_cursor#36 ) (byte*) print_line_cursor#24 ← phi( main::@1/(byte*) print_line_cursor#34 ) (byte*) print_screen#13 ← phi( main::@1/(byte*) print_screen#18 ) (byte*) print_screen#4 ← (byte*) print_screen#13 (byte*) print_line_cursor#10 ← (byte*) print_line_cursor#24 (byte*) print_char_cursor#11 ← (byte*) print_char_cursor#25 + (signed byte) form_cursor_count#1 ← (signed byte) form_cursor_count#11 + (byte) key_down_debounce#1 ← (byte) key_down_debounce#9 + (byte) form_field_idx#1 ← (byte) form_field_idx#12 + (byte) key_right_debounce#1 ← (byte) key_right_debounce#9 return to:@return @20: scope:[] from @15 - (byte*) print_char_cursor#48 ← phi( @15/(byte*) print_char_cursor#49 ) - (byte*) print_line_cursor#45 ← phi( @15/(byte*) print_line_cursor#48 ) - (byte*) print_screen#28 ← phi( @15/(byte*) print_screen#29 ) - (string~) $0 ← (const string) $9 + (const string) $10 - (string~) $1 ← (string~) $0 + (const string) $11 - (string~) $2 ← (string~) $1 + (const string) $12 - (string~) $3 ← (string~) $2 + (const string) $13 - (string~) $4 ← (string~) $3 + (const string) $14 - (string~) $5 ← (string~) $4 + (const string) $15 - (string~) $6 ← (string~) $5 + (const string) $16 - (string~) $7 ← (string~) $6 + (const string) $17 - (string~) $8 ← (string~) $7 + (const string) $18 + (byte*) print_char_cursor#51 ← phi( @15/(byte*) print_char_cursor#52 ) + (byte*) print_line_cursor#50 ← phi( @15/(byte*) print_line_cursor#52 ) + (byte*) print_screen#30 ← phi( @15/(byte*) print_screen#31 ) + (string~) $0 ← (const string) $11 + (const string) $12 + (string~) $1 ← (string~) $0 + (const string) $13 + (string~) $2 ← (string~) $1 + (const string) $14 + (string~) $3 ← (string~) $2 + (const string) $15 + (string~) $4 ← (string~) $3 + (const string) $16 + (string~) $5 ← (string~) $4 + (const string) $17 + (string~) $6 ← (string~) $5 + (const string) $18 + (string~) $7 ← (string~) $6 + (const string) $19 + (string~) $8 ← (string~) $7 + (const string) $20 (byte[]) MENU_TEXT#0 ← (string~) $8 to:@21 menu: scope:[menu] from main::@2 - (byte*) print_char_cursor#52 ← phi( main::@2/(byte*) print_char_cursor#35 ) - (byte*) print_line_cursor#52 ← phi( main::@2/(byte*) print_line_cursor#33 ) - (byte*) print_screen#33 ← phi( main::@2/(byte*) print_screen#17 ) + (byte) form_fields_cnt#27 ← phi( main::@2/(byte) form_fields_cnt#29 ) + (byte) key_right_debounce#60 ← phi( main::@2/(byte) key_right_debounce#15 ) + (byte) form_field_idx#62 ← phi( main::@2/(byte) form_field_idx#23 ) + (byte) key_down_debounce#60 ← phi( main::@2/(byte) key_down_debounce#15 ) + (signed byte) form_cursor_count#53 ← phi( main::@2/(signed byte) form_cursor_count#18 ) + (byte*) print_char_cursor#56 ← phi( main::@2/(byte*) print_char_cursor#35 ) + (byte*) print_line_cursor#56 ← phi( main::@2/(byte*) print_line_cursor#33 ) + (byte*) print_screen#36 ← phi( main::@2/(byte*) print_screen#17 ) (byte*) menu::SCREEN#0 ← ((byte*)) (word/dword/signed dword) 32768 (byte*) menu::CHARSET#0 ← ((byte*)) (word/dword/signed dword) 38912 (dword~) menu::$0 ← ((dword)) (byte*) menu::CHARSET#0 @@ -2497,145 +3131,632 @@ menu: scope:[menu] from main::@2 (byte) menu::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:menu::@1 menu::@1: scope:[menu] from menu menu::@1 - (byte*) print_char_cursor#51 ← phi( menu/(byte*) print_char_cursor#52 menu::@1/(byte*) print_char_cursor#51 ) - (byte*) print_line_cursor#51 ← phi( menu/(byte*) print_line_cursor#52 menu::@1/(byte*) print_line_cursor#51 ) - (byte*) print_screen#32 ← phi( menu/(byte*) print_screen#33 menu::@1/(byte*) print_screen#32 ) + (byte) form_fields_cnt#25 ← phi( menu/(byte) form_fields_cnt#27 menu::@1/(byte) form_fields_cnt#25 ) + (byte) key_right_debounce#59 ← phi( menu/(byte) key_right_debounce#60 menu::@1/(byte) key_right_debounce#59 ) + (byte) form_field_idx#61 ← phi( menu/(byte) form_field_idx#62 menu::@1/(byte) form_field_idx#61 ) + (byte) key_down_debounce#59 ← phi( menu/(byte) key_down_debounce#60 menu::@1/(byte) key_down_debounce#59 ) + (signed byte) form_cursor_count#52 ← phi( menu/(signed byte) form_cursor_count#53 menu::@1/(signed byte) form_cursor_count#52 ) + (byte*) print_char_cursor#53 ← phi( menu/(byte*) print_char_cursor#56 menu::@1/(byte*) print_char_cursor#53 ) + (byte*) print_line_cursor#53 ← phi( menu/(byte*) print_line_cursor#56 menu::@1/(byte*) print_line_cursor#53 ) + (byte*) print_screen#32 ← phi( menu/(byte*) print_screen#36 menu::@1/(byte*) print_screen#32 ) (byte) menu::i#2 ← phi( menu/(byte) menu::i#0 menu::@1/(byte) menu::i#1 ) *((byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) (byte) menu::i#1 ← ++ (byte) menu::i#2 (boolean~) menu::$23 ← (byte) menu::i#1 != (byte/signed byte/word/signed word/dword/signed dword) 16 if((boolean~) menu::$23) goto menu::@1 - to:menu::@7 -menu::@7: scope:[menu] from menu::@1 - (byte*) print_char_cursor#50 ← phi( menu::@1/(byte*) print_char_cursor#51 ) - (byte*) print_line_cursor#49 ← phi( menu::@1/(byte*) print_line_cursor#51 ) - (byte*) print_screen#30 ← phi( menu::@1/(byte*) print_screen#32 ) + to:menu::@9 +menu::@9: scope:[menu] from menu::@1 + (byte) form_fields_cnt#23 ← phi( menu::@1/(byte) form_fields_cnt#25 ) + (byte) key_right_debounce#58 ← phi( menu::@1/(byte) key_right_debounce#59 ) + (byte) form_field_idx#60 ← phi( menu::@1/(byte) form_field_idx#61 ) + (byte) key_down_debounce#58 ← phi( menu::@1/(byte) key_down_debounce#59 ) + (signed byte) form_cursor_count#51 ← phi( menu::@1/(signed byte) form_cursor_count#52 ) + (byte*) print_char_cursor#48 ← phi( menu::@1/(byte*) print_char_cursor#53 ) + (byte*) print_line_cursor#47 ← phi( menu::@1/(byte*) print_line_cursor#53 ) + (byte*) print_screen#27 ← phi( menu::@1/(byte*) print_screen#32 ) (byte*) menu::c#0 ← (byte*) COLS#0 to:menu::@2 -menu::@2: scope:[menu] from menu::@2 menu::@7 - (byte*) print_char_cursor#45 ← phi( menu::@2/(byte*) print_char_cursor#45 menu::@7/(byte*) print_char_cursor#50 ) - (byte*) print_line_cursor#42 ← phi( menu::@2/(byte*) print_line_cursor#42 menu::@7/(byte*) print_line_cursor#49 ) - (byte*) print_screen#24 ← phi( menu::@2/(byte*) print_screen#24 menu::@7/(byte*) print_screen#30 ) - (byte*) menu::c#2 ← phi( menu::@2/(byte*) menu::c#1 menu::@7/(byte*) menu::c#0 ) +menu::@2: scope:[menu] from menu::@2 menu::@9 + (byte) form_fields_cnt#20 ← phi( menu::@2/(byte) form_fields_cnt#20 menu::@9/(byte) form_fields_cnt#23 ) + (byte) key_right_debounce#57 ← phi( menu::@2/(byte) key_right_debounce#57 menu::@9/(byte) key_right_debounce#58 ) + (byte) form_field_idx#57 ← phi( menu::@2/(byte) form_field_idx#57 menu::@9/(byte) form_field_idx#60 ) + (byte) key_down_debounce#57 ← phi( menu::@2/(byte) key_down_debounce#57 menu::@9/(byte) key_down_debounce#58 ) + (signed byte) form_cursor_count#50 ← phi( menu::@2/(signed byte) form_cursor_count#50 menu::@9/(signed byte) form_cursor_count#51 ) + (byte*) print_char_cursor#44 ← phi( menu::@2/(byte*) print_char_cursor#44 menu::@9/(byte*) print_char_cursor#48 ) + (byte*) print_line_cursor#41 ← phi( menu::@2/(byte*) print_line_cursor#41 menu::@9/(byte*) print_line_cursor#47 ) + (byte*) print_screen#23 ← phi( menu::@2/(byte*) print_screen#23 menu::@9/(byte*) print_screen#27 ) + (byte*) menu::c#2 ← phi( menu::@2/(byte*) menu::c#1 menu::@9/(byte*) menu::c#0 ) *((byte*) menu::c#2) ← (byte) LIGHT_GREEN#0 (byte*) menu::c#1 ← ++ (byte*) menu::c#2 (byte*~) menu::$24 ← (byte*) COLS#0 + (word/signed word/dword/signed dword) 1000 (boolean~) menu::$25 ← (byte*) menu::c#1 != (byte*~) menu::$24 if((boolean~) menu::$25) goto menu::@2 - to:menu::@8 -menu::@8: scope:[menu] from menu::@2 - (byte*) print_char_cursor#37 ← phi( menu::@2/(byte*) print_char_cursor#45 ) - (byte*) print_line_cursor#35 ← phi( menu::@2/(byte*) print_line_cursor#42 ) - (byte*) print_screen#19 ← phi( menu::@2/(byte*) print_screen#24 ) + to:menu::@10 +menu::@10: scope:[menu] from menu::@2 + (byte) form_fields_cnt#18 ← phi( menu::@2/(byte) form_fields_cnt#20 ) + (byte) key_right_debounce#55 ← phi( menu::@2/(byte) key_right_debounce#57 ) + (byte) form_field_idx#55 ← phi( menu::@2/(byte) form_field_idx#57 ) + (byte) key_down_debounce#56 ← phi( menu::@2/(byte) key_down_debounce#57 ) + (signed byte) form_cursor_count#49 ← phi( menu::@2/(signed byte) form_cursor_count#50 ) + (byte*) print_char_cursor#37 ← phi( menu::@2/(byte*) print_char_cursor#44 ) + (byte*) print_line_cursor#35 ← phi( menu::@2/(byte*) print_line_cursor#41 ) + (byte*) print_screen#19 ← phi( menu::@2/(byte*) print_screen#23 ) *((byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 *((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) print_set_screen::screen#0 ← (byte*) menu::SCREEN#0 call print_set_screen param-assignment - to:menu::@14 -menu::@14: scope:[menu] from menu::@8 - (byte*) print_char_cursor#26 ← phi( menu::@8/(byte*) print_char_cursor#9 ) - (byte*) print_line_cursor#25 ← phi( menu::@8/(byte*) print_line_cursor#8 ) - (byte*) print_screen#14 ← phi( menu::@8/(byte*) print_screen#2 ) + to:menu::@17 +menu::@17: scope:[menu] from menu::@10 + (byte) form_fields_cnt#15 ← phi( menu::@10/(byte) form_fields_cnt#18 ) + (byte) key_right_debounce#52 ← phi( menu::@10/(byte) key_right_debounce#55 ) + (byte) form_field_idx#52 ← phi( menu::@10/(byte) form_field_idx#55 ) + (byte) key_down_debounce#55 ← phi( menu::@10/(byte) key_down_debounce#56 ) + (signed byte) form_cursor_count#46 ← phi( menu::@10/(signed byte) form_cursor_count#49 ) + (byte*) print_char_cursor#26 ← phi( menu::@10/(byte*) print_char_cursor#9 ) + (byte*) print_line_cursor#25 ← phi( menu::@10/(byte*) print_line_cursor#8 ) + (byte*) print_screen#14 ← phi( menu::@10/(byte*) print_screen#2 ) (byte*) print_screen#5 ← (byte*) print_screen#14 (byte*) print_line_cursor#11 ← (byte*) print_line_cursor#25 (byte*) print_char_cursor#12 ← (byte*) print_char_cursor#26 call print_cls param-assignment - to:menu::@15 -menu::@15: scope:[menu] from menu::@14 - (byte*) print_screen#31 ← phi( menu::@14/(byte*) print_screen#5 ) - (byte*) print_char_cursor#27 ← phi( menu::@14/(byte*) print_char_cursor#7 ) - (byte*) print_line_cursor#26 ← phi( menu::@14/(byte*) print_line_cursor#6 ) + to:menu::@18 +menu::@18: scope:[menu] from menu::@17 + (byte) form_fields_cnt#13 ← phi( menu::@17/(byte) form_fields_cnt#15 ) + (byte) key_right_debounce#49 ← phi( menu::@17/(byte) key_right_debounce#52 ) + (byte) form_field_idx#50 ← phi( menu::@17/(byte) form_field_idx#52 ) + (byte) key_down_debounce#52 ← phi( menu::@17/(byte) key_down_debounce#55 ) + (signed byte) form_cursor_count#43 ← phi( menu::@17/(signed byte) form_cursor_count#46 ) + (byte*) print_screen#37 ← phi( menu::@17/(byte*) print_screen#5 ) + (byte*) print_char_cursor#27 ← phi( menu::@17/(byte*) print_char_cursor#7 ) + (byte*) print_line_cursor#26 ← phi( menu::@17/(byte*) print_line_cursor#6 ) (byte*) print_line_cursor#12 ← (byte*) print_line_cursor#26 (byte*) print_char_cursor#13 ← (byte*) print_char_cursor#27 (byte*) print_str_lines::str#1 ← (byte[]) MENU_TEXT#0 call print_str_lines param-assignment - to:menu::@16 -menu::@16: scope:[menu] from menu::@15 - (byte*) print_screen#25 ← phi( menu::@15/(byte*) print_screen#31 ) - (byte*) print_line_cursor#27 ← phi( menu::@15/(byte*) print_line_cursor#2 ) - (byte*) print_char_cursor#28 ← phi( menu::@15/(byte*) print_char_cursor#3 ) + to:menu::@19 +menu::@19: scope:[menu] from menu::@18 + (byte) form_fields_cnt#11 ← phi( menu::@18/(byte) form_fields_cnt#13 ) + (byte) key_right_debounce#44 ← phi( menu::@18/(byte) key_right_debounce#49 ) + (byte) form_field_idx#47 ← phi( menu::@18/(byte) form_field_idx#50 ) + (byte) key_down_debounce#46 ← phi( menu::@18/(byte) key_down_debounce#52 ) + (signed byte) form_cursor_count#39 ← phi( menu::@18/(signed byte) form_cursor_count#43 ) + (byte*) print_screen#33 ← phi( menu::@18/(byte*) print_screen#37 ) + (byte*) print_line_cursor#27 ← phi( menu::@18/(byte*) print_line_cursor#2 ) + (byte*) print_char_cursor#28 ← phi( menu::@18/(byte*) print_char_cursor#3 ) (byte*) print_char_cursor#14 ← (byte*) print_char_cursor#28 (byte*) print_line_cursor#13 ← (byte*) print_line_cursor#27 + (byte*) form_set_screen::screen#0 ← (byte*) menu::SCREEN#0 + call form_set_screen param-assignment + to:menu::@20 +menu::@20: scope:[menu] from menu::@19 + (byte) form_fields_cnt#9 ← phi( menu::@19/(byte) form_fields_cnt#11 ) + (byte) key_right_debounce#36 ← phi( menu::@19/(byte) key_right_debounce#44 ) + (byte) form_field_idx#42 ← phi( menu::@19/(byte) form_field_idx#47 ) + (byte) key_down_debounce#38 ← phi( menu::@19/(byte) key_down_debounce#46 ) + (signed byte) form_cursor_count#34 ← phi( menu::@19/(signed byte) form_cursor_count#39 ) + (byte*) print_char_cursor#49 ← phi( menu::@19/(byte*) print_char_cursor#14 ) + (byte*) print_line_cursor#48 ← phi( menu::@19/(byte*) print_line_cursor#13 ) + (byte*) print_screen#28 ← phi( menu::@19/(byte*) print_screen#33 ) + call form_render_values param-assignment + to:menu::@21 +menu::@21: scope:[menu] from menu::@20 + (byte) form_fields_cnt#36 ← phi( menu::@20/(byte) form_fields_cnt#9 ) + (byte) key_right_debounce#26 ← phi( menu::@20/(byte) key_right_debounce#36 ) + (byte) form_field_idx#34 ← phi( menu::@20/(byte) form_field_idx#42 ) + (byte) key_down_debounce#26 ← phi( menu::@20/(byte) key_down_debounce#38 ) + (signed byte) form_cursor_count#28 ← phi( menu::@20/(signed byte) form_cursor_count#34 ) + (byte*) print_char_cursor#45 ← phi( menu::@20/(byte*) print_char_cursor#49 ) + (byte*) print_line_cursor#42 ← phi( menu::@20/(byte*) print_line_cursor#48 ) + (byte*) print_screen#24 ← phi( menu::@20/(byte*) print_screen#28 ) to:menu::@3 -menu::@3: scope:[menu] from menu::@16 menu::@6 - (byte*) print_char_cursor#39 ← phi( menu::@16/(byte*) print_char_cursor#14 menu::@6/(byte*) print_char_cursor#46 ) - (byte*) print_line_cursor#37 ← phi( menu::@16/(byte*) print_line_cursor#13 menu::@6/(byte*) print_line_cursor#43 ) - (byte*) print_screen#21 ← phi( menu::@16/(byte*) print_screen#25 menu::@6/(byte*) print_screen#26 ) +menu::@3: scope:[menu] from menu::@21 menu::@22 + (byte) form_fields_cnt#33 ← phi( menu::@21/(byte) form_fields_cnt#36 menu::@22/(byte) form_fields_cnt#37 ) + (byte) key_right_debounce#18 ← phi( menu::@21/(byte) key_right_debounce#26 menu::@22/(byte) key_right_debounce#2 ) + (byte) form_field_idx#26 ← phi( menu::@21/(byte) form_field_idx#34 menu::@22/(byte) form_field_idx#2 ) + (byte) key_down_debounce#18 ← phi( menu::@21/(byte) key_down_debounce#26 menu::@22/(byte) key_down_debounce#2 ) + (signed byte) form_cursor_count#21 ← phi( menu::@21/(signed byte) form_cursor_count#28 menu::@22/(signed byte) form_cursor_count#2 ) + (byte*) print_char_cursor#38 ← phi( menu::@21/(byte*) print_char_cursor#45 menu::@22/(byte*) print_char_cursor#46 ) + (byte*) print_line_cursor#36 ← phi( menu::@21/(byte*) print_line_cursor#42 menu::@22/(byte*) print_line_cursor#43 ) + (byte*) print_screen#20 ← phi( menu::@21/(byte*) print_screen#24 menu::@22/(byte*) print_screen#25 ) if(true) goto menu::@4 to:menu::@return menu::@4: scope:[menu] from menu::@3 - (byte*) print_char_cursor#47 ← phi( menu::@3/(byte*) print_char_cursor#39 ) - (byte*) print_line_cursor#44 ← phi( menu::@3/(byte*) print_line_cursor#37 ) - (byte*) print_screen#27 ← phi( menu::@3/(byte*) print_screen#21 ) - (byte) keyboard_key_pressed::key#0 ← (byte) KEY_SPACE#0 - call keyboard_key_pressed param-assignment - (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#1 - to:menu::@17 -menu::@17: scope:[menu] from menu::@4 - (byte*) print_char_cursor#38 ← phi( menu::@4/(byte*) print_char_cursor#47 ) - (byte*) print_line_cursor#36 ← phi( menu::@4/(byte*) print_line_cursor#44 ) - (byte*) print_screen#20 ← phi( menu::@4/(byte*) print_screen#27 ) - (byte) keyboard_key_pressed::return#4 ← phi( menu::@4/(byte) keyboard_key_pressed::return#2 ) - (byte~) menu::$29 ← (byte) keyboard_key_pressed::return#4 - (boolean~) menu::$30 ← (byte~) menu::$29 != (byte/signed byte/word/signed word/dword/signed dword) 0 - (boolean~) menu::$31 ← ! (boolean~) menu::$30 - if((boolean~) menu::$31) goto menu::@6 - to:menu::@return -menu::@6: scope:[menu] from menu::@17 - (byte*) print_char_cursor#46 ← phi( menu::@17/(byte*) print_char_cursor#38 ) - (byte*) print_line_cursor#43 ← phi( menu::@17/(byte*) print_line_cursor#36 ) - (byte*) print_screen#26 ← phi( menu::@17/(byte*) print_screen#20 ) + (byte) form_fields_cnt#30 ← phi( menu::@3/(byte) form_fields_cnt#33 ) + (byte*) print_char_cursor#57 ← phi( menu::@3/(byte*) print_char_cursor#38 ) + (byte*) print_line_cursor#57 ← phi( menu::@3/(byte*) print_line_cursor#36 ) + (byte*) print_screen#38 ← phi( menu::@3/(byte*) print_screen#20 ) + (byte) key_right_debounce#37 ← phi( menu::@3/(byte) key_right_debounce#18 ) + (byte) form_field_idx#43 ← phi( menu::@3/(byte) form_field_idx#26 ) + (byte) key_down_debounce#39 ← phi( menu::@3/(byte) key_down_debounce#18 ) + (signed byte) form_cursor_count#35 ← phi( menu::@3/(signed byte) form_cursor_count#21 ) + to:menu::@6 +menu::@6: scope:[menu] from menu::@4 menu::@7 + (byte) form_fields_cnt#28 ← phi( menu::@4/(byte) form_fields_cnt#30 menu::@7/(byte) form_fields_cnt#31 ) + (byte*) print_char_cursor#54 ← phi( menu::@4/(byte*) print_char_cursor#57 menu::@7/(byte*) print_char_cursor#58 ) + (byte*) print_line_cursor#54 ← phi( menu::@4/(byte*) print_line_cursor#57 menu::@7/(byte*) print_line_cursor#58 ) + (byte*) print_screen#34 ← phi( menu::@4/(byte*) print_screen#38 menu::@7/(byte*) print_screen#39 ) + (byte) key_right_debounce#27 ← phi( menu::@4/(byte) key_right_debounce#37 menu::@7/(byte) key_right_debounce#38 ) + (byte) form_field_idx#35 ← phi( menu::@4/(byte) form_field_idx#43 menu::@7/(byte) form_field_idx#44 ) + (byte) key_down_debounce#27 ← phi( menu::@4/(byte) key_down_debounce#39 menu::@7/(byte) key_down_debounce#40 ) + (signed byte) form_cursor_count#29 ← phi( menu::@4/(signed byte) form_cursor_count#35 menu::@7/(signed byte) form_cursor_count#36 ) + (boolean~) menu::$31 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + if((boolean~) menu::$31) goto menu::@7 + to:menu::@8 +menu::@7: scope:[menu] from menu::@6 + (byte) form_fields_cnt#31 ← phi( menu::@6/(byte) form_fields_cnt#28 ) + (byte*) print_char_cursor#58 ← phi( menu::@6/(byte*) print_char_cursor#54 ) + (byte*) print_line_cursor#58 ← phi( menu::@6/(byte*) print_line_cursor#54 ) + (byte*) print_screen#39 ← phi( menu::@6/(byte*) print_screen#34 ) + (byte) key_right_debounce#38 ← phi( menu::@6/(byte) key_right_debounce#27 ) + (byte) form_field_idx#44 ← phi( menu::@6/(byte) form_field_idx#35 ) + (byte) key_down_debounce#40 ← phi( menu::@6/(byte) key_down_debounce#27 ) + (signed byte) form_cursor_count#36 ← phi( menu::@6/(signed byte) form_cursor_count#29 ) + to:menu::@6 +menu::@8: scope:[menu] from menu::@6 + (byte) form_fields_cnt#26 ← phi( menu::@6/(byte) form_fields_cnt#28 ) + (byte*) print_char_cursor#50 ← phi( menu::@6/(byte*) print_char_cursor#54 ) + (byte*) print_line_cursor#49 ← phi( menu::@6/(byte*) print_line_cursor#54 ) + (byte*) print_screen#29 ← phi( menu::@6/(byte*) print_screen#34 ) + (byte) key_right_debounce#17 ← phi( menu::@6/(byte) key_right_debounce#27 ) + (byte) form_field_idx#25 ← phi( menu::@6/(byte) form_field_idx#35 ) + (byte) key_down_debounce#17 ← phi( menu::@6/(byte) key_down_debounce#27 ) + (signed byte) form_cursor_count#20 ← phi( menu::@6/(signed byte) form_cursor_count#29 ) + call form_control param-assignment + to:menu::@22 +menu::@22: scope:[menu] from menu::@8 + (byte) form_fields_cnt#37 ← phi( menu::@8/(byte) form_fields_cnt#26 ) + (byte*) print_char_cursor#46 ← phi( menu::@8/(byte*) print_char_cursor#50 ) + (byte*) print_line_cursor#43 ← phi( menu::@8/(byte*) print_line_cursor#49 ) + (byte*) print_screen#25 ← phi( menu::@8/(byte*) print_screen#29 ) + (byte) key_right_debounce#10 ← phi( menu::@8/(byte) key_right_debounce#5 ) + (byte) form_field_idx#13 ← phi( menu::@8/(byte) form_field_idx#9 ) + (byte) key_down_debounce#10 ← phi( menu::@8/(byte) key_down_debounce#6 ) + (signed byte) form_cursor_count#12 ← phi( menu::@8/(signed byte) form_cursor_count#8 ) + (signed byte) form_cursor_count#2 ← (signed byte) form_cursor_count#12 + (byte) key_down_debounce#2 ← (byte) key_down_debounce#10 + (byte) form_field_idx#2 ← (byte) form_field_idx#13 + (byte) key_right_debounce#2 ← (byte) key_right_debounce#10 to:menu::@3 -menu::@return: scope:[menu] from menu::@17 menu::@3 - (byte*) print_char_cursor#29 ← phi( menu::@17/(byte*) print_char_cursor#38 menu::@3/(byte*) print_char_cursor#39 ) - (byte*) print_line_cursor#28 ← phi( menu::@17/(byte*) print_line_cursor#36 menu::@3/(byte*) print_line_cursor#37 ) - (byte*) print_screen#15 ← phi( menu::@17/(byte*) print_screen#20 menu::@3/(byte*) print_screen#21 ) +menu::@return: scope:[menu] from menu::@3 + (byte) key_right_debounce#11 ← phi( menu::@3/(byte) key_right_debounce#18 ) + (byte) form_field_idx#14 ← phi( menu::@3/(byte) form_field_idx#26 ) + (byte) key_down_debounce#11 ← phi( menu::@3/(byte) key_down_debounce#18 ) + (signed byte) form_cursor_count#13 ← phi( menu::@3/(signed byte) form_cursor_count#21 ) + (byte*) print_char_cursor#29 ← phi( menu::@3/(byte*) print_char_cursor#38 ) + (byte*) print_line_cursor#28 ← phi( menu::@3/(byte*) print_line_cursor#36 ) + (byte*) print_screen#15 ← phi( menu::@3/(byte*) print_screen#20 ) (byte*) print_screen#6 ← (byte*) print_screen#15 (byte*) print_line_cursor#14 ← (byte*) print_line_cursor#28 (byte*) print_char_cursor#15 ← (byte*) print_char_cursor#29 + (signed byte) form_cursor_count#3 ← (signed byte) form_cursor_count#13 + (byte) key_down_debounce#3 ← (byte) key_down_debounce#11 + (byte) form_field_idx#3 ← (byte) form_field_idx#14 + (byte) key_right_debounce#3 ← (byte) key_right_debounce#11 return to:@return @21: scope:[] from @20 - (byte*) print_char_cursor#40 ← phi( @20/(byte*) print_char_cursor#48 ) - (byte*) print_line_cursor#38 ← phi( @20/(byte*) print_line_cursor#45 ) - (byte*) print_screen#22 ← phi( @20/(byte*) print_screen#28 ) + (byte*) print_char_cursor#47 ← phi( @20/(byte*) print_char_cursor#51 ) + (byte*) print_line_cursor#44 ← phi( @20/(byte*) print_line_cursor#50 ) + (byte*) print_screen#26 ← phi( @20/(byte*) print_screen#30 ) + (byte[25]) form_line_lo#0 ← { fill( 25, 0) } + (byte[25]) form_line_hi#0 ← { fill( 25, 0) } + (byte) form_field_idx#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) form_fields_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 9 + (byte[]) form_fields_x#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 17 } + (byte[]) form_fields_y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 8 } + (byte[]) form_fields_val#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } + (byte) key_down_debounce#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) key_right_debounce#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (signed byte) FORM_CURSOR_BLINK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 + (signed word/signed byte/signed dword~) $9 ← (signed byte) FORM_CURSOR_BLINK#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) form_cursor_count#4 ← (signed word/signed byte/signed dword~) $9 + to:@25 +form_set_screen: scope:[form_set_screen] from menu::@19 + (byte*) form_set_screen::screen#1 ← phi( menu::@19/(byte*) form_set_screen::screen#0 ) + (byte*) form_set_screen::line#0 ← (byte*) form_set_screen::screen#1 + (byte) form_set_screen::y#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:form_set_screen::@1 +form_set_screen::@1: scope:[form_set_screen] from form_set_screen form_set_screen::@1 + (byte) form_set_screen::y#2 ← phi( form_set_screen/(byte) form_set_screen::y#0 form_set_screen::@1/(byte) form_set_screen::y#1 ) + (byte*) form_set_screen::line#2 ← phi( form_set_screen/(byte*) form_set_screen::line#0 form_set_screen::@1/(byte*) form_set_screen::line#1 ) + (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 + *((byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 + (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 + *((byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 + (byte*~) form_set_screen::$2 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + (byte*) form_set_screen::line#1 ← (byte*~) form_set_screen::$2 + (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 + (boolean~) form_set_screen::$3 ← (byte) form_set_screen::y#1 != (byte/signed byte/word/signed word/dword/signed dword) 25 + if((boolean~) form_set_screen::$3) goto form_set_screen::@1 + to:form_set_screen::@return +form_set_screen::@return: scope:[form_set_screen] from form_set_screen::@1 + return + to:@return +form_field_ptr: scope:[form_field_ptr] from form_control form_render_values::@1 + (byte) form_field_ptr::field_idx#2 ← phi( form_control/(byte) form_field_ptr::field_idx#1 form_render_values::@1/(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) + (byte*~) form_field_ptr::$0 ← ((byte*)) { *((byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0), *((byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) } + (byte*) form_field_ptr::line#0 ← (byte*~) form_field_ptr::$0 + (byte) form_field_ptr::x#0 ← *((byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) + (byte*~) form_field_ptr::$1 ← (byte*) form_field_ptr::line#0 + (byte) form_field_ptr::x#0 + (byte*) form_field_ptr::field#0 ← (byte*~) form_field_ptr::$1 + (byte*) form_field_ptr::return#0 ← (byte*) form_field_ptr::field#0 + to:form_field_ptr::@return +form_field_ptr::@return: scope:[form_field_ptr] from form_field_ptr + (byte*) form_field_ptr::return#4 ← phi( form_field_ptr/(byte*) form_field_ptr::return#0 ) + (byte*) form_field_ptr::return#1 ← (byte*) form_field_ptr::return#4 + return + to:@return +form_render_values: scope:[form_render_values] from menu::@20 + (byte) form_fields_cnt#7 ← phi( menu::@20/(byte) form_fields_cnt#9 ) + (byte) form_render_values::idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:form_render_values::@1 +form_render_values::@1: scope:[form_render_values] from form_render_values form_render_values::@3 + (byte) form_fields_cnt#4 ← phi( form_render_values/(byte) form_fields_cnt#7 form_render_values::@3/(byte) form_fields_cnt#1 ) + (byte) form_render_values::idx#2 ← phi( form_render_values/(byte) form_render_values::idx#0 form_render_values::@3/(byte) form_render_values::idx#1 ) + (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 + call form_field_ptr param-assignment + (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#1 + to:form_render_values::@3 +form_render_values::@3: scope:[form_render_values] from form_render_values::@1 + (byte) form_fields_cnt#1 ← phi( form_render_values::@1/(byte) form_fields_cnt#4 ) + (byte) form_render_values::idx#3 ← phi( form_render_values::@1/(byte) form_render_values::idx#2 ) + (byte*) form_field_ptr::return#5 ← phi( form_render_values::@1/(byte*) form_field_ptr::return#2 ) + (byte*~) form_render_values::$0 ← (byte*) form_field_ptr::return#5 + (byte*) form_render_values::field#0 ← (byte*~) form_render_values::$0 + *((byte*) form_render_values::field#0) ← *((byte[]) print_hextab#0 + *((byte[]) form_fields_val#0 + (byte) form_render_values::idx#3)) + (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#3 + (boolean~) form_render_values::$1 ← (byte) form_render_values::idx#1 < (byte) form_fields_cnt#1 + if((boolean~) form_render_values::$1) goto form_render_values::@1 + to:form_render_values::@return +form_render_values::@return: scope:[form_render_values] from form_render_values::@3 + return + to:@return +form_control: scope:[form_control] from menu::@8 + (byte) form_fields_cnt#24 ← phi( menu::@8/(byte) form_fields_cnt#26 ) + (byte) key_right_debounce#56 ← phi( menu::@8/(byte) key_right_debounce#17 ) + (byte) key_down_debounce#53 ← phi( menu::@8/(byte) key_down_debounce#17 ) + (signed byte) form_cursor_count#22 ← phi( menu::@8/(signed byte) form_cursor_count#20 ) + (byte) form_field_idx#15 ← phi( menu::@8/(byte) form_field_idx#25 ) + (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#15 + call form_field_ptr param-assignment + (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#1 + to:form_control::@28 +form_control::@28: scope:[form_control] from form_control + (byte) form_fields_cnt#22 ← phi( form_control/(byte) form_fields_cnt#24 ) + (byte) form_field_idx#59 ← phi( form_control/(byte) form_field_idx#15 ) + (byte) key_right_debounce#54 ← phi( form_control/(byte) key_right_debounce#56 ) + (byte) key_down_debounce#48 ← phi( form_control/(byte) key_down_debounce#53 ) + (signed byte) form_cursor_count#14 ← phi( form_control/(signed byte) form_cursor_count#22 ) + (byte*) form_field_ptr::return#6 ← phi( form_control/(byte*) form_field_ptr::return#3 ) + (byte*~) form_control::$0 ← (byte*) form_field_ptr::return#6 + (byte*) form_control::field#0 ← (byte*~) form_control::$0 + (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#14 + (boolean~) form_control::$1 ← (signed byte) form_cursor_count#5 < (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$2 ← ! (boolean~) form_control::$1 + if((boolean~) form_control::$2) goto form_control::@1 + to:form_control::@14 +form_control::@1: scope:[form_control] from form_control::@14 form_control::@28 + (byte) form_fields_cnt#19 ← phi( form_control::@14/(byte) form_fields_cnt#21 form_control::@28/(byte) form_fields_cnt#22 ) + (byte) form_field_idx#56 ← phi( form_control::@14/(byte) form_field_idx#58 form_control::@28/(byte) form_field_idx#59 ) + (byte) key_right_debounce#50 ← phi( form_control::@14/(byte) key_right_debounce#53 form_control::@28/(byte) key_right_debounce#54 ) + (byte) key_down_debounce#41 ← phi( form_control::@14/(byte) key_down_debounce#47 form_control::@28/(byte) key_down_debounce#48 ) + (byte*) form_control::field#5 ← phi( form_control::@14/(byte*) form_control::field#9 form_control::@28/(byte*) form_control::field#0 ) + (signed byte) form_cursor_count#15 ← phi( form_control::@14/(signed byte) form_cursor_count#6 form_control::@28/(signed byte) form_cursor_count#5 ) + (signed word/signed byte/signed dword~) form_control::$3 ← (signed byte) FORM_CURSOR_BLINK#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 + (boolean~) form_control::$4 ← (signed byte) form_cursor_count#15 < (signed word/signed byte/signed dword~) form_control::$3 + (boolean~) form_control::$5 ← ! (boolean~) form_control::$4 + if((boolean~) form_control::$5) goto form_control::@2 + to:form_control::@15 +form_control::@14: scope:[form_control] from form_control::@28 + (byte) form_fields_cnt#21 ← phi( form_control::@28/(byte) form_fields_cnt#22 ) + (byte) form_field_idx#58 ← phi( form_control::@28/(byte) form_field_idx#59 ) + (byte) key_right_debounce#53 ← phi( form_control::@28/(byte) key_right_debounce#54 ) + (byte) key_down_debounce#47 ← phi( form_control::@28/(byte) key_down_debounce#48 ) + (byte*) form_control::field#9 ← phi( form_control::@28/(byte*) form_control::field#0 ) + (signed byte) form_cursor_count#6 ← (signed byte) FORM_CURSOR_BLINK#0 + to:form_control::@1 +form_control::@2: scope:[form_control] from form_control::@1 + (byte) form_fields_cnt#17 ← phi( form_control::@1/(byte) form_fields_cnt#19 ) + (byte) form_field_idx#54 ← phi( form_control::@1/(byte) form_field_idx#56 ) + (signed byte) form_cursor_count#48 ← phi( form_control::@1/(signed byte) form_cursor_count#15 ) + (byte) key_right_debounce#46 ← phi( form_control::@1/(byte) key_right_debounce#50 ) + (byte) key_down_debounce#29 ← phi( form_control::@1/(byte) key_down_debounce#41 ) + (byte*) form_control::field#1 ← phi( form_control::@1/(byte*) form_control::field#5 ) + (byte~) form_control::$7 ← *((byte*) form_control::field#1) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field#1) ← (byte~) form_control::$7 + to:form_control::@3 +form_control::@15: scope:[form_control] from form_control::@1 + (byte) form_fields_cnt#16 ← phi( form_control::@1/(byte) form_fields_cnt#19 ) + (byte) form_field_idx#53 ← phi( form_control::@1/(byte) form_field_idx#56 ) + (signed byte) form_cursor_count#47 ← phi( form_control::@1/(signed byte) form_cursor_count#15 ) + (byte) key_right_debounce#45 ← phi( form_control::@1/(byte) key_right_debounce#50 ) + (byte) key_down_debounce#28 ← phi( form_control::@1/(byte) key_down_debounce#41 ) + (byte*) form_control::field#2 ← phi( form_control::@1/(byte*) form_control::field#5 ) + (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#2) | (byte/word/signed word/dword/signed dword) 128 + *((byte*) form_control::field#2) ← (byte/word/dword~) form_control::$6 + to:form_control::@3 +form_control::@3: scope:[form_control] from form_control::@15 form_control::@2 + (byte) form_fields_cnt#14 ← phi( form_control::@15/(byte) form_fields_cnt#16 form_control::@2/(byte) form_fields_cnt#17 ) + (byte) form_field_idx#51 ← phi( form_control::@15/(byte) form_field_idx#53 form_control::@2/(byte) form_field_idx#54 ) + (signed byte) form_cursor_count#44 ← phi( form_control::@15/(signed byte) form_cursor_count#47 form_control::@2/(signed byte) form_cursor_count#48 ) + (byte*) form_control::field#12 ← phi( form_control::@15/(byte*) form_control::field#2 form_control::@2/(byte*) form_control::field#1 ) + (byte) key_right_debounce#39 ← phi( form_control::@15/(byte) key_right_debounce#45 form_control::@2/(byte) key_right_debounce#46 ) + (byte) key_down_debounce#19 ← phi( form_control::@15/(byte) key_down_debounce#28 form_control::@2/(byte) key_down_debounce#29 ) + (byte) keyboard_key_pressed::key#0 ← (byte) KEY_CRSR_DOWN#0 + call keyboard_key_pressed param-assignment + (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#1 + to:form_control::@29 +form_control::@29: scope:[form_control] from form_control::@3 + (byte) form_fields_cnt#12 ← phi( form_control::@3/(byte) form_fields_cnt#14 ) + (byte) form_field_idx#48 ← phi( form_control::@3/(byte) form_field_idx#51 ) + (signed byte) form_cursor_count#40 ← phi( form_control::@3/(signed byte) form_cursor_count#44 ) + (byte*) form_control::field#10 ← phi( form_control::@3/(byte*) form_control::field#12 ) + (byte) key_right_debounce#28 ← phi( form_control::@3/(byte) key_right_debounce#39 ) + (byte) key_down_debounce#12 ← phi( form_control::@3/(byte) key_down_debounce#19 ) + (byte) keyboard_key_pressed::return#7 ← phi( form_control::@3/(byte) keyboard_key_pressed::return#2 ) + (byte~) form_control::$8 ← (byte) keyboard_key_pressed::return#7 + (byte) form_control::key_down#0 ← (byte~) form_control::$8 + (boolean~) form_control::$9 ← (byte) form_control::key_down#0 != (byte) key_down_debounce#12 + (boolean~) form_control::$10 ← ! (boolean~) form_control::$9 + if((boolean~) form_control::$10) goto form_control::@4 + to:form_control::@17 +form_control::@4: scope:[form_control] from form_control::@29 form_control::@5 + (byte*) form_control::field#16 ← phi( form_control::@29/(byte*) form_control::field#10 form_control::@5/(byte*) form_control::field#17 ) + (byte) form_field_idx#45 ← phi( form_control::@29/(byte) form_field_idx#48 form_control::@5/(byte) form_field_idx#49 ) + (byte) key_down_debounce#42 ← phi( form_control::@29/(byte) key_down_debounce#12 form_control::@5/(byte) key_down_debounce#49 ) + (signed byte) form_cursor_count#37 ← phi( form_control::@29/(signed byte) form_cursor_count#40 form_control::@5/(signed byte) form_cursor_count#41 ) + (byte) key_right_debounce#19 ← phi( form_control::@29/(byte) key_right_debounce#28 form_control::@5/(byte) key_right_debounce#29 ) + (byte) keyboard_key_pressed::key#1 ← (byte) KEY_CRSR_RIGHT#0 + call keyboard_key_pressed param-assignment + (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#1 + to:form_control::@30 +form_control::@30: scope:[form_control] from form_control::@4 + (byte*) form_control::field#15 ← phi( form_control::@4/(byte*) form_control::field#16 ) + (byte) form_field_idx#39 ← phi( form_control::@4/(byte) form_field_idx#45 ) + (byte) key_down_debounce#34 ← phi( form_control::@4/(byte) key_down_debounce#42 ) + (signed byte) form_cursor_count#30 ← phi( form_control::@4/(signed byte) form_cursor_count#37 ) + (byte) key_right_debounce#12 ← phi( form_control::@4/(byte) key_right_debounce#19 ) + (byte) keyboard_key_pressed::return#8 ← phi( form_control::@4/(byte) keyboard_key_pressed::return#3 ) + (byte~) form_control::$23 ← (byte) keyboard_key_pressed::return#8 + (byte) form_control::key_right#0 ← (byte~) form_control::$23 + (boolean~) form_control::$24 ← (byte) form_control::key_right#0 != (byte) key_right_debounce#12 + (boolean~) form_control::$25 ← ! (boolean~) form_control::$24 + if((boolean~) form_control::$25) goto form_control::@10 + to:form_control::@24 +form_control::@17: scope:[form_control] from form_control::@29 + (signed byte) form_cursor_count#45 ← phi( form_control::@29/(signed byte) form_cursor_count#40 ) + (byte) form_fields_cnt#10 ← phi( form_control::@29/(byte) form_fields_cnt#12 ) + (byte) form_field_idx#46 ← phi( form_control::@29/(byte) form_field_idx#48 ) + (byte) key_right_debounce#40 ← phi( form_control::@29/(byte) key_right_debounce#28 ) + (byte*) form_control::field#6 ← phi( form_control::@29/(byte*) form_control::field#10 ) + (byte) form_control::key_down#1 ← phi( form_control::@29/(byte) form_control::key_down#0 ) + (byte) key_down_debounce#5 ← (byte) form_control::key_down#1 + (boolean~) form_control::$11 ← (byte) form_control::key_down#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$12 ← ! (boolean~) form_control::$11 + if((boolean~) form_control::$12) goto form_control::@5 + to:form_control::@18 +form_control::@5: scope:[form_control] from form_control::@17 + (byte*) form_control::field#17 ← phi( form_control::@17/(byte*) form_control::field#6 ) + (byte) form_field_idx#49 ← phi( form_control::@17/(byte) form_field_idx#46 ) + (byte) key_down_debounce#49 ← phi( form_control::@17/(byte) key_down_debounce#5 ) + (signed byte) form_cursor_count#41 ← phi( form_control::@17/(signed byte) form_cursor_count#45 ) + (byte) key_right_debounce#29 ← phi( form_control::@17/(byte) key_right_debounce#40 ) + to:form_control::@4 +form_control::@18: scope:[form_control] from form_control::@17 + (byte) key_right_debounce#51 ← phi( form_control::@17/(byte) key_right_debounce#40 ) + (byte) key_down_debounce#54 ← phi( form_control::@17/(byte) key_down_debounce#5 ) + (byte) form_fields_cnt#8 ← phi( form_control::@17/(byte) form_fields_cnt#10 ) + (byte) form_field_idx#36 ← phi( form_control::@17/(byte) form_field_idx#46 ) + (byte*) form_control::field#3 ← phi( form_control::@17/(byte*) form_control::field#6 ) + (byte~) form_control::$13 ← *((byte*) form_control::field#3) & (byte/signed byte/word/signed word/dword/signed dword) 127 + *((byte*) form_control::field#3) ← (byte~) form_control::$13 + (byte) keyboard_key_pressed::key#2 ← (byte) KEY_RSHIFT#0 + call keyboard_key_pressed param-assignment + (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#1 + to:form_control::@31 +form_control::@31: scope:[form_control] from form_control::@18 + (byte) key_right_debounce#47 ← phi( form_control::@18/(byte) key_right_debounce#51 ) + (byte) key_down_debounce#50 ← phi( form_control::@18/(byte) key_down_debounce#54 ) + (byte) form_fields_cnt#5 ← phi( form_control::@18/(byte) form_fields_cnt#8 ) + (byte) form_field_idx#27 ← phi( form_control::@18/(byte) form_field_idx#36 ) + (byte) keyboard_key_pressed::return#9 ← phi( form_control::@18/(byte) keyboard_key_pressed::return#4 ) + (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#9 + (boolean~) form_control::$15 ← (byte~) form_control::$14 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$16 ← ! (boolean~) form_control::$15 + if((boolean~) form_control::$16) goto form_control::@6 + to:form_control::@19 +form_control::@6: scope:[form_control] from form_control::@31 + (byte) key_right_debounce#42 ← phi( form_control::@31/(byte) key_right_debounce#47 ) + (byte) key_down_debounce#44 ← phi( form_control::@31/(byte) key_down_debounce#50 ) + (byte) form_fields_cnt#6 ← phi( form_control::@31/(byte) form_fields_cnt#5 ) + (byte) form_field_idx#16 ← phi( form_control::@31/(byte) form_field_idx#27 ) + (byte) form_field_idx#5 ← -- (byte) form_field_idx#16 + (boolean~) form_control::$19 ← (byte) form_field_idx#5 == (byte/word/signed word/dword/signed dword) 255 + (boolean~) form_control::$20 ← ! (boolean~) form_control::$19 + if((boolean~) form_control::$20) goto form_control::@9 + to:form_control::@22 +form_control::@19: scope:[form_control] from form_control::@31 + (byte) key_right_debounce#41 ← phi( form_control::@31/(byte) key_right_debounce#47 ) + (byte) key_down_debounce#43 ← phi( form_control::@31/(byte) key_down_debounce#50 ) + (byte) form_fields_cnt#2 ← phi( form_control::@31/(byte) form_fields_cnt#5 ) + (byte) form_field_idx#17 ← phi( form_control::@31/(byte) form_field_idx#27 ) + (byte) form_field_idx#6 ← ++ (byte) form_field_idx#17 + (boolean~) form_control::$17 ← (byte) form_field_idx#6 == (byte) form_fields_cnt#2 + (boolean~) form_control::$18 ← ! (boolean~) form_control::$17 + if((boolean~) form_control::$18) goto form_control::@7 + to:form_control::@20 +form_control::@7: scope:[form_control] from form_control::@19 + (byte) key_right_debounce#32 ← phi( form_control::@19/(byte) key_right_debounce#41 ) + (byte) form_field_idx#37 ← phi( form_control::@19/(byte) form_field_idx#6 ) + (byte) key_down_debounce#32 ← phi( form_control::@19/(byte) key_down_debounce#43 ) + to:form_control::@8 +form_control::@20: scope:[form_control] from form_control::@19 + (byte) key_right_debounce#30 ← phi( form_control::@19/(byte) key_right_debounce#41 ) + (byte) key_down_debounce#30 ← phi( form_control::@19/(byte) key_down_debounce#43 ) + (byte) form_field_idx#7 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:form_control::@8 +form_control::@8: scope:[form_control] from form_control::@20 form_control::@22 form_control::@7 form_control::@9 + (byte) key_right_debounce#23 ← phi( form_control::@20/(byte) key_right_debounce#30 form_control::@22/(byte) key_right_debounce#31 form_control::@7/(byte) key_right_debounce#32 form_control::@9/(byte) key_right_debounce#33 ) + (byte) form_field_idx#30 ← phi( form_control::@20/(byte) form_field_idx#7 form_control::@22/(byte) form_field_idx#8 form_control::@7/(byte) form_field_idx#37 form_control::@9/(byte) form_field_idx#38 ) + (byte) key_down_debounce#23 ← phi( form_control::@20/(byte) key_down_debounce#30 form_control::@22/(byte) key_down_debounce#31 form_control::@7/(byte) key_down_debounce#32 form_control::@9/(byte) key_down_debounce#33 ) + (signed word/signed byte/signed dword~) form_control::$22 ← (signed byte) FORM_CURSOR_BLINK#0 / (byte/signed byte/word/signed word/dword/signed dword) 2 + (signed byte) form_cursor_count#7 ← (signed word/signed byte/signed dword~) form_control::$22 + to:form_control::@return +form_control::@9: scope:[form_control] from form_control::@6 + (byte) key_right_debounce#33 ← phi( form_control::@6/(byte) key_right_debounce#42 ) + (byte) form_field_idx#38 ← phi( form_control::@6/(byte) form_field_idx#5 ) + (byte) key_down_debounce#33 ← phi( form_control::@6/(byte) key_down_debounce#44 ) + to:form_control::@8 +form_control::@22: scope:[form_control] from form_control::@6 + (byte) key_right_debounce#31 ← phi( form_control::@6/(byte) key_right_debounce#42 ) + (byte) key_down_debounce#31 ← phi( form_control::@6/(byte) key_down_debounce#44 ) + (byte) form_fields_cnt#3 ← phi( form_control::@6/(byte) form_fields_cnt#6 ) + (byte/signed word/word/dword/signed dword~) form_control::$21 ← (byte) form_fields_cnt#3 - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) form_field_idx#8 ← (byte/signed word/word/dword/signed dword~) form_control::$21 + to:form_control::@8 +form_control::@return: scope:[form_control] from form_control::@10 form_control::@11 form_control::@13 form_control::@8 + (byte) key_right_debounce#13 ← phi( form_control::@10/(byte) key_right_debounce#20 form_control::@11/(byte) key_right_debounce#21 form_control::@13/(byte) key_right_debounce#22 form_control::@8/(byte) key_right_debounce#23 ) + (byte) form_field_idx#18 ← phi( form_control::@10/(byte) form_field_idx#28 form_control::@11/(byte) form_field_idx#29 form_control::@13/(byte) form_field_idx#21 form_control::@8/(byte) form_field_idx#30 ) + (byte) key_down_debounce#13 ← phi( form_control::@10/(byte) key_down_debounce#20 form_control::@11/(byte) key_down_debounce#21 form_control::@13/(byte) key_down_debounce#22 form_control::@8/(byte) key_down_debounce#23 ) + (signed byte) form_cursor_count#16 ← phi( form_control::@10/(signed byte) form_cursor_count#23 form_control::@11/(signed byte) form_cursor_count#24 form_control::@13/(signed byte) form_cursor_count#25 form_control::@8/(signed byte) form_cursor_count#7 ) + (signed byte) form_cursor_count#8 ← (signed byte) form_cursor_count#16 + (byte) key_down_debounce#6 ← (byte) key_down_debounce#13 + (byte) form_field_idx#9 ← (byte) form_field_idx#18 + (byte) key_right_debounce#5 ← (byte) key_right_debounce#13 + return + to:@return +form_control::@10: scope:[form_control] from form_control::@30 + (byte) key_right_debounce#20 ← phi( form_control::@30/(byte) key_right_debounce#12 ) + (byte) form_field_idx#28 ← phi( form_control::@30/(byte) form_field_idx#39 ) + (byte) key_down_debounce#20 ← phi( form_control::@30/(byte) key_down_debounce#34 ) + (signed byte) form_cursor_count#23 ← phi( form_control::@30/(signed byte) form_cursor_count#30 ) + to:form_control::@return +form_control::@24: scope:[form_control] from form_control::@30 + (byte*) form_control::field#14 ← phi( form_control::@30/(byte*) form_control::field#15 ) + (byte) form_field_idx#40 ← phi( form_control::@30/(byte) form_field_idx#39 ) + (byte) key_down_debounce#35 ← phi( form_control::@30/(byte) key_down_debounce#34 ) + (signed byte) form_cursor_count#31 ← phi( form_control::@30/(signed byte) form_cursor_count#30 ) + (byte) form_control::key_right#1 ← phi( form_control::@30/(byte) form_control::key_right#0 ) + (byte) key_right_debounce#6 ← (byte) form_control::key_right#1 + (boolean~) form_control::$26 ← (byte) form_control::key_right#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$27 ← ! (boolean~) form_control::$26 + if((boolean~) form_control::$27) goto form_control::@11 + to:form_control::@25 +form_control::@11: scope:[form_control] from form_control::@24 + (byte) key_right_debounce#21 ← phi( form_control::@24/(byte) key_right_debounce#6 ) + (byte) form_field_idx#29 ← phi( form_control::@24/(byte) form_field_idx#40 ) + (byte) key_down_debounce#21 ← phi( form_control::@24/(byte) key_down_debounce#35 ) + (signed byte) form_cursor_count#24 ← phi( form_control::@24/(signed byte) form_cursor_count#31 ) + to:form_control::@return +form_control::@25: scope:[form_control] from form_control::@24 + (byte) key_right_debounce#48 ← phi( form_control::@24/(byte) key_right_debounce#6 ) + (byte) key_down_debounce#51 ← phi( form_control::@24/(byte) key_down_debounce#35 ) + (signed byte) form_cursor_count#42 ← phi( form_control::@24/(signed byte) form_cursor_count#31 ) + (byte*) form_control::field#13 ← phi( form_control::@24/(byte*) form_control::field#14 ) + (byte) form_field_idx#41 ← phi( form_control::@24/(byte) form_field_idx#40 ) + (byte) keyboard_key_pressed::key#3 ← (byte) KEY_RSHIFT#0 + call keyboard_key_pressed param-assignment + (byte) keyboard_key_pressed::return#5 ← (byte) keyboard_key_pressed::return#1 + to:form_control::@32 +form_control::@32: scope:[form_control] from form_control::@25 + (byte) key_right_debounce#43 ← phi( form_control::@25/(byte) key_right_debounce#48 ) + (byte) key_down_debounce#45 ← phi( form_control::@25/(byte) key_down_debounce#51 ) + (signed byte) form_cursor_count#38 ← phi( form_control::@25/(signed byte) form_cursor_count#42 ) + (byte*) form_control::field#11 ← phi( form_control::@25/(byte*) form_control::field#13 ) + (byte) form_field_idx#31 ← phi( form_control::@25/(byte) form_field_idx#41 ) + (byte) keyboard_key_pressed::return#10 ← phi( form_control::@25/(byte) keyboard_key_pressed::return#5 ) + (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 + (boolean~) form_control::$29 ← (byte~) form_control::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (boolean~) form_control::$30 ← ! (boolean~) form_control::$29 + if((boolean~) form_control::$30) goto form_control::@12 + to:form_control::@26 +form_control::@12: scope:[form_control] from form_control::@32 + (byte) key_right_debounce#34 ← phi( form_control::@32/(byte) key_right_debounce#43 ) + (byte) key_down_debounce#36 ← phi( form_control::@32/(byte) key_down_debounce#45 ) + (signed byte) form_cursor_count#32 ← phi( form_control::@32/(signed byte) form_cursor_count#38 ) + (byte*) form_control::field#7 ← phi( form_control::@32/(byte*) form_control::field#11 ) + (byte) form_field_idx#19 ← phi( form_control::@32/(byte) form_field_idx#31 ) + (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte[]) form_fields_val#0 + (byte) form_field_idx#19) ← (byte/word/dword~) form_control::$34 + to:form_control::@13 +form_control::@26: scope:[form_control] from form_control::@32 + (byte) key_right_debounce#35 ← phi( form_control::@32/(byte) key_right_debounce#43 ) + (byte) key_down_debounce#37 ← phi( form_control::@32/(byte) key_down_debounce#45 ) + (signed byte) form_cursor_count#33 ← phi( form_control::@32/(signed byte) form_cursor_count#38 ) + (byte*) form_control::field#8 ← phi( form_control::@32/(byte*) form_control::field#11 ) + (byte) form_field_idx#20 ← phi( form_control::@32/(byte) form_field_idx#31 ) + (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 + *((byte[]) form_fields_val#0 + (byte) form_field_idx#20) ← (byte/word/dword~) form_control::$32 + to:form_control::@13 +form_control::@13: scope:[form_control] from form_control::@12 form_control::@26 + (byte) key_right_debounce#22 ← phi( form_control::@12/(byte) key_right_debounce#34 form_control::@26/(byte) key_right_debounce#35 ) + (byte) key_down_debounce#22 ← phi( form_control::@12/(byte) key_down_debounce#36 form_control::@26/(byte) key_down_debounce#37 ) + (signed byte) form_cursor_count#25 ← phi( form_control::@12/(signed byte) form_cursor_count#32 form_control::@26/(signed byte) form_cursor_count#33 ) + (byte*) form_control::field#4 ← phi( form_control::@12/(byte*) form_control::field#7 form_control::@26/(byte*) form_control::field#8 ) + (byte) form_field_idx#21 ← phi( form_control::@12/(byte) form_field_idx#19 form_control::@26/(byte) form_field_idx#20 ) + *((byte*) form_control::field#4) ← *((byte[]) print_hextab#0 + *((byte[]) form_fields_val#0 + (byte) form_field_idx#21)) + to:form_control::@return +@25: scope:[] from @21 + (byte) form_fields_cnt#38 ← phi( @21/(byte) form_fields_cnt#0 ) + (byte) key_right_debounce#24 ← phi( @21/(byte) key_right_debounce#4 ) + (byte) form_field_idx#32 ← phi( @21/(byte) form_field_idx#4 ) + (byte) key_down_debounce#24 ← phi( @21/(byte) key_down_debounce#4 ) + (signed byte) form_cursor_count#26 ← phi( @21/(signed byte) form_cursor_count#4 ) + (byte*) print_char_cursor#39 ← phi( @21/(byte*) print_char_cursor#47 ) + (byte*) print_line_cursor#37 ← phi( @21/(byte*) print_line_cursor#44 ) + (byte*) print_screen#21 ← phi( @21/(byte*) print_screen#26 ) call main param-assignment - to:@22 -@22: scope:[] from @21 - (byte*) print_char_cursor#30 ← phi( @21/(byte*) print_char_cursor#11 ) - (byte*) print_line_cursor#29 ← phi( @21/(byte*) print_line_cursor#10 ) - (byte*) print_screen#16 ← phi( @21/(byte*) print_screen#4 ) + to:@26 +@26: scope:[] from @25 + (byte) key_right_debounce#14 ← phi( @25/(byte) key_right_debounce#1 ) + (byte) form_field_idx#22 ← phi( @25/(byte) form_field_idx#1 ) + (byte) key_down_debounce#14 ← phi( @25/(byte) key_down_debounce#1 ) + (signed byte) form_cursor_count#17 ← phi( @25/(signed byte) form_cursor_count#1 ) + (byte*) print_char_cursor#30 ← phi( @25/(byte*) print_char_cursor#11 ) + (byte*) print_line_cursor#29 ← phi( @25/(byte*) print_line_cursor#10 ) + (byte*) print_screen#16 ← phi( @25/(byte*) print_screen#4 ) (byte*) print_screen#7 ← (byte*) print_screen#16 (byte*) print_line_cursor#15 ← (byte*) print_line_cursor#29 (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#30 + (signed byte) form_cursor_count#9 ← (signed byte) form_cursor_count#17 + (byte) key_down_debounce#7 ← (byte) key_down_debounce#14 + (byte) form_field_idx#10 ← (byte) form_field_idx#22 + (byte) key_right_debounce#7 ← (byte) key_right_debounce#14 to:@end -@end: scope:[] from @22 +@end: scope:[] from @26 SYMBOL TABLE SSA (string~) $0 (string~) $1 -(const string) $10 = (string) " CONTROL PLANE A PLANE B VIC II @" -(const string) $11 = (string) " bmm 0 patt p1 patt p2 screen s3 @" -(const string) $12 = (string) " mcm 0 start 00 start 00 gfx g4 @" -(const string) $13 = (string) " ecm 0 step 00 step 00 colors c5 @" -(const string) $14 = (string) " hicol 0 mod 00 mod 00 bgcol0 00 @" -(const string) $15 = (string) " line 0 bgcol1 00 @" -(const string) $16 = (string) " colof 0 borof 0 bgcol2 00 @" -(const string) $17 = (string) " chunk 0 overs 0 bgcol3 00 @" -(const string) $18 = (string) "@" +(const string) $10 = (string) "0123456789abcdef" +(const string) $11 = (string) " DTV GfxExplorer PRESET 8bpp pixel cell @" +(const string) $12 = (string) " CONTROL PLANE A PLANE B VIC II @" +(const string) $13 = (string) " bmm 0 patt p1 patt p2 screen s3 @" +(const string) $14 = (string) " mcm 0 start 00 start 00 gfx g4 @" +(const string) $15 = (string) " ecm 0 step 00 step 00 colors c5 @" +(const string) $16 = (string) " hicol 0 mod 00 mod 00 bgcol0 00 @" +(const string) $17 = (string) " line 0 bgcol1 00 @" +(const string) $18 = (string) " colof 0 borof 0 bgcol2 00 @" +(const string) $19 = (string) " chunk 0 overs 0 bgcol3 00 @" (string~) $2 +(const string) $20 = (string) "@" (string~) $3 (string~) $4 (string~) $5 (string~) $6 (string~) $7 (string~) $8 -(const string) $9 = (string) " DTV GfxExplorer PRESET 8bpp pixel cell @" +(signed word/signed byte/signed dword~) $9 (label) @1 +(label) @11 (label) @15 (label) @20 (label) @21 -(label) @22 +(label) @25 +(label) @26 (label) @begin (label) @end (byte*) BGCOL @@ -2670,12 +3791,20 @@ SYMBOL TABLE SSA (byte*) DTV_PALETTE#0 (byte[16]) DTV_PALETTE_DEFAULT (byte[16]) DTV_PALETTE_DEFAULT#0 -(byte) KEY_SPACE -(byte) KEY_SPACE#0 +(signed byte) FORM_CURSOR_BLINK +(signed byte) FORM_CURSOR_BLINK#0 +(byte) KEY_CRSR_DOWN +(byte) KEY_CRSR_DOWN#0 +(byte) KEY_CRSR_RIGHT +(byte) KEY_CRSR_RIGHT#0 +(byte) KEY_RSHIFT +(byte) KEY_RSHIFT#0 (byte) LIGHT_GREEN (byte) LIGHT_GREEN#0 (byte[]) MENU_TEXT (byte[]) MENU_TEXT#0 +(byte*) RASTER +(byte*) RASTER#0 (byte*) VIC_CONTROL (byte*) VIC_CONTROL#0 (byte*) VIC_CONTROL2 @@ -2688,6 +3817,444 @@ SYMBOL TABLE SSA (byte*) VIC_MEMORY#0 (byte) VIC_RSEL (byte) VIC_RSEL#0 +(void()) form_control() +(byte*~) form_control::$0 +(boolean~) form_control::$1 +(boolean~) form_control::$10 +(boolean~) form_control::$11 +(boolean~) form_control::$12 +(byte~) form_control::$13 +(byte~) form_control::$14 +(boolean~) form_control::$15 +(boolean~) form_control::$16 +(boolean~) form_control::$17 +(boolean~) form_control::$18 +(boolean~) form_control::$19 +(boolean~) form_control::$2 +(boolean~) form_control::$20 +(byte/signed word/word/dword/signed dword~) form_control::$21 +(signed word/signed byte/signed dword~) form_control::$22 +(byte~) form_control::$23 +(boolean~) form_control::$24 +(boolean~) form_control::$25 +(boolean~) form_control::$26 +(boolean~) form_control::$27 +(byte~) form_control::$28 +(boolean~) form_control::$29 +(signed word/signed byte/signed dword~) form_control::$3 +(boolean~) form_control::$30 +(byte/signed word/word/dword/signed dword~) form_control::$31 +(byte/word/dword~) form_control::$32 +(byte/signed word/word/dword/signed dword~) form_control::$33 +(byte/word/dword~) form_control::$34 +(boolean~) form_control::$4 +(boolean~) form_control::$5 +(byte/word/dword~) form_control::$6 +(byte~) form_control::$7 +(byte~) form_control::$8 +(boolean~) form_control::$9 +(label) form_control::@1 +(label) form_control::@10 +(label) form_control::@11 +(label) form_control::@12 +(label) form_control::@13 +(label) form_control::@14 +(label) form_control::@15 +(label) form_control::@17 +(label) form_control::@18 +(label) form_control::@19 +(label) form_control::@2 +(label) form_control::@20 +(label) form_control::@22 +(label) form_control::@24 +(label) form_control::@25 +(label) form_control::@26 +(label) form_control::@28 +(label) form_control::@29 +(label) form_control::@3 +(label) form_control::@30 +(label) form_control::@31 +(label) form_control::@32 +(label) form_control::@4 +(label) form_control::@5 +(label) form_control::@6 +(label) form_control::@7 +(label) form_control::@8 +(label) form_control::@9 +(label) form_control::@return +(byte*) form_control::field +(byte*) form_control::field#0 +(byte*) form_control::field#1 +(byte*) form_control::field#10 +(byte*) form_control::field#11 +(byte*) form_control::field#12 +(byte*) form_control::field#13 +(byte*) form_control::field#14 +(byte*) form_control::field#15 +(byte*) form_control::field#16 +(byte*) form_control::field#17 +(byte*) form_control::field#2 +(byte*) form_control::field#3 +(byte*) form_control::field#4 +(byte*) form_control::field#5 +(byte*) form_control::field#6 +(byte*) form_control::field#7 +(byte*) form_control::field#8 +(byte*) form_control::field#9 +(byte) form_control::key_down +(byte) form_control::key_down#0 +(byte) form_control::key_down#1 +(byte) form_control::key_right +(byte) form_control::key_right#0 +(byte) form_control::key_right#1 +(signed byte) form_cursor_count +(signed byte) form_cursor_count#0 +(signed byte) form_cursor_count#1 +(signed byte) form_cursor_count#10 +(signed byte) form_cursor_count#11 +(signed byte) form_cursor_count#12 +(signed byte) form_cursor_count#13 +(signed byte) form_cursor_count#14 +(signed byte) form_cursor_count#15 +(signed byte) form_cursor_count#16 +(signed byte) form_cursor_count#17 +(signed byte) form_cursor_count#18 +(signed byte) form_cursor_count#19 +(signed byte) form_cursor_count#2 +(signed byte) form_cursor_count#20 +(signed byte) form_cursor_count#21 +(signed byte) form_cursor_count#22 +(signed byte) form_cursor_count#23 +(signed byte) form_cursor_count#24 +(signed byte) form_cursor_count#25 +(signed byte) form_cursor_count#26 +(signed byte) form_cursor_count#27 +(signed byte) form_cursor_count#28 +(signed byte) form_cursor_count#29 +(signed byte) form_cursor_count#3 +(signed byte) form_cursor_count#30 +(signed byte) form_cursor_count#31 +(signed byte) form_cursor_count#32 +(signed byte) form_cursor_count#33 +(signed byte) form_cursor_count#34 +(signed byte) form_cursor_count#35 +(signed byte) form_cursor_count#36 +(signed byte) form_cursor_count#37 +(signed byte) form_cursor_count#38 +(signed byte) form_cursor_count#39 +(signed byte) form_cursor_count#4 +(signed byte) form_cursor_count#40 +(signed byte) form_cursor_count#41 +(signed byte) form_cursor_count#42 +(signed byte) form_cursor_count#43 +(signed byte) form_cursor_count#44 +(signed byte) form_cursor_count#45 +(signed byte) form_cursor_count#46 +(signed byte) form_cursor_count#47 +(signed byte) form_cursor_count#48 +(signed byte) form_cursor_count#49 +(signed byte) form_cursor_count#5 +(signed byte) form_cursor_count#50 +(signed byte) form_cursor_count#51 +(signed byte) form_cursor_count#52 +(signed byte) form_cursor_count#53 +(signed byte) form_cursor_count#6 +(signed byte) form_cursor_count#7 +(signed byte) form_cursor_count#8 +(signed byte) form_cursor_count#9 +(byte) form_field_idx +(byte) form_field_idx#0 +(byte) form_field_idx#1 +(byte) form_field_idx#10 +(byte) form_field_idx#11 +(byte) form_field_idx#12 +(byte) form_field_idx#13 +(byte) form_field_idx#14 +(byte) form_field_idx#15 +(byte) form_field_idx#16 +(byte) form_field_idx#17 +(byte) form_field_idx#18 +(byte) form_field_idx#19 +(byte) form_field_idx#2 +(byte) form_field_idx#20 +(byte) form_field_idx#21 +(byte) form_field_idx#22 +(byte) form_field_idx#23 +(byte) form_field_idx#24 +(byte) form_field_idx#25 +(byte) form_field_idx#26 +(byte) form_field_idx#27 +(byte) form_field_idx#28 +(byte) form_field_idx#29 +(byte) form_field_idx#3 +(byte) form_field_idx#30 +(byte) form_field_idx#31 +(byte) form_field_idx#32 +(byte) form_field_idx#33 +(byte) form_field_idx#34 +(byte) form_field_idx#35 +(byte) form_field_idx#36 +(byte) form_field_idx#37 +(byte) form_field_idx#38 +(byte) form_field_idx#39 +(byte) form_field_idx#4 +(byte) form_field_idx#40 +(byte) form_field_idx#41 +(byte) form_field_idx#42 +(byte) form_field_idx#43 +(byte) form_field_idx#44 +(byte) form_field_idx#45 +(byte) form_field_idx#46 +(byte) form_field_idx#47 +(byte) form_field_idx#48 +(byte) form_field_idx#49 +(byte) form_field_idx#5 +(byte) form_field_idx#50 +(byte) form_field_idx#51 +(byte) form_field_idx#52 +(byte) form_field_idx#53 +(byte) form_field_idx#54 +(byte) form_field_idx#55 +(byte) form_field_idx#56 +(byte) form_field_idx#57 +(byte) form_field_idx#58 +(byte) form_field_idx#59 +(byte) form_field_idx#6 +(byte) form_field_idx#60 +(byte) form_field_idx#61 +(byte) form_field_idx#62 +(byte) form_field_idx#7 +(byte) form_field_idx#8 +(byte) form_field_idx#9 +(byte*()) form_field_ptr((byte) form_field_ptr::field_idx) +(byte*~) form_field_ptr::$0 +(byte*~) form_field_ptr::$1 +(label) form_field_ptr::@return +(byte*) form_field_ptr::field +(byte*) form_field_ptr::field#0 +(byte) form_field_ptr::field_idx +(byte) form_field_ptr::field_idx#0 +(byte) form_field_ptr::field_idx#1 +(byte) form_field_ptr::field_idx#2 +(byte*) form_field_ptr::line +(byte*) form_field_ptr::line#0 +(byte*) form_field_ptr::return +(byte*) form_field_ptr::return#0 +(byte*) form_field_ptr::return#1 +(byte*) form_field_ptr::return#2 +(byte*) form_field_ptr::return#3 +(byte*) form_field_ptr::return#4 +(byte*) form_field_ptr::return#5 +(byte*) form_field_ptr::return#6 +(byte) form_field_ptr::x +(byte) form_field_ptr::x#0 +(byte) form_field_ptr::y +(byte) form_field_ptr::y#0 +(byte) form_fields_cnt +(byte) form_fields_cnt#0 +(byte) form_fields_cnt#1 +(byte) form_fields_cnt#10 +(byte) form_fields_cnt#11 +(byte) form_fields_cnt#12 +(byte) form_fields_cnt#13 +(byte) form_fields_cnt#14 +(byte) form_fields_cnt#15 +(byte) form_fields_cnt#16 +(byte) form_fields_cnt#17 +(byte) form_fields_cnt#18 +(byte) form_fields_cnt#19 +(byte) form_fields_cnt#2 +(byte) form_fields_cnt#20 +(byte) form_fields_cnt#21 +(byte) form_fields_cnt#22 +(byte) form_fields_cnt#23 +(byte) form_fields_cnt#24 +(byte) form_fields_cnt#25 +(byte) form_fields_cnt#26 +(byte) form_fields_cnt#27 +(byte) form_fields_cnt#28 +(byte) form_fields_cnt#29 +(byte) form_fields_cnt#3 +(byte) form_fields_cnt#30 +(byte) form_fields_cnt#31 +(byte) form_fields_cnt#32 +(byte) form_fields_cnt#33 +(byte) form_fields_cnt#34 +(byte) form_fields_cnt#35 +(byte) form_fields_cnt#36 +(byte) form_fields_cnt#37 +(byte) form_fields_cnt#38 +(byte) form_fields_cnt#4 +(byte) form_fields_cnt#5 +(byte) form_fields_cnt#6 +(byte) form_fields_cnt#7 +(byte) form_fields_cnt#8 +(byte) form_fields_cnt#9 +(byte[]) form_fields_val +(byte[]) form_fields_val#0 +(byte[]) form_fields_x +(byte[]) form_fields_x#0 +(byte[]) form_fields_y +(byte[]) form_fields_y#0 +(byte[25]) form_line_hi +(byte[25]) form_line_hi#0 +(byte[25]) form_line_lo +(byte[25]) form_line_lo#0 +(void()) form_render_values() +(byte*~) form_render_values::$0 +(boolean~) form_render_values::$1 +(label) form_render_values::@1 +(label) form_render_values::@3 +(label) form_render_values::@return +(byte*) form_render_values::field +(byte*) form_render_values::field#0 +(byte) form_render_values::idx +(byte) form_render_values::idx#0 +(byte) form_render_values::idx#1 +(byte) form_render_values::idx#2 +(byte) form_render_values::idx#3 +(void()) form_set_screen((byte*) form_set_screen::screen) +(byte~) form_set_screen::$0 +(byte~) form_set_screen::$1 +(byte*~) form_set_screen::$2 +(boolean~) form_set_screen::$3 +(label) form_set_screen::@1 +(label) form_set_screen::@return +(byte*) form_set_screen::line +(byte*) form_set_screen::line#0 +(byte*) form_set_screen::line#1 +(byte*) form_set_screen::line#2 +(byte*) form_set_screen::screen +(byte*) form_set_screen::screen#0 +(byte*) form_set_screen::screen#1 +(byte) form_set_screen::y +(byte) form_set_screen::y#0 +(byte) form_set_screen::y#1 +(byte) form_set_screen::y#2 +(byte) key_down_debounce +(byte) key_down_debounce#0 +(byte) key_down_debounce#1 +(byte) key_down_debounce#10 +(byte) key_down_debounce#11 +(byte) key_down_debounce#12 +(byte) key_down_debounce#13 +(byte) key_down_debounce#14 +(byte) key_down_debounce#15 +(byte) key_down_debounce#16 +(byte) key_down_debounce#17 +(byte) key_down_debounce#18 +(byte) key_down_debounce#19 +(byte) key_down_debounce#2 +(byte) key_down_debounce#20 +(byte) key_down_debounce#21 +(byte) key_down_debounce#22 +(byte) key_down_debounce#23 +(byte) key_down_debounce#24 +(byte) key_down_debounce#25 +(byte) key_down_debounce#26 +(byte) key_down_debounce#27 +(byte) key_down_debounce#28 +(byte) key_down_debounce#29 +(byte) key_down_debounce#3 +(byte) key_down_debounce#30 +(byte) key_down_debounce#31 +(byte) key_down_debounce#32 +(byte) key_down_debounce#33 +(byte) key_down_debounce#34 +(byte) key_down_debounce#35 +(byte) key_down_debounce#36 +(byte) key_down_debounce#37 +(byte) key_down_debounce#38 +(byte) key_down_debounce#39 +(byte) key_down_debounce#4 +(byte) key_down_debounce#40 +(byte) key_down_debounce#41 +(byte) key_down_debounce#42 +(byte) key_down_debounce#43 +(byte) key_down_debounce#44 +(byte) key_down_debounce#45 +(byte) key_down_debounce#46 +(byte) key_down_debounce#47 +(byte) key_down_debounce#48 +(byte) key_down_debounce#49 +(byte) key_down_debounce#5 +(byte) key_down_debounce#50 +(byte) key_down_debounce#51 +(byte) key_down_debounce#52 +(byte) key_down_debounce#53 +(byte) key_down_debounce#54 +(byte) key_down_debounce#55 +(byte) key_down_debounce#56 +(byte) key_down_debounce#57 +(byte) key_down_debounce#58 +(byte) key_down_debounce#59 +(byte) key_down_debounce#6 +(byte) key_down_debounce#60 +(byte) key_down_debounce#7 +(byte) key_down_debounce#8 +(byte) key_down_debounce#9 +(byte) key_right_debounce +(byte) key_right_debounce#0 +(byte) key_right_debounce#1 +(byte) key_right_debounce#10 +(byte) key_right_debounce#11 +(byte) key_right_debounce#12 +(byte) key_right_debounce#13 +(byte) key_right_debounce#14 +(byte) key_right_debounce#15 +(byte) key_right_debounce#16 +(byte) key_right_debounce#17 +(byte) key_right_debounce#18 +(byte) key_right_debounce#19 +(byte) key_right_debounce#2 +(byte) key_right_debounce#20 +(byte) key_right_debounce#21 +(byte) key_right_debounce#22 +(byte) key_right_debounce#23 +(byte) key_right_debounce#24 +(byte) key_right_debounce#25 +(byte) key_right_debounce#26 +(byte) key_right_debounce#27 +(byte) key_right_debounce#28 +(byte) key_right_debounce#29 +(byte) key_right_debounce#3 +(byte) key_right_debounce#30 +(byte) key_right_debounce#31 +(byte) key_right_debounce#32 +(byte) key_right_debounce#33 +(byte) key_right_debounce#34 +(byte) key_right_debounce#35 +(byte) key_right_debounce#36 +(byte) key_right_debounce#37 +(byte) key_right_debounce#38 +(byte) key_right_debounce#39 +(byte) key_right_debounce#4 +(byte) key_right_debounce#40 +(byte) key_right_debounce#41 +(byte) key_right_debounce#42 +(byte) key_right_debounce#43 +(byte) key_right_debounce#44 +(byte) key_right_debounce#45 +(byte) key_right_debounce#46 +(byte) key_right_debounce#47 +(byte) key_right_debounce#48 +(byte) key_right_debounce#49 +(byte) key_right_debounce#5 +(byte) key_right_debounce#50 +(byte) key_right_debounce#51 +(byte) key_right_debounce#52 +(byte) key_right_debounce#53 +(byte) key_right_debounce#54 +(byte) key_right_debounce#55 +(byte) key_right_debounce#56 +(byte) key_right_debounce#57 +(byte) key_right_debounce#58 +(byte) key_right_debounce#59 +(byte) key_right_debounce#6 +(byte) key_right_debounce#60 +(byte) key_right_debounce#7 +(byte) key_right_debounce#8 +(byte) key_right_debounce#9 (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key) (byte~) keyboard_key_pressed::$0 (byte~) keyboard_key_pressed::$1 @@ -2701,12 +4268,21 @@ SYMBOL TABLE SSA (byte) keyboard_key_pressed::key (byte) keyboard_key_pressed::key#0 (byte) keyboard_key_pressed::key#1 +(byte) keyboard_key_pressed::key#2 +(byte) keyboard_key_pressed::key#3 +(byte) keyboard_key_pressed::key#4 (byte) keyboard_key_pressed::return (byte) keyboard_key_pressed::return#0 (byte) keyboard_key_pressed::return#1 +(byte) keyboard_key_pressed::return#10 (byte) keyboard_key_pressed::return#2 (byte) keyboard_key_pressed::return#3 (byte) keyboard_key_pressed::return#4 +(byte) keyboard_key_pressed::return#5 +(byte) keyboard_key_pressed::return#6 +(byte) keyboard_key_pressed::return#7 +(byte) keyboard_key_pressed::return#8 +(byte) keyboard_key_pressed::return#9 (byte) keyboard_key_pressed::rowidx (byte) keyboard_key_pressed::rowidx#0 (byte[]) keyboard_matrix_col_bitmask @@ -2752,9 +4328,7 @@ SYMBOL TABLE SSA (boolean~) menu::$23 (byte*~) menu::$24 (boolean~) menu::$25 -(byte~) menu::$29 (dword~) menu::$3 -(boolean~) menu::$30 (boolean~) menu::$31 (word~) menu::$4 (byte~) menu::$5 @@ -2763,16 +4337,20 @@ SYMBOL TABLE SSA (byte~) menu::$8 (word~) menu::$9 (label) menu::@1 -(label) menu::@14 -(label) menu::@15 -(label) menu::@16 +(label) menu::@10 (label) menu::@17 +(label) menu::@18 +(label) menu::@19 (label) menu::@2 +(label) menu::@20 +(label) menu::@21 +(label) menu::@22 (label) menu::@3 (label) menu::@4 (label) menu::@6 (label) menu::@7 (label) menu::@8 +(label) menu::@9 (label) menu::@return (byte*) menu::CHARSET (byte*) menu::CHARSET#0 @@ -2836,6 +4414,12 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#50 (byte*) print_char_cursor#51 (byte*) print_char_cursor#52 +(byte*) print_char_cursor#53 +(byte*) print_char_cursor#54 +(byte*) print_char_cursor#55 +(byte*) print_char_cursor#56 +(byte*) print_char_cursor#57 +(byte*) print_char_cursor#58 (byte*) print_char_cursor#6 (byte*) print_char_cursor#7 (byte*) print_char_cursor#8 @@ -2850,6 +4434,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -2900,6 +4486,12 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#50 (byte*) print_line_cursor#51 (byte*) print_line_cursor#52 +(byte*) print_line_cursor#53 +(byte*) print_line_cursor#54 +(byte*) print_line_cursor#55 +(byte*) print_line_cursor#56 +(byte*) print_line_cursor#57 +(byte*) print_line_cursor#58 (byte*) print_line_cursor#6 (byte*) print_line_cursor#7 (byte*) print_line_cursor#8 @@ -2939,6 +4531,12 @@ SYMBOL TABLE SSA (byte*) print_screen#31 (byte*) print_screen#32 (byte*) print_screen#33 +(byte*) print_screen#34 +(byte*) print_screen#35 +(byte*) print_screen#36 +(byte*) print_screen#37 +(byte*) print_screen#38 +(byte*) print_screen#39 (byte*) print_screen#4 (byte*) print_screen#5 (byte*) print_screen#6 @@ -2981,11 +4579,20 @@ SYMBOL TABLE SSA OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (boolean~) print_str_lines::$2 ← (byte) print_str_lines::ch#0 == (byte) '@' from (boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch#0 != (byte) '@' -Inversing boolean not (boolean~) menu::$31 ← (byte~) menu::$29 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) menu::$30 ← (byte~) menu::$29 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) form_control::$2 ← (signed byte) form_cursor_count#5 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$1 ← (signed byte) form_cursor_count#5 < (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) form_control::$5 ← (signed byte) form_cursor_count#15 >= (signed word/signed byte/signed dword~) form_control::$3 from (boolean~) form_control::$4 ← (signed byte) form_cursor_count#15 < (signed word/signed byte/signed dword~) form_control::$3 +Inversing boolean not (boolean~) form_control::$10 ← (byte) form_control::key_down#0 == (byte) key_down_debounce#12 from (boolean~) form_control::$9 ← (byte) form_control::key_down#0 != (byte) key_down_debounce#12 +Inversing boolean not (boolean~) form_control::$25 ← (byte) form_control::key_right#0 == (byte) key_right_debounce#12 from (boolean~) form_control::$24 ← (byte) form_control::key_right#0 != (byte) key_right_debounce#12 +Inversing boolean not (boolean~) form_control::$12 ← (byte) form_control::key_down#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$11 ← (byte) form_control::key_down#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) form_control::$16 ← (byte~) form_control::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$15 ← (byte~) form_control::$14 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) form_control::$20 ← (byte) form_field_idx#5 != (byte/word/signed word/dword/signed dword) 255 from (boolean~) form_control::$19 ← (byte) form_field_idx#5 == (byte/word/signed word/dword/signed dword) 255 +Inversing boolean not (boolean~) form_control::$18 ← (byte) form_field_idx#6 != (byte) form_fields_cnt#2 from (boolean~) form_control::$17 ← (byte) form_field_idx#6 == (byte) form_fields_cnt#2 +Inversing boolean not (boolean~) form_control::$27 ← (byte) form_control::key_right#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$26 ← (byte) form_control::key_right#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (boolean~) form_control::$30 ← (byte~) form_control::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) form_control::$29 ← (byte~) form_control::$28 == (byte/signed byte/word/signed word/dword/signed dword) 0 Succesful SSA optimization Pass2UnaryNotSimplification Not aliassing across scopes: print_str_lines::str#4 print_str_lines::str#1 -Not aliassing across scopes: print_char_cursor#41 print_char_cursor#13 -Not aliassing across scopes: print_line_cursor#39 print_line_cursor#12 +Not aliassing across scopes: print_char_cursor#40 print_char_cursor#13 +Not aliassing across scopes: print_line_cursor#38 print_line_cursor#12 Not aliassing across scopes: print_line_cursor#16 print_line_cursor#4 Not aliassing across scopes: print_char_cursor#18 print_char_cursor#5 Not aliassing across scopes: print_line_cursor#32 print_line_cursor#30 @@ -2995,23 +4602,42 @@ Not aliassing across scopes: print_cls::sc#0 print_screen#8 Not aliassing across scopes: print_set_screen::screen#1 print_set_screen::screen#0 Not aliassing across scopes: print_screen#1 print_set_screen::screen#1 Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 -Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0 +Not aliassing across scopes: keyboard_key_pressed::key#4 keyboard_key_pressed::key#2 Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#1 Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#4 -Not aliassing across scopes: print_screen#23 print_screen#22 -Not aliassing across scopes: print_line_cursor#41 print_line_cursor#38 -Not aliassing across scopes: print_char_cursor#44 print_char_cursor#40 +Not aliassing across scopes: print_screen#22 print_screen#21 +Not aliassing across scopes: print_line_cursor#40 print_line_cursor#37 +Not aliassing across scopes: print_char_cursor#43 print_char_cursor#39 +Not aliassing across scopes: form_cursor_count#27 form_cursor_count#26 +Not aliassing across scopes: key_down_debounce#25 key_down_debounce#24 +Not aliassing across scopes: form_field_idx#33 form_field_idx#32 +Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 +Not aliassing across scopes: form_fields_cnt#34 form_fields_cnt#38 Not aliassing across scopes: print_screen#12 print_screen#6 Not aliassing across scopes: print_line_cursor#23 print_line_cursor#14 Not aliassing across scopes: print_char_cursor#24 print_char_cursor#15 -Not aliassing across scopes: print_screen#33 print_screen#17 -Not aliassing across scopes: print_line_cursor#52 print_line_cursor#33 -Not aliassing across scopes: print_char_cursor#52 print_char_cursor#35 +Not aliassing across scopes: form_cursor_count#10 form_cursor_count#3 +Not aliassing across scopes: key_down_debounce#8 key_down_debounce#3 +Not aliassing across scopes: form_field_idx#11 form_field_idx#3 +Not aliassing across scopes: key_right_debounce#8 key_right_debounce#3 +Not aliassing across scopes: print_screen#36 print_screen#17 +Not aliassing across scopes: print_line_cursor#56 print_line_cursor#33 +Not aliassing across scopes: print_char_cursor#56 print_char_cursor#35 +Not aliassing across scopes: form_cursor_count#53 form_cursor_count#18 +Not aliassing across scopes: key_down_debounce#60 key_down_debounce#15 +Not aliassing across scopes: form_field_idx#62 form_field_idx#23 +Not aliassing across scopes: key_right_debounce#60 key_right_debounce#15 +Not aliassing across scopes: form_fields_cnt#27 form_fields_cnt#29 Not aliassing across scopes: menu::c#0 COLS#0 -Not aliassing identity: print_screen#24 print_screen#24 -Not aliassing identity: print_line_cursor#42 print_line_cursor#42 -Not aliassing identity: print_char_cursor#45 print_char_cursor#45 +Not aliassing identity: print_screen#23 print_screen#23 +Not aliassing identity: print_line_cursor#41 print_line_cursor#41 +Not aliassing identity: print_char_cursor#44 print_char_cursor#44 +Not aliassing identity: form_cursor_count#50 form_cursor_count#50 +Not aliassing identity: key_down_debounce#57 key_down_debounce#57 +Not aliassing identity: form_field_idx#57 form_field_idx#57 +Not aliassing identity: key_right_debounce#57 key_right_debounce#57 +Not aliassing identity: form_fields_cnt#20 form_fields_cnt#20 Not aliassing across scopes: print_set_screen::screen#0 menu::SCREEN#0 Not aliassing across scopes: print_screen#14 print_screen#2 Not aliassing across scopes: print_line_cursor#25 print_line_cursor#8 @@ -3021,22 +4647,57 @@ Not aliassing across scopes: print_char_cursor#27 print_char_cursor#7 Not aliassing across scopes: print_str_lines::str#1 MENU_TEXT#0 Not aliassing across scopes: print_char_cursor#28 print_char_cursor#3 Not aliassing across scopes: print_line_cursor#27 print_line_cursor#2 -Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_SPACE#0 +Not aliassing across scopes: form_set_screen::screen#0 menu::SCREEN#0 +Not aliassing across scopes: form_cursor_count#12 form_cursor_count#8 +Not aliassing across scopes: key_down_debounce#10 key_down_debounce#6 +Not aliassing across scopes: form_field_idx#13 form_field_idx#9 +Not aliassing across scopes: key_right_debounce#10 key_right_debounce#5 +Not aliassing across scopes: form_set_screen::screen#1 form_set_screen::screen#0 +Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 +Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#9 +Not aliassing across scopes: form_field_ptr::field_idx#0 form_render_values::idx#2 +Not aliassing across scopes: form_field_ptr::return#2 form_field_ptr::return#1 +Not aliassing across scopes: form_render_values::$0 form_field_ptr::return#5 +Not aliassing across scopes: form_field_idx#15 form_field_idx#25 +Not aliassing across scopes: form_cursor_count#22 form_cursor_count#20 +Not aliassing across scopes: key_down_debounce#53 key_down_debounce#17 +Not aliassing across scopes: key_right_debounce#56 key_right_debounce#17 +Not aliassing across scopes: form_fields_cnt#24 form_fields_cnt#26 +Not aliassing across scopes: form_field_ptr::field_idx#1 form_field_idx#15 +Not aliassing across scopes: form_field_ptr::return#3 form_field_ptr::return#1 +Not aliassing across scopes: form_control::$0 form_field_ptr::return#6 +Not aliassing across scopes: form_cursor_count#6 FORM_CURSOR_BLINK#0 +Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_CRSR_DOWN#0 Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#1 -Not aliassing across scopes: menu::$29 keyboard_key_pressed::return#4 +Not aliassing across scopes: form_control::$8 keyboard_key_pressed::return#7 +Not aliassing across scopes: keyboard_key_pressed::key#1 KEY_CRSR_RIGHT#0 +Not aliassing across scopes: keyboard_key_pressed::return#3 keyboard_key_pressed::return#1 +Not aliassing across scopes: form_control::$23 keyboard_key_pressed::return#8 +Not aliassing across scopes: key_down_debounce#5 form_control::key_down#1 +Not aliassing across scopes: keyboard_key_pressed::key#2 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_key_pressed::return#4 keyboard_key_pressed::return#1 +Not aliassing across scopes: form_control::$14 keyboard_key_pressed::return#9 +Not aliassing across scopes: key_right_debounce#6 form_control::key_right#1 +Not aliassing across scopes: keyboard_key_pressed::key#3 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_key_pressed::return#5 keyboard_key_pressed::return#1 +Not aliassing across scopes: form_control::$28 keyboard_key_pressed::return#10 Not aliassing across scopes: print_screen#16 print_screen#4 Not aliassing across scopes: print_line_cursor#29 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#30 print_char_cursor#11 -Alias (byte*) print_screen#0 = (byte*) print_line_cursor#0 (byte*) print_char_cursor#0 (byte*) print_screen#29 (byte*) print_line_cursor#48 (byte*) print_char_cursor#49 (byte*) print_screen#28 (byte*) print_line_cursor#45 (byte*) print_char_cursor#48 (byte*) print_screen#22 (byte*) print_line_cursor#38 (byte*) print_char_cursor#40 +Not aliassing across scopes: form_cursor_count#17 form_cursor_count#1 +Not aliassing across scopes: key_down_debounce#14 key_down_debounce#1 +Not aliassing across scopes: form_field_idx#22 form_field_idx#1 +Not aliassing across scopes: key_right_debounce#14 key_right_debounce#1 +Alias (byte*) print_screen#0 = (byte*) print_line_cursor#0 (byte*) print_char_cursor#0 (byte*) print_screen#35 (byte*) print_line_cursor#55 (byte*) print_char_cursor#55 (byte*) print_screen#31 (byte*) print_line_cursor#52 (byte*) print_char_cursor#52 (byte*) print_screen#30 (byte*) print_line_cursor#50 (byte*) print_char_cursor#51 (byte*) print_screen#26 (byte*) print_line_cursor#44 (byte*) print_char_cursor#47 (byte*) print_screen#21 (byte*) print_line_cursor#37 (byte*) print_char_cursor#39 Alias (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#6 -Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#42 (byte*) print_char_cursor#33 (byte*) print_char_cursor#3 -Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#50 (byte*) print_line_cursor#31 (byte*) print_line_cursor#2 +Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#41 (byte*) print_char_cursor#33 (byte*) print_char_cursor#3 +Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#51 (byte*) print_line_cursor#31 (byte*) print_line_cursor#2 Alias (byte) print_str_lines::ch#0 = (byte) print_str_lines::ch#2 Alias (byte*) print_char_cursor#17 = (byte*) print_char_cursor#31 Alias (byte*) print_str_lines::str#0 = (byte*) print_str_lines::str#8 -Alias (byte*) print_line_cursor#46 = (byte*) print_line_cursor#47 -Alias (byte*) print_line_cursor#30 = (byte*) print_line_cursor#40 -Alias (byte*) print_char_cursor#32 = (byte*) print_char_cursor#43 +Alias (byte*) print_line_cursor#45 = (byte*) print_line_cursor#46 +Alias (byte*) print_line_cursor#30 = (byte*) print_line_cursor#39 +Alias (byte*) print_char_cursor#32 = (byte*) print_char_cursor#42 Alias (byte*) print_str_lines::str#5 = (byte*) print_str_lines::str#9 (byte*) print_str_lines::str#7 Alias (byte*) print_line_cursor#1 = (byte*) print_line_cursor#16 Alias (byte*) print_char_cursor#18 = (byte*) print_char_cursor#2 @@ -3047,41 +4708,130 @@ Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::row_p Alias (byte) keyboard_key_pressed::colidx#0 = (byte~) keyboard_key_pressed::$0 (byte) keyboard_key_pressed::colidx#1 Alias (byte) keyboard_key_pressed::rowidx#0 = (byte~) keyboard_key_pressed::$1 Alias (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#4 -Alias (byte) keyboard_key_pressed::return#0 = (byte~) keyboard_key_pressed::$3 (byte) keyboard_key_pressed::return#3 (byte) keyboard_key_pressed::return#1 +Alias (byte) keyboard_key_pressed::return#0 = (byte~) keyboard_key_pressed::$3 (byte) keyboard_key_pressed::return#6 (byte) keyboard_key_pressed::return#1 Alias (byte*) print_screen#13 = (byte*) print_screen#17 (byte*) print_screen#18 (byte*) print_screen#4 Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#33 (byte*) print_line_cursor#34 (byte*) print_line_cursor#24 Alias (byte*) print_char_cursor#11 = (byte*) print_char_cursor#35 (byte*) print_char_cursor#36 (byte*) print_char_cursor#25 +Alias (signed byte) form_cursor_count#1 = (signed byte) form_cursor_count#18 (signed byte) form_cursor_count#19 (signed byte) form_cursor_count#11 +Alias (byte) key_down_debounce#1 = (byte) key_down_debounce#15 (byte) key_down_debounce#16 (byte) key_down_debounce#9 +Alias (byte) form_field_idx#1 = (byte) form_field_idx#23 (byte) form_field_idx#24 (byte) form_field_idx#12 +Alias (byte) key_right_debounce#1 = (byte) key_right_debounce#15 (byte) key_right_debounce#16 (byte) key_right_debounce#9 +Alias (byte) form_fields_cnt#29 = (byte) form_fields_cnt#32 (byte) form_fields_cnt#35 Alias (byte*) print_screen#12 = (byte*) print_screen#3 Alias (byte*) print_line_cursor#23 = (byte*) print_line_cursor#9 Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#24 +Alias (signed byte) form_cursor_count#0 = (signed byte) form_cursor_count#10 +Alias (byte) key_down_debounce#0 = (byte) key_down_debounce#8 +Alias (byte) form_field_idx#0 = (byte) form_field_idx#11 +Alias (byte) key_right_debounce#0 = (byte) key_right_debounce#8 Alias (byte[]) MENU_TEXT#0 = (string~) $8 -Alias (byte*) print_screen#30 = (byte*) print_screen#32 -Alias (byte*) print_line_cursor#49 = (byte*) print_line_cursor#51 -Alias (byte*) print_char_cursor#50 = (byte*) print_char_cursor#51 -Alias (byte*) print_screen#19 = (byte*) print_screen#24 -Alias (byte*) print_line_cursor#35 = (byte*) print_line_cursor#42 -Alias (byte*) print_char_cursor#37 = (byte*) print_char_cursor#45 -Alias (byte*) print_screen#14 = (byte*) print_screen#5 (byte*) print_screen#31 (byte*) print_screen#25 +Alias (byte*) print_screen#27 = (byte*) print_screen#32 +Alias (byte*) print_line_cursor#47 = (byte*) print_line_cursor#53 +Alias (byte*) print_char_cursor#48 = (byte*) print_char_cursor#53 +Alias (signed byte) form_cursor_count#51 = (signed byte) form_cursor_count#52 +Alias (byte) key_down_debounce#58 = (byte) key_down_debounce#59 +Alias (byte) form_field_idx#60 = (byte) form_field_idx#61 +Alias (byte) key_right_debounce#58 = (byte) key_right_debounce#59 +Alias (byte) form_fields_cnt#23 = (byte) form_fields_cnt#25 +Alias (byte*) print_screen#19 = (byte*) print_screen#23 +Alias (byte*) print_line_cursor#35 = (byte*) print_line_cursor#41 +Alias (byte*) print_char_cursor#37 = (byte*) print_char_cursor#44 +Alias (signed byte) form_cursor_count#28 = (signed byte) form_cursor_count#49 (signed byte) form_cursor_count#50 (signed byte) form_cursor_count#46 (signed byte) form_cursor_count#43 (signed byte) form_cursor_count#39 (signed byte) form_cursor_count#34 +Alias (byte) key_down_debounce#26 = (byte) key_down_debounce#56 (byte) key_down_debounce#57 (byte) key_down_debounce#55 (byte) key_down_debounce#52 (byte) key_down_debounce#46 (byte) key_down_debounce#38 +Alias (byte) form_field_idx#34 = (byte) form_field_idx#55 (byte) form_field_idx#57 (byte) form_field_idx#52 (byte) form_field_idx#50 (byte) form_field_idx#47 (byte) form_field_idx#42 +Alias (byte) key_right_debounce#26 = (byte) key_right_debounce#55 (byte) key_right_debounce#57 (byte) key_right_debounce#52 (byte) key_right_debounce#49 (byte) key_right_debounce#44 (byte) key_right_debounce#36 +Alias (byte) form_fields_cnt#11 = (byte) form_fields_cnt#18 (byte) form_fields_cnt#20 (byte) form_fields_cnt#15 (byte) form_fields_cnt#13 (byte) form_fields_cnt#9 (byte) form_fields_cnt#36 +Alias (byte*) print_screen#14 = (byte*) print_screen#5 (byte*) print_screen#37 (byte*) print_screen#33 (byte*) print_screen#28 (byte*) print_screen#24 Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#25 Alias (byte*) print_char_cursor#12 = (byte*) print_char_cursor#26 Alias (byte*) print_line_cursor#12 = (byte*) print_line_cursor#26 Alias (byte*) print_char_cursor#13 = (byte*) print_char_cursor#27 -Alias (byte*) print_char_cursor#14 = (byte*) print_char_cursor#28 -Alias (byte*) print_line_cursor#13 = (byte*) print_line_cursor#27 -Alias (byte*) print_screen#20 = (byte*) print_screen#27 (byte*) print_screen#21 (byte*) print_screen#26 -Alias (byte*) print_line_cursor#36 = (byte*) print_line_cursor#44 (byte*) print_line_cursor#37 (byte*) print_line_cursor#43 -Alias (byte*) print_char_cursor#38 = (byte*) print_char_cursor#47 (byte*) print_char_cursor#39 (byte*) print_char_cursor#46 -Alias (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#4 -Alias (byte*) print_screen#15 = (byte*) print_screen#6 -Alias (byte*) print_line_cursor#14 = (byte*) print_line_cursor#28 -Alias (byte*) print_char_cursor#15 = (byte*) print_char_cursor#29 +Alias (byte*) print_char_cursor#14 = (byte*) print_char_cursor#28 (byte*) print_char_cursor#49 (byte*) print_char_cursor#45 +Alias (byte*) print_line_cursor#13 = (byte*) print_line_cursor#27 (byte*) print_line_cursor#48 (byte*) print_line_cursor#42 +Alias (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#35 (signed byte) form_cursor_count#21 (signed byte) form_cursor_count#3 +Alias (byte) key_down_debounce#11 = (byte) key_down_debounce#39 (byte) key_down_debounce#18 (byte) key_down_debounce#3 +Alias (byte) form_field_idx#14 = (byte) form_field_idx#43 (byte) form_field_idx#26 (byte) form_field_idx#3 +Alias (byte) key_right_debounce#11 = (byte) key_right_debounce#37 (byte) key_right_debounce#18 (byte) key_right_debounce#3 +Alias (byte*) print_screen#15 = (byte*) print_screen#38 (byte*) print_screen#20 (byte*) print_screen#6 +Alias (byte*) print_line_cursor#14 = (byte*) print_line_cursor#57 (byte*) print_line_cursor#36 (byte*) print_line_cursor#28 +Alias (byte*) print_char_cursor#15 = (byte*) print_char_cursor#57 (byte*) print_char_cursor#38 (byte*) print_char_cursor#29 +Alias (byte) form_fields_cnt#30 = (byte) form_fields_cnt#33 +Alias (signed byte) form_cursor_count#20 = (signed byte) form_cursor_count#36 (signed byte) form_cursor_count#29 +Alias (byte) key_down_debounce#17 = (byte) key_down_debounce#40 (byte) key_down_debounce#27 +Alias (byte) form_field_idx#25 = (byte) form_field_idx#44 (byte) form_field_idx#35 +Alias (byte) key_right_debounce#17 = (byte) key_right_debounce#38 (byte) key_right_debounce#27 +Alias (byte*) print_screen#25 = (byte*) print_screen#39 (byte*) print_screen#34 (byte*) print_screen#29 +Alias (byte*) print_line_cursor#43 = (byte*) print_line_cursor#58 (byte*) print_line_cursor#54 (byte*) print_line_cursor#49 +Alias (byte*) print_char_cursor#46 = (byte*) print_char_cursor#58 (byte*) print_char_cursor#54 (byte*) print_char_cursor#50 +Alias (byte) form_fields_cnt#26 = (byte) form_fields_cnt#31 (byte) form_fields_cnt#28 (byte) form_fields_cnt#37 +Alias (signed byte) form_cursor_count#12 = (signed byte) form_cursor_count#2 +Alias (byte) key_down_debounce#10 = (byte) key_down_debounce#2 +Alias (byte) form_field_idx#13 = (byte) form_field_idx#2 +Alias (byte) key_right_debounce#10 = (byte) key_right_debounce#2 +Alias (signed byte) form_cursor_count#26 = (signed byte) form_cursor_count#4 (signed word/signed byte/signed dword~) $9 +Alias (byte*) form_set_screen::line#0 = (byte*) form_set_screen::screen#1 +Alias (byte*) form_set_screen::line#1 = (byte*~) form_set_screen::$2 +Alias (byte*) form_field_ptr::line#0 = (byte*~) form_field_ptr::$0 +Alias (byte*) form_field_ptr::return#0 = (byte*) form_field_ptr::field#0 (byte*~) form_field_ptr::$1 (byte*) form_field_ptr::return#4 (byte*) form_field_ptr::return#1 +Alias (byte*) form_field_ptr::return#2 = (byte*) form_field_ptr::return#5 +Alias (byte) form_render_values::idx#2 = (byte) form_render_values::idx#3 +Alias (byte) form_fields_cnt#1 = (byte) form_fields_cnt#4 +Alias (byte*) form_render_values::field#0 = (byte*~) form_render_values::$0 +Alias (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#6 +Alias (signed byte) form_cursor_count#14 = (signed byte) form_cursor_count#22 +Alias (byte) key_down_debounce#47 = (byte) key_down_debounce#48 (byte) key_down_debounce#53 +Alias (byte) key_right_debounce#53 = (byte) key_right_debounce#54 (byte) key_right_debounce#56 +Alias (byte) form_field_idx#15 = (byte) form_field_idx#59 (byte) form_field_idx#58 +Alias (byte) form_fields_cnt#21 = (byte) form_fields_cnt#22 (byte) form_fields_cnt#24 +Alias (byte*) form_control::field#0 = (byte*~) form_control::$0 (byte*) form_control::field#9 +Alias (byte*) form_control::field#1 = (byte*) form_control::field#5 (byte*) form_control::field#2 +Alias (byte) key_down_debounce#28 = (byte) key_down_debounce#29 (byte) key_down_debounce#41 +Alias (byte) key_right_debounce#45 = (byte) key_right_debounce#46 (byte) key_right_debounce#50 +Alias (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#48 (signed byte) form_cursor_count#47 +Alias (byte) form_field_idx#53 = (byte) form_field_idx#54 (byte) form_field_idx#56 +Alias (byte) form_fields_cnt#16 = (byte) form_fields_cnt#17 (byte) form_fields_cnt#19 +Alias (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#7 +Alias (byte) key_down_debounce#12 = (byte) key_down_debounce#19 +Alias (byte) key_right_debounce#28 = (byte) key_right_debounce#39 (byte) key_right_debounce#40 (byte) key_right_debounce#29 (byte) key_right_debounce#51 (byte) key_right_debounce#47 (byte) key_right_debounce#42 (byte) key_right_debounce#41 (byte) key_right_debounce#32 (byte) key_right_debounce#30 (byte) key_right_debounce#33 (byte) key_right_debounce#31 +Alias (byte*) form_control::field#10 = (byte*) form_control::field#12 (byte*) form_control::field#6 (byte*) form_control::field#17 (byte*) form_control::field#3 +Alias (signed byte) form_cursor_count#40 = (signed byte) form_cursor_count#44 (signed byte) form_cursor_count#45 (signed byte) form_cursor_count#41 +Alias (byte) form_field_idx#16 = (byte) form_field_idx#48 (byte) form_field_idx#51 (byte) form_field_idx#46 (byte) form_field_idx#49 (byte) form_field_idx#36 (byte) form_field_idx#27 (byte) form_field_idx#17 +Alias (byte) form_fields_cnt#10 = (byte) form_fields_cnt#12 (byte) form_fields_cnt#14 (byte) form_fields_cnt#8 (byte) form_fields_cnt#5 (byte) form_fields_cnt#6 (byte) form_fields_cnt#2 (byte) form_fields_cnt#3 +Alias (byte) form_control::key_down#0 = (byte~) form_control::$8 (byte) form_control::key_down#1 +Alias (byte) keyboard_key_pressed::return#3 = (byte) keyboard_key_pressed::return#8 +Alias (byte) key_right_debounce#12 = (byte) key_right_debounce#19 (byte) key_right_debounce#20 +Alias (signed byte) form_cursor_count#23 = (signed byte) form_cursor_count#30 (signed byte) form_cursor_count#37 (signed byte) form_cursor_count#31 (signed byte) form_cursor_count#24 (signed byte) form_cursor_count#42 (signed byte) form_cursor_count#38 (signed byte) form_cursor_count#32 (signed byte) form_cursor_count#33 +Alias (byte) key_down_debounce#20 = (byte) key_down_debounce#34 (byte) key_down_debounce#42 (byte) key_down_debounce#35 (byte) key_down_debounce#21 (byte) key_down_debounce#51 (byte) key_down_debounce#45 (byte) key_down_debounce#36 (byte) key_down_debounce#37 +Alias (byte) form_field_idx#19 = (byte) form_field_idx#39 (byte) form_field_idx#45 (byte) form_field_idx#28 (byte) form_field_idx#40 (byte) form_field_idx#29 (byte) form_field_idx#41 (byte) form_field_idx#31 (byte) form_field_idx#20 +Alias (byte*) form_control::field#11 = (byte*) form_control::field#15 (byte*) form_control::field#16 (byte*) form_control::field#14 (byte*) form_control::field#13 (byte*) form_control::field#7 (byte*) form_control::field#8 +Alias (byte) form_control::key_right#0 = (byte~) form_control::$23 (byte) form_control::key_right#1 +Alias (byte) key_down_debounce#30 = (byte) key_down_debounce#49 (byte) key_down_debounce#5 (byte) key_down_debounce#54 (byte) key_down_debounce#50 (byte) key_down_debounce#44 (byte) key_down_debounce#43 (byte) key_down_debounce#32 (byte) key_down_debounce#33 (byte) key_down_debounce#31 +Alias (byte) keyboard_key_pressed::return#4 = (byte) keyboard_key_pressed::return#9 +Alias (byte) form_field_idx#37 = (byte) form_field_idx#6 +Alias (signed byte) form_cursor_count#7 = (signed word/signed byte/signed dword~) form_control::$22 +Alias (byte) form_field_idx#38 = (byte) form_field_idx#5 +Alias (byte) form_field_idx#8 = (byte/signed word/word/dword/signed dword~) form_control::$21 +Alias (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#8 +Alias (byte) key_down_debounce#13 = (byte) key_down_debounce#6 +Alias (byte) form_field_idx#18 = (byte) form_field_idx#9 +Alias (byte) key_right_debounce#13 = (byte) key_right_debounce#5 +Alias (byte) key_right_debounce#21 = (byte) key_right_debounce#6 (byte) key_right_debounce#48 (byte) key_right_debounce#43 (byte) key_right_debounce#34 (byte) key_right_debounce#35 +Alias (byte) keyboard_key_pressed::return#10 = (byte) keyboard_key_pressed::return#5 +Alias (byte) key_down_debounce#24 = (byte) key_down_debounce#4 +Alias (byte) form_field_idx#32 = (byte) form_field_idx#4 +Alias (byte) key_right_debounce#24 = (byte) key_right_debounce#4 +Alias (byte) form_fields_cnt#0 = (byte) form_fields_cnt#38 Alias (byte*) print_screen#16 = (byte*) print_screen#7 Alias (byte*) print_line_cursor#15 = (byte*) print_line_cursor#29 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#30 +Alias (signed byte) form_cursor_count#17 = (signed byte) form_cursor_count#9 +Alias (byte) key_down_debounce#14 = (byte) key_down_debounce#7 +Alias (byte) form_field_idx#10 = (byte) form_field_idx#22 +Alias (byte) key_right_debounce#14 = (byte) key_right_debounce#7 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: print_str_lines::str#4 print_str_lines::str#1 -Not aliassing across scopes: print_char_cursor#41 print_char_cursor#13 -Not aliassing across scopes: print_line_cursor#39 print_line_cursor#12 +Not aliassing across scopes: print_char_cursor#40 print_char_cursor#13 +Not aliassing across scopes: print_line_cursor#38 print_line_cursor#12 Not aliassing across scopes: print_line_cursor#1 print_line_cursor#19 Not aliassing across scopes: print_char_cursor#18 print_line_cursor#19 Not aliassing across scopes: print_line_cursor#32 print_line_cursor#30 @@ -3091,23 +4841,42 @@ Not aliassing across scopes: print_cls::sc#0 print_screen#8 Not aliassing across scopes: print_set_screen::screen#1 print_set_screen::screen#0 Not aliassing across scopes: print_screen#1 print_set_screen::screen#1 Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 -Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0 +Not aliassing across scopes: keyboard_key_pressed::key#4 keyboard_key_pressed::key#2 Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2 -Not aliassing across scopes: print_screen#23 print_screen#0 -Not aliassing across scopes: print_line_cursor#41 print_screen#0 -Not aliassing across scopes: print_char_cursor#44 print_screen#0 +Not aliassing across scopes: print_screen#22 print_screen#0 +Not aliassing across scopes: print_line_cursor#40 print_screen#0 +Not aliassing across scopes: print_char_cursor#43 print_screen#0 +Not aliassing across scopes: form_cursor_count#27 form_cursor_count#26 +Not aliassing across scopes: key_down_debounce#25 key_down_debounce#24 +Not aliassing across scopes: form_field_idx#33 form_field_idx#32 +Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 +Not aliassing across scopes: form_fields_cnt#34 form_fields_cnt#0 Not aliassing across scopes: print_screen#12 print_screen#15 Not aliassing across scopes: print_line_cursor#23 print_line_cursor#14 Not aliassing across scopes: print_char_cursor#10 print_char_cursor#15 -Not aliassing across scopes: print_screen#33 print_screen#13 -Not aliassing across scopes: print_line_cursor#52 print_line_cursor#10 -Not aliassing across scopes: print_char_cursor#52 print_char_cursor#11 +Not aliassing across scopes: form_cursor_count#0 form_cursor_count#13 +Not aliassing across scopes: key_down_debounce#0 key_down_debounce#11 +Not aliassing across scopes: form_field_idx#0 form_field_idx#14 +Not aliassing across scopes: key_right_debounce#0 key_right_debounce#11 +Not aliassing across scopes: print_screen#36 print_screen#13 +Not aliassing across scopes: print_line_cursor#56 print_line_cursor#10 +Not aliassing across scopes: print_char_cursor#56 print_char_cursor#11 +Not aliassing across scopes: form_cursor_count#53 form_cursor_count#1 +Not aliassing across scopes: key_down_debounce#60 key_down_debounce#1 +Not aliassing across scopes: form_field_idx#62 form_field_idx#1 +Not aliassing across scopes: key_right_debounce#60 key_right_debounce#1 +Not aliassing across scopes: form_fields_cnt#27 form_fields_cnt#29 Not aliassing across scopes: menu::c#0 COLS#0 Not aliassing identity: print_screen#19 print_screen#19 Not aliassing identity: print_line_cursor#35 print_line_cursor#35 Not aliassing identity: print_char_cursor#37 print_char_cursor#37 +Not aliassing identity: form_cursor_count#28 form_cursor_count#28 +Not aliassing identity: key_down_debounce#26 key_down_debounce#26 +Not aliassing identity: form_field_idx#34 form_field_idx#34 +Not aliassing identity: key_right_debounce#26 key_right_debounce#26 +Not aliassing identity: form_fields_cnt#11 form_fields_cnt#11 Not aliassing across scopes: print_set_screen::screen#0 menu::SCREEN#0 Not aliassing across scopes: print_screen#14 print_screen#1 Not aliassing across scopes: print_line_cursor#11 print_screen#1 @@ -3117,22 +4886,63 @@ Not aliassing across scopes: print_char_cursor#13 print_line_cursor#21 Not aliassing across scopes: print_str_lines::str#1 MENU_TEXT#0 Not aliassing across scopes: print_char_cursor#14 print_char_cursor#19 Not aliassing across scopes: print_line_cursor#13 print_line_cursor#17 -Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_SPACE#0 +Not aliassing across scopes: form_set_screen::screen#0 menu::SCREEN#0 +Not aliassing across scopes: form_cursor_count#12 form_cursor_count#16 +Not aliassing across scopes: key_down_debounce#10 key_down_debounce#13 +Not aliassing across scopes: form_field_idx#13 form_field_idx#18 +Not aliassing across scopes: key_right_debounce#10 key_right_debounce#13 +Not aliassing across scopes: form_set_screen::line#0 form_set_screen::screen#0 +Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 +Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#11 +Not aliassing across scopes: form_field_ptr::field_idx#0 form_render_values::idx#2 +Not aliassing across scopes: form_field_ptr::return#2 form_field_ptr::return#0 +Not aliassing across scopes: form_render_values::field#0 form_field_ptr::return#2 +Not aliassing across scopes: form_field_idx#15 form_field_idx#25 +Not aliassing across scopes: form_cursor_count#14 form_cursor_count#20 +Not aliassing across scopes: key_down_debounce#47 key_down_debounce#17 +Not aliassing across scopes: key_right_debounce#53 key_right_debounce#17 +Not aliassing across scopes: form_fields_cnt#21 form_fields_cnt#26 +Not aliassing across scopes: form_field_ptr::field_idx#1 form_field_idx#15 +Not aliassing across scopes: form_field_ptr::return#3 form_field_ptr::return#0 +Not aliassing across scopes: form_control::field#0 form_field_ptr::return#3 +Not aliassing across scopes: form_cursor_count#6 FORM_CURSOR_BLINK#0 +Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_CRSR_DOWN#0 Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#0 -Not aliassing across scopes: menu::$29 keyboard_key_pressed::return#2 +Not aliassing across scopes: form_control::key_down#0 keyboard_key_pressed::return#2 +Not aliassing across scopes: keyboard_key_pressed::key#1 KEY_CRSR_RIGHT#0 +Not aliassing across scopes: keyboard_key_pressed::return#3 keyboard_key_pressed::return#0 +Not aliassing across scopes: form_control::key_right#0 keyboard_key_pressed::return#3 +Not aliassing across scopes: key_down_debounce#30 form_control::key_down#0 +Not aliassing across scopes: keyboard_key_pressed::key#2 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_key_pressed::return#4 keyboard_key_pressed::return#0 +Not aliassing across scopes: form_control::$14 keyboard_key_pressed::return#4 +Not aliassing across scopes: key_right_debounce#21 form_control::key_right#0 +Not aliassing across scopes: keyboard_key_pressed::key#3 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_key_pressed::return#10 keyboard_key_pressed::return#0 +Not aliassing across scopes: form_control::$28 keyboard_key_pressed::return#10 Not aliassing across scopes: print_screen#16 print_screen#13 Not aliassing across scopes: print_line_cursor#15 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#16 print_char_cursor#11 +Not aliassing across scopes: form_cursor_count#17 form_cursor_count#1 +Not aliassing across scopes: key_down_debounce#14 key_down_debounce#1 +Not aliassing across scopes: form_field_idx#10 form_field_idx#1 +Not aliassing across scopes: key_right_debounce#14 key_right_debounce#1 Alias (byte) print_str_lines::ch#0 = (byte) print_str_lines::ch#1 Alias (byte*) print_str_lines::str#0 = (byte*) print_str_lines::str#5 -Alias (byte*) print_line_cursor#30 = (byte*) print_line_cursor#46 -Alias (byte*) print_screen#15 = (byte*) print_screen#20 -Alias (byte*) print_line_cursor#14 = (byte*) print_line_cursor#36 -Alias (byte*) print_char_cursor#15 = (byte*) print_char_cursor#38 +Alias (byte*) print_line_cursor#30 = (byte*) print_line_cursor#45 +Alias (byte*) form_control::field#0 = (byte*) form_control::field#1 (byte*) form_control::field#10 (byte*) form_control::field#11 (byte*) form_control::field#4 +Alias (byte) key_down_debounce#12 = (byte) key_down_debounce#28 (byte) key_down_debounce#47 +Alias (byte) key_right_debounce#12 = (byte) key_right_debounce#45 (byte) key_right_debounce#53 (byte) key_right_debounce#28 (byte) key_right_debounce#23 +Alias (byte) form_field_idx#15 = (byte) form_field_idx#53 (byte) form_field_idx#16 (byte) form_field_idx#19 (byte) form_field_idx#21 +Alias (byte) form_fields_cnt#10 = (byte) form_fields_cnt#16 (byte) form_fields_cnt#21 +Alias (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#40 (signed byte) form_cursor_count#23 (signed byte) form_cursor_count#25 +Alias (byte) key_down_debounce#23 = (byte) key_down_debounce#30 +Alias (byte) key_down_debounce#20 = (byte) key_down_debounce#22 +Alias (byte) key_right_debounce#21 = (byte) key_right_debounce#22 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: print_str_lines::str#4 print_str_lines::str#1 -Not aliassing across scopes: print_char_cursor#41 print_char_cursor#13 -Not aliassing across scopes: print_line_cursor#39 print_line_cursor#12 +Not aliassing across scopes: print_char_cursor#40 print_char_cursor#13 +Not aliassing across scopes: print_line_cursor#38 print_line_cursor#12 Not aliassing across scopes: print_line_cursor#1 print_line_cursor#19 Not aliassing across scopes: print_char_cursor#18 print_line_cursor#19 Not aliassing across scopes: print_line_cursor#32 print_line_cursor#30 @@ -3142,23 +4952,42 @@ Not aliassing across scopes: print_cls::sc#0 print_screen#8 Not aliassing across scopes: print_set_screen::screen#1 print_set_screen::screen#0 Not aliassing across scopes: print_screen#1 print_set_screen::screen#1 Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0 -Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0 +Not aliassing across scopes: keyboard_key_pressed::key#4 keyboard_key_pressed::key#2 Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0 Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0 Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2 -Not aliassing across scopes: print_screen#23 print_screen#0 -Not aliassing across scopes: print_line_cursor#41 print_screen#0 -Not aliassing across scopes: print_char_cursor#44 print_screen#0 +Not aliassing across scopes: print_screen#22 print_screen#0 +Not aliassing across scopes: print_line_cursor#40 print_screen#0 +Not aliassing across scopes: print_char_cursor#43 print_screen#0 +Not aliassing across scopes: form_cursor_count#27 form_cursor_count#26 +Not aliassing across scopes: key_down_debounce#25 key_down_debounce#24 +Not aliassing across scopes: form_field_idx#33 form_field_idx#32 +Not aliassing across scopes: key_right_debounce#25 key_right_debounce#24 +Not aliassing across scopes: form_fields_cnt#34 form_fields_cnt#0 Not aliassing across scopes: print_screen#12 print_screen#15 Not aliassing across scopes: print_line_cursor#23 print_line_cursor#14 Not aliassing across scopes: print_char_cursor#10 print_char_cursor#15 -Not aliassing across scopes: print_screen#33 print_screen#13 -Not aliassing across scopes: print_line_cursor#52 print_line_cursor#10 -Not aliassing across scopes: print_char_cursor#52 print_char_cursor#11 +Not aliassing across scopes: form_cursor_count#0 form_cursor_count#13 +Not aliassing across scopes: key_down_debounce#0 key_down_debounce#11 +Not aliassing across scopes: form_field_idx#0 form_field_idx#14 +Not aliassing across scopes: key_right_debounce#0 key_right_debounce#11 +Not aliassing across scopes: print_screen#36 print_screen#13 +Not aliassing across scopes: print_line_cursor#56 print_line_cursor#10 +Not aliassing across scopes: print_char_cursor#56 print_char_cursor#11 +Not aliassing across scopes: form_cursor_count#53 form_cursor_count#1 +Not aliassing across scopes: key_down_debounce#60 key_down_debounce#1 +Not aliassing across scopes: form_field_idx#62 form_field_idx#1 +Not aliassing across scopes: key_right_debounce#60 key_right_debounce#1 +Not aliassing across scopes: form_fields_cnt#27 form_fields_cnt#29 Not aliassing across scopes: menu::c#0 COLS#0 Not aliassing identity: print_screen#19 print_screen#19 Not aliassing identity: print_line_cursor#35 print_line_cursor#35 Not aliassing identity: print_char_cursor#37 print_char_cursor#37 +Not aliassing identity: form_cursor_count#28 form_cursor_count#28 +Not aliassing identity: key_down_debounce#26 key_down_debounce#26 +Not aliassing identity: form_field_idx#34 form_field_idx#34 +Not aliassing identity: key_right_debounce#26 key_right_debounce#26 +Not aliassing identity: form_fields_cnt#11 form_fields_cnt#11 Not aliassing across scopes: print_set_screen::screen#0 menu::SCREEN#0 Not aliassing across scopes: print_screen#14 print_screen#1 Not aliassing across scopes: print_line_cursor#11 print_screen#1 @@ -3168,28 +4997,80 @@ Not aliassing across scopes: print_char_cursor#13 print_line_cursor#21 Not aliassing across scopes: print_str_lines::str#1 MENU_TEXT#0 Not aliassing across scopes: print_char_cursor#14 print_char_cursor#19 Not aliassing across scopes: print_line_cursor#13 print_line_cursor#17 -Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_SPACE#0 +Not aliassing across scopes: form_set_screen::screen#0 menu::SCREEN#0 +Not aliassing across scopes: form_cursor_count#12 form_cursor_count#16 +Not aliassing across scopes: key_down_debounce#10 key_down_debounce#13 +Not aliassing across scopes: form_field_idx#13 form_field_idx#18 +Not aliassing across scopes: key_right_debounce#10 key_right_debounce#13 +Not aliassing across scopes: form_set_screen::line#0 form_set_screen::screen#0 +Not aliassing across scopes: form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 +Not aliassing across scopes: form_fields_cnt#7 form_fields_cnt#11 +Not aliassing across scopes: form_field_ptr::field_idx#0 form_render_values::idx#2 +Not aliassing across scopes: form_field_ptr::return#2 form_field_ptr::return#0 +Not aliassing across scopes: form_render_values::field#0 form_field_ptr::return#2 +Not aliassing across scopes: form_field_idx#15 form_field_idx#25 +Not aliassing across scopes: form_cursor_count#14 form_cursor_count#20 +Not aliassing across scopes: key_down_debounce#12 key_down_debounce#17 +Not aliassing across scopes: key_right_debounce#12 key_right_debounce#17 +Not aliassing across scopes: form_fields_cnt#10 form_fields_cnt#26 +Not aliassing across scopes: form_field_ptr::field_idx#1 form_field_idx#15 +Not aliassing across scopes: form_field_ptr::return#3 form_field_ptr::return#0 +Not aliassing across scopes: form_control::field#0 form_field_ptr::return#3 +Not aliassing across scopes: form_cursor_count#6 FORM_CURSOR_BLINK#0 +Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_CRSR_DOWN#0 Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#0 -Not aliassing across scopes: menu::$29 keyboard_key_pressed::return#2 +Not aliassing across scopes: form_control::key_down#0 keyboard_key_pressed::return#2 +Not aliassing across scopes: keyboard_key_pressed::key#1 KEY_CRSR_RIGHT#0 +Not aliassing across scopes: keyboard_key_pressed::return#3 keyboard_key_pressed::return#0 +Not aliassing across scopes: form_control::key_right#0 keyboard_key_pressed::return#3 +Not aliassing across scopes: key_down_debounce#23 form_control::key_down#0 +Not aliassing across scopes: keyboard_key_pressed::key#2 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_key_pressed::return#4 keyboard_key_pressed::return#0 +Not aliassing across scopes: form_control::$14 keyboard_key_pressed::return#4 +Not aliassing across scopes: key_right_debounce#21 form_control::key_right#0 +Not aliassing across scopes: keyboard_key_pressed::key#3 KEY_RSHIFT#0 +Not aliassing across scopes: keyboard_key_pressed::return#10 keyboard_key_pressed::return#0 +Not aliassing across scopes: form_control::$28 keyboard_key_pressed::return#10 Not aliassing across scopes: print_screen#16 print_screen#13 Not aliassing across scopes: print_line_cursor#15 print_line_cursor#10 Not aliassing across scopes: print_char_cursor#16 print_char_cursor#11 +Not aliassing across scopes: form_cursor_count#17 form_cursor_count#1 +Not aliassing across scopes: key_down_debounce#14 key_down_debounce#1 +Not aliassing across scopes: form_field_idx#10 form_field_idx#1 +Not aliassing across scopes: key_right_debounce#14 key_right_debounce#1 Self Phi Eliminated (byte*) print_line_cursor#30 Self Phi Eliminated (byte*) print_char_cursor#20 Self Phi Eliminated (byte*) print_line_cursor#21 -Self Phi Eliminated (byte*) print_screen#30 -Self Phi Eliminated (byte*) print_line_cursor#49 -Self Phi Eliminated (byte*) print_char_cursor#50 +Self Phi Eliminated (byte) form_fields_cnt#29 +Self Phi Eliminated (byte*) print_screen#27 +Self Phi Eliminated (byte*) print_line_cursor#47 +Self Phi Eliminated (byte*) print_char_cursor#48 +Self Phi Eliminated (signed byte) form_cursor_count#51 +Self Phi Eliminated (byte) key_down_debounce#58 +Self Phi Eliminated (byte) form_field_idx#60 +Self Phi Eliminated (byte) key_right_debounce#58 +Self Phi Eliminated (byte) form_fields_cnt#23 Self Phi Eliminated (byte*) print_screen#19 Self Phi Eliminated (byte*) print_line_cursor#35 Self Phi Eliminated (byte*) print_char_cursor#37 -Self Phi Eliminated (byte*) print_screen#15 -Self Phi Eliminated (byte*) print_line_cursor#14 -Self Phi Eliminated (byte*) print_char_cursor#15 +Self Phi Eliminated (signed byte) form_cursor_count#28 +Self Phi Eliminated (byte) key_down_debounce#26 +Self Phi Eliminated (byte) form_field_idx#34 +Self Phi Eliminated (byte) key_right_debounce#26 +Self Phi Eliminated (byte) form_fields_cnt#11 +Self Phi Eliminated (signed byte) form_cursor_count#20 +Self Phi Eliminated (byte) key_down_debounce#17 +Self Phi Eliminated (byte) form_field_idx#25 +Self Phi Eliminated (byte) key_right_debounce#17 +Self Phi Eliminated (byte*) print_screen#25 +Self Phi Eliminated (byte*) print_line_cursor#43 +Self Phi Eliminated (byte*) print_char_cursor#46 +Self Phi Eliminated (byte) form_fields_cnt#26 +Self Phi Eliminated (byte) form_fields_cnt#1 Succesful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) print_str_lines::str#4 (byte*) print_str_lines::str#1 -Redundant Phi (byte*) print_char_cursor#41 (byte*) print_char_cursor#13 -Redundant Phi (byte*) print_line_cursor#39 (byte*) print_line_cursor#12 +Redundant Phi (byte*) print_char_cursor#40 (byte*) print_char_cursor#13 +Redundant Phi (byte*) print_line_cursor#38 (byte*) print_line_cursor#12 Redundant Phi (byte*) print_line_cursor#30 (byte*) print_line_cursor#17 Redundant Phi (byte*) print_line_cursor#1 (byte*) print_line_cursor#19 Redundant Phi (byte*) print_char_cursor#18 (byte*) print_line_cursor#19 @@ -3200,22 +5081,46 @@ Redundant Phi (byte*) print_screen#8 (byte*) print_screen#14 Redundant Phi (byte*) print_line_cursor#21 (byte*) print_screen#8 Redundant Phi (byte*) print_set_screen::screen#1 (byte*) print_set_screen::screen#0 Redundant Phi (byte) keyboard_matrix_read::rowid#1 (byte) keyboard_matrix_read::rowid#0 -Redundant Phi (byte) keyboard_key_pressed::key#1 (byte) keyboard_key_pressed::key#0 -Redundant Phi (byte*) print_screen#23 (byte*) print_screen#0 -Redundant Phi (byte*) print_line_cursor#41 (byte*) print_screen#0 -Redundant Phi (byte*) print_char_cursor#44 (byte*) print_screen#0 +Redundant Phi (byte*) print_screen#22 (byte*) print_screen#0 +Redundant Phi (byte*) print_line_cursor#40 (byte*) print_screen#0 +Redundant Phi (byte*) print_char_cursor#43 (byte*) print_screen#0 +Redundant Phi (signed byte) form_cursor_count#27 (signed byte) form_cursor_count#26 +Redundant Phi (byte) key_down_debounce#25 (byte) key_down_debounce#24 +Redundant Phi (byte) form_field_idx#33 (byte) form_field_idx#32 +Redundant Phi (byte) key_right_debounce#25 (byte) key_right_debounce#24 +Redundant Phi (byte) form_fields_cnt#34 (byte) form_fields_cnt#0 +Redundant Phi (byte) form_fields_cnt#29 (byte) form_fields_cnt#34 Redundant Phi (byte*) print_screen#12 (byte*) print_screen#15 Redundant Phi (byte*) print_line_cursor#23 (byte*) print_line_cursor#14 Redundant Phi (byte*) print_char_cursor#10 (byte*) print_char_cursor#15 -Redundant Phi (byte*) print_screen#33 (byte*) print_screen#13 -Redundant Phi (byte*) print_line_cursor#52 (byte*) print_line_cursor#10 -Redundant Phi (byte*) print_char_cursor#52 (byte*) print_char_cursor#11 -Redundant Phi (byte*) print_screen#30 (byte*) print_screen#33 -Redundant Phi (byte*) print_line_cursor#49 (byte*) print_line_cursor#52 -Redundant Phi (byte*) print_char_cursor#50 (byte*) print_char_cursor#52 -Redundant Phi (byte*) print_screen#19 (byte*) print_screen#30 -Redundant Phi (byte*) print_line_cursor#35 (byte*) print_line_cursor#49 -Redundant Phi (byte*) print_char_cursor#37 (byte*) print_char_cursor#50 +Redundant Phi (signed byte) form_cursor_count#0 (signed byte) form_cursor_count#13 +Redundant Phi (byte) key_down_debounce#0 (byte) key_down_debounce#11 +Redundant Phi (byte) form_field_idx#0 (byte) form_field_idx#14 +Redundant Phi (byte) key_right_debounce#0 (byte) key_right_debounce#11 +Redundant Phi (byte*) print_screen#36 (byte*) print_screen#13 +Redundant Phi (byte*) print_line_cursor#56 (byte*) print_line_cursor#10 +Redundant Phi (byte*) print_char_cursor#56 (byte*) print_char_cursor#11 +Redundant Phi (signed byte) form_cursor_count#53 (signed byte) form_cursor_count#1 +Redundant Phi (byte) key_down_debounce#60 (byte) key_down_debounce#1 +Redundant Phi (byte) form_field_idx#62 (byte) form_field_idx#1 +Redundant Phi (byte) key_right_debounce#60 (byte) key_right_debounce#1 +Redundant Phi (byte) form_fields_cnt#27 (byte) form_fields_cnt#29 +Redundant Phi (byte*) print_screen#27 (byte*) print_screen#36 +Redundant Phi (byte*) print_line_cursor#47 (byte*) print_line_cursor#56 +Redundant Phi (byte*) print_char_cursor#48 (byte*) print_char_cursor#56 +Redundant Phi (signed byte) form_cursor_count#51 (signed byte) form_cursor_count#53 +Redundant Phi (byte) key_down_debounce#58 (byte) key_down_debounce#60 +Redundant Phi (byte) form_field_idx#60 (byte) form_field_idx#62 +Redundant Phi (byte) key_right_debounce#58 (byte) key_right_debounce#60 +Redundant Phi (byte) form_fields_cnt#23 (byte) form_fields_cnt#27 +Redundant Phi (byte*) print_screen#19 (byte*) print_screen#27 +Redundant Phi (byte*) print_line_cursor#35 (byte*) print_line_cursor#47 +Redundant Phi (byte*) print_char_cursor#37 (byte*) print_char_cursor#48 +Redundant Phi (signed byte) form_cursor_count#28 (signed byte) form_cursor_count#51 +Redundant Phi (byte) key_down_debounce#26 (byte) key_down_debounce#58 +Redundant Phi (byte) form_field_idx#34 (byte) form_field_idx#60 +Redundant Phi (byte) key_right_debounce#26 (byte) key_right_debounce#58 +Redundant Phi (byte) form_fields_cnt#11 (byte) form_fields_cnt#23 Redundant Phi (byte*) print_screen#14 (byte*) print_screen#1 Redundant Phi (byte*) print_line_cursor#11 (byte*) print_screen#1 Redundant Phi (byte*) print_char_cursor#12 (byte*) print_screen#1 @@ -3223,12 +5128,33 @@ Redundant Phi (byte*) print_line_cursor#12 (byte*) print_line_cursor#21 Redundant Phi (byte*) print_char_cursor#13 (byte*) print_line_cursor#21 Redundant Phi (byte*) print_char_cursor#14 (byte*) print_char_cursor#19 Redundant Phi (byte*) print_line_cursor#13 (byte*) print_line_cursor#17 -Redundant Phi (byte*) print_screen#15 (byte*) print_screen#14 -Redundant Phi (byte*) print_line_cursor#14 (byte*) print_line_cursor#13 -Redundant Phi (byte*) print_char_cursor#15 (byte*) print_char_cursor#14 +Redundant Phi (signed byte) form_cursor_count#20 (signed byte) form_cursor_count#13 +Redundant Phi (byte) key_down_debounce#17 (byte) key_down_debounce#11 +Redundant Phi (byte) form_field_idx#25 (byte) form_field_idx#14 +Redundant Phi (byte) key_right_debounce#17 (byte) key_right_debounce#11 +Redundant Phi (byte*) print_screen#25 (byte*) print_screen#15 +Redundant Phi (byte*) print_line_cursor#43 (byte*) print_line_cursor#14 +Redundant Phi (byte*) print_char_cursor#46 (byte*) print_char_cursor#15 +Redundant Phi (byte) form_fields_cnt#26 (byte) form_fields_cnt#30 +Redundant Phi (signed byte) form_cursor_count#12 (signed byte) form_cursor_count#16 +Redundant Phi (byte) key_down_debounce#10 (byte) key_down_debounce#13 +Redundant Phi (byte) form_field_idx#13 (byte) form_field_idx#18 +Redundant Phi (byte) key_right_debounce#10 (byte) key_right_debounce#13 +Redundant Phi (byte*) form_set_screen::line#0 (byte*) form_set_screen::screen#0 +Redundant Phi (byte) form_fields_cnt#7 (byte) form_fields_cnt#11 +Redundant Phi (byte) form_fields_cnt#1 (byte) form_fields_cnt#7 +Redundant Phi (byte) form_field_idx#15 (byte) form_field_idx#25 +Redundant Phi (signed byte) form_cursor_count#14 (signed byte) form_cursor_count#20 +Redundant Phi (byte) key_down_debounce#12 (byte) key_down_debounce#17 +Redundant Phi (byte) key_right_debounce#12 (byte) key_right_debounce#17 +Redundant Phi (byte) form_fields_cnt#10 (byte) form_fields_cnt#26 Redundant Phi (byte*) print_screen#16 (byte*) print_screen#13 Redundant Phi (byte*) print_line_cursor#15 (byte*) print_line_cursor#10 Redundant Phi (byte*) print_char_cursor#16 (byte*) print_char_cursor#11 +Redundant Phi (signed byte) form_cursor_count#17 (signed byte) form_cursor_count#1 +Redundant Phi (byte) key_down_debounce#14 (byte) key_down_debounce#1 +Redundant Phi (byte) form_field_idx#10 (byte) form_field_idx#1 +Redundant Phi (byte) key_right_debounce#14 (byte) key_right_debounce#1 Succesful SSA optimization Pass2RedundantPhiElimination Simple Condition (boolean~) print_str_lines::$0 if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@2 Simple Condition (boolean~) print_str_lines::$2 if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 @@ -3237,8 +5163,21 @@ Simple Condition (boolean~) print_ln::$1 if((byte*) print_line_cursor#19<(byte*) Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1 Simple Condition (boolean~) menu::$23 if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 Simple Condition (boolean~) menu::$25 if((byte*) menu::c#1!=(byte*~) menu::$24) goto menu::@2 -Simple Condition (boolean~) menu::$31 if((byte~) menu::$29==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@6 +Simple Condition (boolean~) menu::$31 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@7 +Simple Condition (boolean~) form_set_screen::$3 if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 +Simple Condition (boolean~) form_render_values::$1 if((byte) form_render_values::idx#1<(byte) form_fields_cnt#0) goto form_render_values::@1 +Simple Condition (boolean~) form_control::$2 if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@1 +Simple Condition (boolean~) form_control::$5 if((signed byte) form_cursor_count#15>=(signed word/signed byte/signed dword~) form_control::$3) goto form_control::@2 +Simple Condition (boolean~) form_control::$10 if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 +Simple Condition (boolean~) form_control::$25 if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@10 +Simple Condition (boolean~) form_control::$12 if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@5 +Simple Condition (boolean~) form_control::$16 if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 +Simple Condition (boolean~) form_control::$20 if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@9 +Simple Condition (boolean~) form_control::$18 if((byte) form_field_idx#37!=(byte) form_fields_cnt#30) goto form_control::@7 +Simple Condition (boolean~) form_control::$27 if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@11 +Simple Condition (boolean~) form_control::$30 if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 Succesful SSA optimization Pass2ConditionalJumpSimplification +Constant (const byte*) RASTER#0 = ((byte*))53266 Constant (const byte*) BORDERCOL#0 = ((byte*))53280 Constant (const byte*) BGCOL#0 = ((byte*))53281 Constant (const byte*) VIC_CONTROL#0 = ((byte*))53265 @@ -3263,13 +5202,29 @@ Constant (const byte*) DTV_COLOR_BANK_HI#0 = ((byte*))53303 Constant (const dword) DTV_COLOR_BANK_DEFAULT#0 = 120832 Constant (const byte*) DTV_GRAPHICS_VIC_BANK#0 = ((byte*))53309 Constant (const byte*) print_screen#0 = ((byte*))1024 -Constant (const byte) KEY_SPACE#0 = 60 +Constant (const string) print_hextab#0 = $10 +Constant (const byte) KEY_CRSR_RIGHT#0 = 2 +Constant (const byte) KEY_CRSR_DOWN#0 = 7 +Constant (const byte) KEY_RSHIFT#0 = 52 Constant (const byte[8]) keyboard_matrix_row_bitmask#0 = { 254, 253, 251, 247, 239, 223, 191, 127 } Constant (const byte[]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64, 128 } Constant (const string) $0 = " DTV GfxExplorer PRESET 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @" Constant (const byte*) menu::SCREEN#0 = ((byte*))32768 Constant (const byte*) menu::CHARSET#0 = ((byte*))38912 Constant (const byte) menu::i#0 = 0 +Constant (const byte[25]) form_line_lo#0 = { fill( 25, 0) } +Constant (const byte[25]) form_line_hi#0 = { fill( 25, 0) } +Constant (const byte) form_field_idx#32 = 0 +Constant (const byte) form_fields_cnt#0 = 9 +Constant (const byte[]) form_fields_x#0 = { 7, 7, 7, 7, 7, 7, 7, 17, 17 } +Constant (const byte[]) form_fields_y#0 = { 2, 3, 4, 5, 6, 7, 8, 7, 8 } +Constant (const byte[]) form_fields_val#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 0 } +Constant (const byte) key_down_debounce#24 = 0 +Constant (const byte) key_right_debounce#24 = 0 +Constant (const signed byte) FORM_CURSOR_BLINK#0 = 40 +Constant (const byte) form_set_screen::y#0 = 0 +Constant (const byte) form_render_values::idx#0 = 0 +Constant (const byte) form_field_idx#7 = 0 Succesful SSA optimization Pass2ConstantIdentification Constant (const string) $1 = " DTV GfxExplorer PRESET 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p1 patt p2 screen s3 @" Constant (const dword) menu::$0 = ((dword))menu::CHARSET#0 @@ -3282,11 +5237,17 @@ Constant (const word) menu::$18 = ((word))menu::CHARSET#0 Constant (const byte*) menu::c#0 = COLS#0 Constant (const byte*) menu::$24 = COLS#0+1000 Constant (const byte*) print_set_screen::screen#0 = menu::SCREEN#0 -Constant (const byte) keyboard_key_pressed::key#0 = KEY_SPACE#0 +Constant (const byte*) form_set_screen::screen#0 = menu::SCREEN#0 +Constant (const signed byte) form_cursor_count#26 = FORM_CURSOR_BLINK#0/2 +Constant (const signed word/signed byte/signed dword) form_control::$3 = FORM_CURSOR_BLINK#0/2 +Constant (const signed byte) form_cursor_count#6 = FORM_CURSOR_BLINK#0 +Constant (const byte) keyboard_key_pressed::key#0 = KEY_CRSR_DOWN#0 +Constant (const byte) keyboard_key_pressed::key#1 = KEY_CRSR_RIGHT#0 +Constant (const byte) keyboard_key_pressed::key#2 = KEY_RSHIFT#0 +Constant (const signed byte) form_cursor_count#7 = FORM_CURSOR_BLINK#0/2 +Constant (const byte) keyboard_key_pressed::key#3 = KEY_RSHIFT#0 Succesful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_screen#1 = print_set_screen::screen#0 -Constant (const byte) keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#0&7 -Constant (const byte) keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#0>>3 Constant (const string) $2 = " DTV GfxExplorer PRESET 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p1 patt p2 screen s3 @"+" mcm 0 start 00 start 00 gfx g4 @" Constant (const dword) menu::$1 = menu::$0/65536 Constant (const word) menu::$4 = ((word))menu::$3 @@ -3298,7 +5259,6 @@ Constant (const word) menu::$19 = menu::$18&16383 Succesful SSA optimization Pass2ConstantIdentification Constant (const byte*) print_cls::sc#0 = print_screen#1 Constant (const byte*) print_cls::$0 = print_screen#1+1000 -Constant (const byte) keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0 Constant (const string) $3 = " DTV GfxExplorer PRESET 8bpp pixel cell @"+" CONTROL PLANE A PLANE B VIC II @"+" bmm 0 patt p1 patt p2 screen s3 @"+" mcm 0 start 00 start 00 gfx g4 @"+" ecm 0 step 00 step 00 colors c5 @" Constant (const byte) menu::$2 = ((byte))menu::$1 Constant (const byte) menu::$5 = @21] -b21_from_bbegin: - jmp b21 -//SEG4 @21 -b21: +//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] +b25_from_bbegin: + jmp b25 +//SEG4 @25 +b25: //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @21 to @end [phi:@21->@end] -bend_from_b21: +//SEG6 [3] phi from @25 to @end [phi:@25->@end] +bend_from_b25: jmp bend //SEG7 @end bend: @@ -3927,329 +6594,867 @@ main: { //SEG10 [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2 lda #DTV_FEATURE_ENABLE sta DTV_FEATURE + //SEG11 [6] phi from main to main::@1 [phi:main->main::@1] + b1_from_main: + //SEG12 [6] phi (byte) key_right_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 + lda #0 + sta key_right_debounce + //SEG13 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 + lda #0 + sta form_field_idx + //SEG14 [6] phi (byte) key_down_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 + lda #0 + sta key_down_debounce + //SEG15 [6] phi (signed byte) form_cursor_count#1 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:main->main::@1#3] -- vbsz1=vbuc1 + lda #FORM_CURSOR_BLINK/2 + sta form_cursor_count jmp b1 - //SEG11 main::@1 + //SEG16 main::@1 b1: - //SEG12 [6] if(true) goto main::@2 [ ] ( main:2 [ ] ) -- true_then_la1 + //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- true_then_la1 jmp b2_from_b1 jmp breturn - //SEG13 main::@return + //SEG18 main::@return breturn: - //SEG14 [7] return [ ] ( main:2 [ ] ) + //SEG19 [8] return [ ] ( main:2 [ ] ) rts - //SEG15 [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + //SEG20 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: jmp b2 - //SEG16 main::@2 + //SEG21 main::@2 b2: - //SEG17 [9] call menu param-assignment [ ] ( main:2 [ ] ) + //SEG22 [10] call menu param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) jsr menu + //SEG23 [6] phi from main::@2 to main::@1 [phi:main::@2->main::@1] + b1_from_b2: + //SEG24 [6] phi (byte) key_right_debounce#1 = (byte) key_right_debounce#11 [phi:main::@2->main::@1#0] -- register_copy + //SEG25 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#1] -- register_copy + //SEG26 [6] phi (byte) key_down_debounce#1 = (byte) key_down_debounce#11 [phi:main::@2->main::@1#2] -- register_copy + //SEG27 [6] phi (signed byte) form_cursor_count#1 = (signed byte) form_cursor_count#13 [phi:main::@2->main::@1#3] -- register_copy jmp b1 } -//SEG18 menu +//SEG28 menu menu: { .label SCREEN = $8000 .label CHARSET = $9800 - .label _29 = $e - .label i = 2 - .label c = 3 - //SEG19 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + .label i = 6 + .label c = 7 + //SEG29 [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG20 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG21 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI - //SEG22 [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG32 [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_CONTROL - //SEG23 [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG24 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #3^CHARSET/$4000 sta CIA2_PORT_A - //SEG25 [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_DEN|VIC_RSEL|3 sta VIC_CONTROL - //SEG26 [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG27 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY - //SEG28 [19] phi from menu to menu::@1 [phi:menu->menu::@1] + //SEG38 [20] phi from menu to menu::@1 [phi:menu->menu::@1] b1_from_menu: - //SEG29 [19] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuz1=vbuc1 + //SEG39 [20] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuz1=vbuc1 lda #0 sta i jmp b1 - //SEG30 [19] phi from menu::@1 to menu::@1 [phi:menu::@1->menu::@1] + //SEG40 [20] phi from menu::@1 to menu::@1 [phi:menu::@1->menu::@1] b1_from_b1: - //SEG31 [19] phi (byte) menu::i#2 = (byte) menu::i#1 [phi:menu::@1->menu::@1#0] -- register_copy + //SEG41 [20] phi (byte) menu::i#2 = (byte) menu::i#1 [phi:menu::@1->menu::@1#0] -- register_copy jmp b1 - //SEG32 menu::@1 + //SEG42 menu::@1 b1: - //SEG33 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 + //SEG43 [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz1 ldy i lda DTV_PALETTE_DEFAULT,y sta DTV_PALETTE,y - //SEG34 [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ menu::i#1 ] ( main:2::menu:9 [ menu::i#1 ] ) -- vbuz1=_inc_vbuz1 + //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuz1=_inc_vbuz1 inc i - //SEG35 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ menu::i#1 ] ( main:2::menu:9 [ menu::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1 lda i cmp #$10 bne b1_from_b1 - //SEG36 [23] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] + //SEG46 [24] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] b2_from_b1: - //SEG37 [23] phi (byte*) menu::c#2 = (const byte*) COLS#0 [phi:menu::@1->menu::@2#0] -- pbuz1=pbuc1 + //SEG47 [24] phi (byte*) menu::c#2 = (const byte*) COLS#0 [phi:menu::@1->menu::@2#0] -- pbuz1=pbuc1 lda #COLS sta c+1 jmp b2 - //SEG38 [23] phi from menu::@2 to menu::@2 [phi:menu::@2->menu::@2] + //SEG48 [24] phi from menu::@2 to menu::@2 [phi:menu::@2->menu::@2] b2_from_b2: - //SEG39 [23] phi (byte*) menu::c#2 = (byte*) menu::c#1 [phi:menu::@2->menu::@2#0] -- register_copy + //SEG49 [24] phi (byte*) menu::c#2 = (byte*) menu::c#1 [phi:menu::@2->menu::@2#0] -- register_copy jmp b2 - //SEG40 menu::@2 + //SEG50 menu::@2 b2: - //SEG41 [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG51 [25] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ) -- _deref_pbuz1=vbuc1 lda #LIGHT_GREEN ldy #0 sta (c),y - //SEG42 [25] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG52 [26] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) -- pbuz1=_inc_pbuz1 inc c bne !+ inc c+1 !: - //SEG43 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG53 [27] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>COLS+$3e8 bne b2_from_b2 lda c cmp #print_set_screen] - print_set_screen_from_b8: + //SEG57 [30] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG58 [163] phi from menu::@10 to print_set_screen [phi:menu::@10->print_set_screen] + print_set_screen_from_b10: jsr print_set_screen - //SEG49 [30] phi from menu::@8 to menu::@14 [phi:menu::@8->menu::@14] - b14_from_b8: - jmp b14 - //SEG50 menu::@14 - b14: - //SEG51 [31] call print_cls param-assignment [ ] ( main:2::menu:9 [ ] ) - //SEG52 [70] phi from menu::@14 to print_cls [phi:menu::@14->print_cls] - print_cls_from_b14: + //SEG59 [31] phi from menu::@10 to menu::@17 [phi:menu::@10->menu::@17] + b17_from_b10: + jmp b17 + //SEG60 menu::@17 + b17: + //SEG61 [32] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG62 [157] phi from menu::@17 to print_cls [phi:menu::@17->print_cls] + print_cls_from_b17: jsr print_cls - //SEG53 [32] phi from menu::@14 to menu::@15 [phi:menu::@14->menu::@15] - b15_from_b14: - jmp b15 - //SEG54 menu::@15 - b15: - //SEG55 [33] call print_str_lines param-assignment [ ] ( main:2::menu:9 [ ] ) - //SEG56 [50] phi from menu::@15 to print_str_lines [phi:menu::@15->print_str_lines] - print_str_lines_from_b15: + //SEG63 [33] phi from menu::@17 to menu::@18 [phi:menu::@17->menu::@18] + b18_from_b17: + jmp b18 + //SEG64 menu::@18 + b18: + //SEG65 [34] call print_str_lines param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG66 [137] phi from menu::@18 to print_str_lines [phi:menu::@18->print_str_lines] + print_str_lines_from_b18: jsr print_str_lines + //SEG67 [35] phi from menu::@18 to menu::@19 [phi:menu::@18->menu::@19] + b19_from_b18: + jmp b19 + //SEG68 menu::@19 + b19: + //SEG69 [36] call form_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG70 [127] phi from menu::@19 to form_set_screen [phi:menu::@19->form_set_screen] + form_set_screen_from_b19: + jsr form_set_screen + //SEG71 [37] phi from menu::@19 to menu::@20 [phi:menu::@19->menu::@20] + b20_from_b19: + jmp b20 + //SEG72 menu::@20 + b20: + //SEG73 [38] call form_render_values param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG74 [117] phi from menu::@20 to form_render_values [phi:menu::@20->form_render_values] + form_render_values_from_b20: + jsr form_render_values + //SEG75 [39] phi from menu::@20 menu::@8 to menu::@3 [phi:menu::@20/menu::@8->menu::@3] + b3_from_b20: + b3_from_b8: + //SEG76 [39] phi (byte) key_right_debounce#11 = (byte) key_right_debounce#1 [phi:menu::@20/menu::@8->menu::@3#0] -- register_copy + //SEG77 [39] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@20/menu::@8->menu::@3#1] -- register_copy + //SEG78 [39] phi (byte) key_down_debounce#11 = (byte) key_down_debounce#1 [phi:menu::@20/menu::@8->menu::@3#2] -- register_copy + //SEG79 [39] phi (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#1 [phi:menu::@20/menu::@8->menu::@3#3] -- register_copy jmp b3 - //SEG57 menu::@3 + //SEG80 menu::@3 b3: - //SEG58 [34] if(true) goto menu::@4 [ ] ( main:2::menu:9 [ ] ) -- true_then_la1 - jmp b4_from_b3 + //SEG81 [40] if(true) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) -- true_then_la1 + jmp b6 jmp breturn - //SEG59 menu::@return + //SEG82 menu::@return breturn: - //SEG60 [35] return [ ] ( main:2::menu:9 [ ] ) + //SEG83 [41] return [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) rts - //SEG61 [36] phi from menu::@3 to menu::@4 [phi:menu::@3->menu::@4] - b4_from_b3: - jmp b4 - //SEG62 menu::@4 - b4: - //SEG63 [37] call keyboard_key_pressed param-assignment [ keyboard_key_pressed::return#0 ] ( main:2::menu:9 [ keyboard_key_pressed::return#0 ] ) - //SEG64 [41] phi from menu::@4 to keyboard_key_pressed [phi:menu::@4->keyboard_key_pressed] - keyboard_key_pressed_from_b4: + //SEG84 menu::@6 + b6: + //SEG85 [42] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + lda RASTER + cmp #$ff + bne b6 + //SEG86 [43] phi from menu::@6 to menu::@8 [phi:menu::@6->menu::@8] + b8_from_b6: + jmp b8 + //SEG87 menu::@8 + b8: + //SEG88 [44] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + jsr form_control + jmp b3_from_b8 +} +//SEG89 form_control +form_control: { + .label _6 = $1b + .label _7 = $29 + .label _13 = $1e + .label _14 = $20 + .label _28 = $24 + .label _31 = $25 + .label _32 = $26 + .label _33 = $27 + .label _34 = $28 + .label field = $19 + .label key_down = $1d + .label key_right = $22 + //SEG90 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuz1=vbuz2 + lda form_field_idx + sta form_field_ptr.field_idx + //SEG91 [46] call form_field_ptr param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) + //SEG92 [111] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] + form_field_ptr_from_form_control: + //SEG93 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy + jsr form_field_ptr + //SEG94 [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) -- pbuz1=pbuz2 + lda form_field_ptr.return + sta form_field_ptr.return_3 + lda form_field_ptr.return+1 + sta form_field_ptr.return_3+1 + jmp b28 + //SEG95 form_control::@28 + b28: + //SEG96 [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) -- pbuz1=pbuz2 + lda form_field_ptr.return_3 + sta field + lda form_field_ptr.return_3+1 + sta field+1 + //SEG97 [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 + dec form_cursor_count + //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 + lda form_cursor_count + cmp #0 + bpl b33_from_b28 + //SEG99 [51] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] + b1_from_b28: + //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 + lda #FORM_CURSOR_BLINK + sta form_cursor_count + jmp b1 + //SEG101 form_control::@1 + b1: + //SEG102 [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 + lda form_cursor_count + sec + sbc #FORM_CURSOR_BLINK/2 + bvc !+ + eor #$80 + !: + bpl b2 + jmp b15 + //SEG103 form_control::@15 + b15: + //SEG104 [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuz1=_deref_pbuz2_bor_vbuc1 + lda #$80 + ldy #0 + ora (field),y + sta _6 + //SEG105 [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuz2 + lda _6 + ldy #0 + sta (field),y + //SEG106 [55] phi from form_control::@15 form_control::@2 to form_control::@3 [phi:form_control::@15/form_control::@2->form_control::@3] + b3_from_b15: + b3_from_b2: + jmp b3 + //SEG107 form_control::@3 + b3: + //SEG108 [56] call keyboard_key_pressed param-assignment [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ) + //SEG109 [99] phi from form_control::@3 to keyboard_key_pressed [phi:form_control::@3->keyboard_key_pressed] + keyboard_key_pressed_from_b3: + //SEG110 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_DOWN#0 [phi:form_control::@3->keyboard_key_pressed#0] -- vbuz1=vbuc1 + lda #KEY_CRSR_DOWN + sta keyboard_key_pressed.key jsr keyboard_key_pressed - //SEG65 [38] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ keyboard_key_pressed::return#2 ] ( main:2::menu:9 [ keyboard_key_pressed::return#2 ] ) -- vbuz1=vbuz2 + //SEG111 [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return sta keyboard_key_pressed.return_2 - jmp b17 - //SEG66 menu::@17 - b17: - //SEG67 [39] (byte~) menu::$29 ← (byte) keyboard_key_pressed::return#2 [ menu::$29 ] ( main:2::menu:9 [ menu::$29 ] ) -- vbuz1=vbuz2 + jmp b29 + //SEG112 form_control::@29 + b29: + //SEG113 [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) -- vbuz1=vbuz2 lda keyboard_key_pressed.return_2 - sta _29 - //SEG68 [40] if((byte~) menu::$29==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@3 [ ] ( main:2::menu:9 [ ] ) -- vbuz1_eq_0_then_la1 - lda _29 - beq b3 + sta key_down + //SEG114 [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) -- vbuz1_eq_vbuz2_then_la1 + lda key_down + cmp key_down_debounce + beq b4_from_b29 + jmp b17 + //SEG115 form_control::@17 + b17: + //SEG116 [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) -- vbuz1=vbuz2 + lda key_down + sta key_down_debounce + //SEG117 [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) -- vbuz1_eq_0_then_la1 + lda key_down + beq b4_from_b17 + jmp b18 + //SEG118 form_control::@18 + b18: + //SEG119 [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuz1=_deref_pbuz2_band_vbuc1 + lda #$7f + ldy #0 + and (field),y + sta _13 + //SEG120 [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- _deref_pbuz1=vbuz2 + lda _13 + ldy #0 + sta (field),y + //SEG121 [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) + //SEG122 [99] phi from form_control::@18 to keyboard_key_pressed [phi:form_control::@18->keyboard_key_pressed] + keyboard_key_pressed_from_b18: + //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@18->keyboard_key_pressed#0] -- vbuz1=vbuc1 + lda #KEY_RSHIFT + sta keyboard_key_pressed.key + jsr keyboard_key_pressed + //SEG124 [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) -- vbuz1=vbuz2 + lda keyboard_key_pressed.return + sta keyboard_key_pressed.return_4 + jmp b31 + //SEG125 form_control::@31 + b31: + //SEG126 [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) -- vbuz1=vbuz2 + lda keyboard_key_pressed.return_4 + sta _14 + //SEG127 [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuz1_neq_0_then_la1 + lda _14 + bne b6 + jmp b19 + //SEG128 form_control::@19 + b19: + //SEG129 [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuz1=_inc_vbuz1 + inc form_field_idx + //SEG130 [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda form_field_idx + cmp #form_fields_cnt + bne b34_from_b19 + //SEG131 [70] phi from form_control::@19 to form_control::@8 [phi:form_control::@19->form_control::@8] + b8_from_b19: + //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@19->form_control::@8#0] -- vbuz1=vbuc1 + lda #0 + sta form_field_idx + jmp b8 + //SEG133 form_control::@8 + b8: + //SEG134 [71] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] + breturn_from_b8: + //SEG135 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy + //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@8->form_control::@return#1] -- register_copy + //SEG137 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy + //SEG138 [71] phi (signed byte) form_cursor_count#16 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:form_control::@8->form_control::@return#3] -- vbsz1=vbuc1 + lda #FORM_CURSOR_BLINK/2 + sta form_cursor_count jmp breturn + //SEG139 [71] phi from form_control::@13 form_control::@24 form_control::@30 to form_control::@return [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return] + breturn_from_b13: + breturn_from_b24: + breturn_from_b30: + //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#0] -- register_copy + //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#1] -- register_copy + //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#2] -- register_copy + //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#3] -- register_copy + jmp breturn + //SEG144 form_control::@return + breturn: + //SEG145 [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + rts + //SEG146 [73] phi from form_control::@19 to form_control::@34 [phi:form_control::@19->form_control::@34] + b34_from_b19: + jmp b34 + //SEG147 form_control::@34 + b34: + //SEG148 [70] phi from form_control::@34 form_control::@35 to form_control::@8 [phi:form_control::@34/form_control::@35->form_control::@8] + b8_from_b34: + b8_from_b35: + //SEG149 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#37 [phi:form_control::@34/form_control::@35->form_control::@8#0] -- register_copy + jmp b8 + //SEG150 form_control::@6 + b6: + //SEG151 [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuz1=_dec_vbuz1 + dec form_field_idx + //SEG152 [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda form_field_idx + cmp #$ff + bne b35_from_b6 + //SEG153 [70] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] + b8_from_b6: + //SEG154 [70] phi (byte) form_field_idx#30 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuz1=vbuc1 + lda #form_fields_cnt-1 + sta form_field_idx + jmp b8 + //SEG155 [76] phi from form_control::@6 to form_control::@35 [phi:form_control::@6->form_control::@35] + b35_from_b6: + jmp b35 + //SEG156 form_control::@35 + b35: + jmp b8_from_b35 + //SEG157 [77] phi from form_control::@17 form_control::@29 to form_control::@4 [phi:form_control::@17/form_control::@29->form_control::@4] + b4_from_b17: + b4_from_b29: + //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@17/form_control::@29->form_control::@4#0] -- register_copy + jmp b4 + //SEG159 form_control::@4 + b4: + //SEG160 [78] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ) + //SEG161 [99] phi from form_control::@4 to keyboard_key_pressed [phi:form_control::@4->keyboard_key_pressed] + keyboard_key_pressed_from_b4: + //SEG162 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_RIGHT#0 [phi:form_control::@4->keyboard_key_pressed#0] -- vbuz1=vbuc1 + lda #KEY_CRSR_RIGHT + sta keyboard_key_pressed.key + jsr keyboard_key_pressed + //SEG163 [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) -- vbuz1=vbuz2 + lda keyboard_key_pressed.return + sta keyboard_key_pressed.return_3 + jmp b30 + //SEG164 form_control::@30 + b30: + //SEG165 [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) -- vbuz1=vbuz2 + lda keyboard_key_pressed.return_3 + sta key_right + //SEG166 [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) -- vbuz1_eq_vbuz2_then_la1 + lda key_right + cmp key_right_debounce + beq breturn_from_b30 + jmp b24 + //SEG167 form_control::@24 + b24: + //SEG168 [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) -- vbuz1=vbuz2 + lda key_right + sta key_right_debounce + //SEG169 [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuz1_eq_0_then_la1 + lda key_right + beq breturn_from_b24 + //SEG170 [84] phi from form_control::@24 to form_control::@25 [phi:form_control::@24->form_control::@25] + b25_from_b24: + jmp b25 + //SEG171 form_control::@25 + b25: + //SEG172 [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) + //SEG173 [99] phi from form_control::@25 to keyboard_key_pressed [phi:form_control::@25->keyboard_key_pressed] + keyboard_key_pressed_from_b25: + //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@25->keyboard_key_pressed#0] -- vbuz1=vbuc1 + lda #KEY_RSHIFT + sta keyboard_key_pressed.key + jsr keyboard_key_pressed + //SEG175 [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) -- vbuz1=vbuz2 + lda keyboard_key_pressed.return + sta keyboard_key_pressed.return_10 + jmp b32 + //SEG176 form_control::@32 + b32: + //SEG177 [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) -- vbuz1=vbuz2 + lda keyboard_key_pressed.return_10 + sta _28 + //SEG178 [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuz1_neq_0_then_la1 + lda _28 + bne b12 + jmp b26 + //SEG179 form_control::@26 + b26: + //SEG180 [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_plus_1 + ldy form_field_idx + lda form_fields_val,y + clc + adc #1 + sta _31 + //SEG181 [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and _31 + sta _32 + //SEG182 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _32 + ldy form_field_idx + sta form_fields_val,y + jmp b13 + //SEG183 form_control::@13 + b13: + //SEG184 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + ldy form_field_idx + lda form_fields_val,y + tay + lda print_hextab,y + ldy #0 + sta (field),y + jmp breturn_from_b13 + //SEG185 form_control::@12 + b12: + //SEG186 [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_minus_1 + ldy form_field_idx + lda form_fields_val,y + sec + sbc #1 + sta _33 + //SEG187 [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) -- vbuz1=vbuz2_band_vbuc1 + lda #$f + and _33 + sta _34 + //SEG188 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _34 + ldy form_field_idx + sta form_fields_val,y + jmp b13 + //SEG189 form_control::@2 + b2: + //SEG190 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuz1=_deref_pbuz2_band_vbuc1 + lda #$7f + ldy #0 + and (field),y + sta _7 + //SEG191 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuz2 + lda _7 + ldy #0 + sta (field),y + jmp b3_from_b2 + //SEG192 [98] phi from form_control::@28 to form_control::@33 [phi:form_control::@28->form_control::@33] + b33_from_b28: + jmp b33 + //SEG193 form_control::@33 + b33: + //SEG194 [51] phi from form_control::@33 to form_control::@1 [phi:form_control::@33->form_control::@1] + b1_from_b33: + //SEG195 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@33->form_control::@1#0] -- register_copy + jmp b1 } -//SEG69 keyboard_key_pressed +//SEG196 keyboard_key_pressed keyboard_key_pressed: { - .const colidx = KEY_SPACE&7 - .label rowidx = KEY_SPACE>>3 - .label _2 = $10 - .label return = $11 - .label return_2 = $d - //SEG70 [42] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_matrix_read::return#0 ] ) + .label _2 = $2e + .label colidx = $2a + .label rowidx = $2b + .label return = $2f + .label return_2 = $1c + .label return_3 = $21 + .label return_4 = $1f + .label key = 9 + .label return_10 = $23 + //SEG197 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuz2_band_vbuc1 + lda #7 + and key + sta colidx + //SEG198 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuz1=vbuz2_ror_3 + lda key + lsr + lsr + lsr + sta rowidx + //SEG199 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuz1=vbuz2 + lda rowidx + sta keyboard_matrix_read.rowid + //SEG200 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) jsr keyboard_matrix_read - //SEG71 [43] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_matrix_read::return#2 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_matrix_read::return#2 ] ) -- vbuz1=vbuz2 + //SEG201 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return sta keyboard_matrix_read.return_2 jmp b2 - //SEG72 keyboard_key_pressed::@2 + //SEG202 keyboard_key_pressed::@2 b2: - //SEG73 [44] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 + //SEG203 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta _2 - //SEG74 [45] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band__deref_pbuc1 - lda keyboard_matrix_col_bitmask+colidx - and _2 + //SEG204 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + lda _2 + ldy colidx + and keyboard_matrix_col_bitmask,y sta return jmp breturn - //SEG75 keyboard_key_pressed::@return + //SEG205 keyboard_key_pressed::@return breturn: - //SEG76 [46] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) + //SEG206 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) rts } -//SEG77 keyboard_matrix_read +//SEG207 keyboard_matrix_read keyboard_matrix_read: { - .label return = $12 - .label return_2 = $f - //SEG78 [47] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx + .label return = $30 + .label rowid = $2c + .label return_2 = $2d + //SEG208 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + ldy rowid + lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG79 [48] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) -- vbuz1=_bnot__deref_pbuc1 + //SEG209 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuz1=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff sta return jmp breturn - //SEG80 keyboard_matrix_read::@return + //SEG210 keyboard_matrix_read::@return breturn: - //SEG81 [49] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) + //SEG211 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) rts } -//SEG82 print_str_lines +//SEG212 form_field_ptr +form_field_ptr: { + .label y = $31 + .label x = $34 + .label return = $35 + .label field_idx = $a + .label return_2 = $37 + .label return_3 = $17 + .label _2 = $32 + //SEG213 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy field_idx + lda form_fields_y,y + sta y + //SEG214 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2 + ldy y + lda form_line_hi,y + sta _2+1 + lda form_line_lo,y + sta _2 + //SEG215 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy field_idx + lda form_fields_x,y + sta x + //SEG216 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz2_plus_vbuz3 + lda x + clc + adc _2 + sta return + lda #0 + adc _2+1 + sta return+1 + jmp breturn + //SEG217 form_field_ptr::@return + breturn: + //SEG218 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) + rts +} +//SEG219 form_render_values +form_render_values: { + .label field = $39 + .label idx = $b + //SEG220 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + b1_from_form_render_values: + //SEG221 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuz1=vbuc1 + lda #0 + sta idx + jmp b1 + //SEG222 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + b1_from_b3: + //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy + jmp b1 + //SEG224 form_render_values::@1 + b1: + //SEG225 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) -- vbuz1=vbuz2 + lda idx + sta form_field_ptr.field_idx + //SEG226 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG227 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + form_field_ptr_from_b1: + //SEG228 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy + jsr form_field_ptr + //SEG229 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) -- pbuz1=pbuz2 + lda form_field_ptr.return + sta form_field_ptr.return_2 + lda form_field_ptr.return+1 + sta form_field_ptr.return_2+1 + jmp b3 + //SEG230 form_render_values::@3 + b3: + //SEG231 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) -- pbuz1=pbuz2 + lda form_field_ptr.return_2 + sta field + lda form_field_ptr.return_2+1 + sta field+1 + //SEG232 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + ldy idx + lda form_fields_val,y + tay + lda print_hextab,y + ldy #0 + sta (field),y + //SEG233 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 + inc idx + //SEG234 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1_lt_vbuc1_then_la1 + lda idx + cmp #form_fields_cnt + bcc b1_from_b3 + jmp breturn + //SEG235 form_render_values::@return + breturn: + //SEG236 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + rts +} +//SEG237 form_set_screen +form_set_screen: { + .label _0 = $3b + .label _1 = $3c + .label line = $c + .label y = $e + //SEG238 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + b1_from_form_set_screen: + //SEG239 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuz1=vbuc1 + lda #0 + sta y + //SEG240 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + lda #menu.SCREEN + sta line+1 + jmp b1 + //SEG241 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + b1_from_b1: + //SEG242 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy + //SEG243 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy + jmp b1 + //SEG244 form_set_screen::@1 + b1: + //SEG245 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuz1=_lo_pbuz2 + lda line + sta _0 + //SEG246 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _0 + ldy y + sta form_line_lo,y + //SEG247 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuz1=_hi_pbuz2 + lda line+1 + sta _1 + //SEG248 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2 + lda _1 + ldy y + sta form_line_hi,y + //SEG249 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda line + clc + adc #$28 + sta line + bcc !+ + inc line+1 + !: + //SEG250 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuz1=_inc_vbuz1 + inc y + //SEG251 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuz1_neq_vbuc1_then_la1 + lda y + cmp #$19 + bne b1_from_b1 + jmp breturn + //SEG252 form_set_screen::@return + breturn: + //SEG253 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + rts +} +//SEG254 print_str_lines print_str_lines: { - .label ch = $13 - .label str = 5 - //SEG83 [51] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] + .label ch = $3d + .label str = $f + //SEG255 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] b1_from_print_str_lines: - //SEG84 [51] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 + //SEG256 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_line_cursor+1 - //SEG85 [51] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 + //SEG257 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_char_cursor+1 - //SEG86 [51] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 + //SEG258 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 lda #MENU_TEXT sta str+1 jmp b1 - //SEG87 print_str_lines::@1 + //SEG259 print_str_lines::@1 b1: - //SEG88 [52] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG260 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4_from_b1 jmp breturn - //SEG89 print_str_lines::@return + //SEG261 print_str_lines::@return breturn: - //SEG90 [53] return [ ] ( main:2::menu:9::print_str_lines:33 [ ] ) + //SEG262 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts - //SEG91 [54] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] + //SEG263 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] b4_from_b1: b4_from_b5: - //SEG92 [54] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG93 [54] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG264 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG265 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy jmp b4 - //SEG94 print_str_lines::@4 + //SEG266 print_str_lines::@4 b4: - //SEG95 [55] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuz1=_deref_pbuz2 + //SEG267 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuz1=_deref_pbuz2 ldy #0 lda (str),y sta ch - //SEG96 [56] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG268 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG97 [57] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuz1_eq_vbuc1_then_la1 + //SEG269 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuz1_eq_vbuc1_then_la1 lda ch cmp #'@' beq b5_from_b4 jmp b8 - //SEG98 print_str_lines::@8 + //SEG270 print_str_lines::@8 b8: - //SEG99 [58] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuz2 + //SEG271 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuz2 lda ch ldy #0 sta (print_char_cursor),y - //SEG100 [59] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG272 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 inc print_char_cursor bne !+ inc print_char_cursor+1 !: - //SEG101 [60] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] + //SEG273 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] b5_from_b4: b5_from_b8: - //SEG102 [60] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG274 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy jmp b5 - //SEG103 print_str_lines::@5 + //SEG275 print_str_lines::@5 b5: - //SEG104 [61] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuz1_neq_vbuc1_then_la1 + //SEG276 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuz1_neq_vbuc1_then_la1 lda ch cmp #'@' bne b4_from_b5 - //SEG105 [62] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG277 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] b9_from_b5: jmp b9 - //SEG106 print_str_lines::@9 + //SEG278 print_str_lines::@9 b9: - //SEG107 [63] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_line_cursor#19 ] ) - //SEG108 [65] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG279 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG280 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] print_ln_from_b9: jsr print_ln - //SEG109 [64] (byte*~) print_char_cursor#53 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ) -- pbuz1=pbuz2 + //SEG281 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 - //SEG110 [51] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] + //SEG282 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] b1_from_b9: - //SEG111 [51] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG112 [51] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#53 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG113 [51] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG283 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG284 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG285 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy jmp b1 } -//SEG114 print_ln +//SEG286 print_ln print_ln: { - //SEG115 [66] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG287 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] b1_from_print_ln: b1_from_b1: - //SEG116 [66] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG288 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy jmp b1 - //SEG117 print_ln::@1 + //SEG289 print_ln::@1 b1: - //SEG118 [67] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG290 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -4257,7 +7462,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG119 [68] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG291 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1_from_b1 @@ -4267,38 +7472,38 @@ print_ln: { bcc b1_from_b1 !: jmp breturn - //SEG120 print_ln::@return + //SEG292 print_ln::@return breturn: - //SEG121 [69] return [ print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG293 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) rts } -//SEG122 print_cls +//SEG294 print_cls print_cls: { - .label sc = $b - //SEG123 [71] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + .label sc = $15 + //SEG295 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG124 [71] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG296 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta sc+1 jmp b1 - //SEG125 [71] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + //SEG297 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] b1_from_b1: - //SEG126 [71] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + //SEG298 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy jmp b1 - //SEG127 print_cls::@1 + //SEG299 print_cls::@1 b1: - //SEG128 [72] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG300 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG129 [73] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG301 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG130 [74] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG302 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1_from_b1 @@ -4306,118 +7511,274 @@ print_cls: { cmp #((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ menu::i#2 menu::i#1 ] -Statement [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) always clobbers reg byte a reg byte y -Statement [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) always clobbers reg byte a -Statement [27] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [28] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [45] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a -Statement [47] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ ] ) always clobbers reg byte a -Statement [48] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [52] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y -Statement [55] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y -Statement [58] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:19 [ print_str_lines::ch#0 ] -Statement [64] (byte*~) print_char_cursor#53 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ) always clobbers reg byte a -Statement [67] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a -Statement [68] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a -Statement [72] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [74] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) always clobbers reg byte a +Statement [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Statement [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [19] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ menu::i#2 menu::i#1 ] +Statement [25] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Statement [27] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) always clobbers reg byte a +Statement [28] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [29] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [42] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) always clobbers reg byte a +Statement [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) always clobbers reg byte a +Statement [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) always clobbers reg byte a +Statement [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a +Statement [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y +Statement [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y +Statement [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) always clobbers reg byte a reg byte y +Statement [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) always clobbers reg byte y +Statement [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) always clobbers reg byte a +Statement [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) always clobbers reg byte a +Statement [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y +Statement [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) always clobbers reg byte a +Statement [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) always clobbers reg byte a +Statement [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) always clobbers reg byte a reg byte y +Statement [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y +Statement [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] +Statement [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] +Statement [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a +Statement [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] +Statement [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) always clobbers reg byte a +Statement [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) always clobbers reg byte a +Statement [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) always clobbers reg byte a +Statement [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] +Statement [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ form_set_screen::y#2 form_set_screen::y#1 ] +Statement [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y +Statement [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y +Statement [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:61 [ print_str_lines::ch#0 ] +Statement [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) always clobbers reg byte a +Statement [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a +Statement [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a +Statement [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y +Statement [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) always clobbers reg byte a Statement [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a -Statement [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) always clobbers reg byte a -Statement [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) always clobbers reg byte a reg byte y -Statement [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) always clobbers reg byte a -Statement [27] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [28] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) always clobbers reg byte a -Statement [45] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a -Statement [47] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ ] ) always clobbers reg byte a -Statement [48] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [52] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y -Statement [55] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y -Statement [58] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y -Statement [64] (byte*~) print_char_cursor#53 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ) always clobbers reg byte a -Statement [67] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a -Statement [68] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a -Statement [72] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y -Statement [74] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) always clobbers reg byte a -Potential registers zp ZP_BYTE:2 [ menu::i#2 menu::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] : zp ZP_WORD:3 , -Potential registers zp ZP_WORD:5 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] : zp ZP_WORD:5 , -Potential registers zp ZP_WORD:7 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#53 print_char_cursor#32 print_char_cursor#1 ] : zp ZP_WORD:7 , -Potential registers zp ZP_WORD:9 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] : zp ZP_WORD:9 , -Potential registers zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:11 , -Potential registers zp ZP_BYTE:13 [ keyboard_key_pressed::return#2 ] : zp ZP_BYTE:13 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:14 [ menu::$29 ] : zp ZP_BYTE:14 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:15 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:15 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:16 [ keyboard_key_pressed::$2 ] : zp ZP_BYTE:16 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:17 [ keyboard_key_pressed::return#0 ] : zp ZP_BYTE:17 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:18 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:18 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:19 [ print_str_lines::ch#0 ] : zp ZP_BYTE:19 , reg byte a , reg byte x , +Statement [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [19] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) always clobbers reg byte a +Statement [25] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ) always clobbers reg byte a reg byte y +Statement [27] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) always clobbers reg byte a +Statement [28] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [29] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) always clobbers reg byte a +Statement [42] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) always clobbers reg byte a +Statement [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) always clobbers reg byte a +Statement [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) always clobbers reg byte a +Statement [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte a +Statement [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) always clobbers reg byte a reg byte y +Statement [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y +Statement [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) always clobbers reg byte a reg byte y +Statement [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) always clobbers reg byte y +Statement [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) always clobbers reg byte a +Statement [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) always clobbers reg byte a +Statement [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) always clobbers reg byte a reg byte y +Statement [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) always clobbers reg byte a +Statement [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) always clobbers reg byte a +Statement [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) always clobbers reg byte a reg byte y +Statement [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) always clobbers reg byte y +Statement [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a +Statement [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a +Statement [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a +Statement [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a +Statement [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) always clobbers reg byte a +Statement [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) always clobbers reg byte a +Statement [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) always clobbers reg byte a +Statement [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) always clobbers reg byte a +Statement [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) always clobbers reg byte a reg byte y +Statement [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) always clobbers reg byte a +Statement [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) always clobbers reg byte a reg byte y +Statement [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte a reg byte y +Statement [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) always clobbers reg byte y +Statement [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) always clobbers reg byte a +Statement [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a +Statement [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) always clobbers reg byte a +Statement [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) always clobbers reg byte a reg byte y +Statement [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) always clobbers reg byte a +Potential registers zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] : zp ZP_BYTE:2 , reg byte x , +Potential registers zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] : zp ZP_BYTE:3 , reg byte x , +Potential registers zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] : zp ZP_BYTE:4 , reg byte x , +Potential registers zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] : zp ZP_BYTE:5 , reg byte x , +Potential registers zp ZP_BYTE:6 [ menu::i#2 menu::i#1 ] : zp ZP_BYTE:6 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] : zp ZP_WORD:7 , +Potential registers zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] : zp ZP_BYTE:10 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] : zp ZP_BYTE:11 , reg byte x , +Potential registers zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] : zp ZP_WORD:12 , +Potential registers zp ZP_BYTE:14 [ form_set_screen::y#2 form_set_screen::y#1 ] : zp ZP_BYTE:14 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] : zp ZP_WORD:15 , +Potential registers zp ZP_WORD:17 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] : zp ZP_WORD:17 , +Potential registers zp ZP_WORD:19 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] : zp ZP_WORD:19 , +Potential registers zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:21 , +Potential registers zp ZP_WORD:23 [ form_field_ptr::return#3 ] : zp ZP_WORD:23 , +Potential registers zp ZP_WORD:25 [ form_control::field#0 ] : zp ZP_WORD:25 , +Potential registers zp ZP_BYTE:27 [ form_control::$6 ] : zp ZP_BYTE:27 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:28 [ keyboard_key_pressed::return#2 ] : zp ZP_BYTE:28 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:29 [ form_control::key_down#0 ] : zp ZP_BYTE:29 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:30 [ form_control::$13 ] : zp ZP_BYTE:30 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:31 [ keyboard_key_pressed::return#4 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:32 [ form_control::$14 ] : zp ZP_BYTE:32 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:33 [ keyboard_key_pressed::return#3 ] : zp ZP_BYTE:33 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:34 [ form_control::key_right#0 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:35 [ keyboard_key_pressed::return#10 ] : zp ZP_BYTE:35 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:36 [ form_control::$28 ] : zp ZP_BYTE:36 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:37 [ form_control::$31 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:38 [ form_control::$32 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:39 [ form_control::$33 ] : zp ZP_BYTE:39 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:40 [ form_control::$34 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:41 [ form_control::$7 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] : zp ZP_BYTE:42 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] : zp ZP_BYTE:43 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:44 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:45 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] : zp ZP_BYTE:46 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] : zp ZP_BYTE:47 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:48 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:48 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:49 [ form_field_ptr::y#0 ] : zp ZP_BYTE:49 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:50 [ form_field_ptr::$2 ] : zp ZP_WORD:50 , +Potential registers zp ZP_BYTE:52 [ form_field_ptr::x#0 ] : zp ZP_BYTE:52 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:53 [ form_field_ptr::return#0 ] : zp ZP_WORD:53 , +Potential registers zp ZP_WORD:55 [ form_field_ptr::return#2 ] : zp ZP_WORD:55 , +Potential registers zp ZP_WORD:57 [ form_render_values::field#0 ] : zp ZP_WORD:57 , +Potential registers zp ZP_BYTE:59 [ form_set_screen::$0 ] : zp ZP_BYTE:59 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:60 [ form_set_screen::$1 ] : zp ZP_BYTE:60 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:61 [ print_str_lines::ch#0 ] : zp ZP_BYTE:61 , reg byte a , reg byte x , REGISTER UPLIFT SCOPES -Uplift Scope [] 3,698: zp ZP_WORD:7 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#53 print_char_cursor#32 print_char_cursor#1 ] 2,653.58: zp ZP_WORD:9 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] -Uplift Scope [print_str_lines] 1,937.17: zp ZP_WORD:5 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] 667.33: zp ZP_BYTE:19 [ print_str_lines::ch#0 ] -Uplift Scope [menu] 353.5: zp ZP_BYTE:2 [ menu::i#2 menu::i#1 ] 303: zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] 202: zp ZP_BYTE:14 [ menu::$29 ] -Uplift Scope [print_cls] 303: zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] -Uplift Scope [keyboard_key_pressed] 202: zp ZP_BYTE:13 [ keyboard_key_pressed::return#2 ] 34.33: zp ZP_BYTE:17 [ keyboard_key_pressed::return#0 ] 4: zp ZP_BYTE:16 [ keyboard_key_pressed::$2 ] -Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:15 [ keyboard_matrix_read::return#2 ] 1.33: zp ZP_BYTE:18 [ keyboard_matrix_read::return#0 ] +Uplift Scope [] 3,698: zp ZP_WORD:17 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] 2,653.58: zp ZP_WORD:19 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] 50: zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] 49.42: zp ZP_BYTE:4 [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] 42.6: zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] 39.91: zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Uplift Scope [print_str_lines] 1,937.17: zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] 667.33: zp ZP_BYTE:61 [ print_str_lines::ch#0 ] +Uplift Scope [form_set_screen] 218.83: zp ZP_BYTE:14 [ form_set_screen::y#2 form_set_screen::y#1 ] 202: zp ZP_BYTE:59 [ form_set_screen::$0 ] 202: zp ZP_BYTE:60 [ form_set_screen::$1 ] 148.13: zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] +Uplift Scope [menu] 353.5: zp ZP_BYTE:6 [ menu::i#2 menu::i#1 ] 303: zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] +Uplift Scope [form_field_ptr] 241.67: zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] 202: zp ZP_WORD:55 [ form_field_ptr::return#2 ] 26.25: zp ZP_WORD:53 [ form_field_ptr::return#0 ] 6: zp ZP_BYTE:49 [ form_field_ptr::y#0 ] 4: zp ZP_WORD:23 [ form_field_ptr::return#3 ] 4: zp ZP_BYTE:52 [ form_field_ptr::x#0 ] 1: zp ZP_WORD:50 [ form_field_ptr::$2 ] +Uplift Scope [form_render_values] 218.83: zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] 202: zp ZP_WORD:57 [ form_render_values::field#0 ] +Uplift Scope [print_cls] 303: zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] +Uplift Scope [form_control] 4: zp ZP_BYTE:27 [ form_control::$6 ] 4: zp ZP_BYTE:30 [ form_control::$13 ] 4: zp ZP_BYTE:32 [ form_control::$14 ] 4: zp ZP_BYTE:36 [ form_control::$28 ] 4: zp ZP_BYTE:37 [ form_control::$31 ] 4: zp ZP_BYTE:38 [ form_control::$32 ] 4: zp ZP_BYTE:39 [ form_control::$33 ] 4: zp ZP_BYTE:40 [ form_control::$34 ] 4: zp ZP_BYTE:41 [ form_control::$7 ] 2.67: zp ZP_BYTE:29 [ form_control::key_down#0 ] 2.67: zp ZP_BYTE:34 [ form_control::key_right#0 ] 0.44: zp ZP_WORD:25 [ form_control::field#0 ] +Uplift Scope [keyboard_key_pressed] 4: zp ZP_BYTE:28 [ keyboard_key_pressed::return#2 ] 4: zp ZP_BYTE:31 [ keyboard_key_pressed::return#4 ] 4: zp ZP_BYTE:33 [ keyboard_key_pressed::return#3 ] 4: zp ZP_BYTE:35 [ keyboard_key_pressed::return#10 ] 4: zp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] 4: zp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] 2: zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] 1.67: zp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] 0.67: zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] +Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:44 [ keyboard_matrix_read::rowid#0 ] 4: zp ZP_BYTE:45 [ keyboard_matrix_read::return#2 ] 1.33: zp ZP_BYTE:48 [ keyboard_matrix_read::return#0 ] Uplift Scope [print_ln] Uplift Scope [print_set_screen] Uplift Scope [main] -Uplifting [] best 138690 combination zp ZP_WORD:7 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#53 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:9 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] -Uplifting [print_str_lines] best 126690 combination zp ZP_WORD:5 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] -Uplifting [menu] best 125090 combination reg byte x [ menu::i#2 menu::i#1 ] zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] reg byte a [ menu::$29 ] -Uplifting [print_cls] best 125090 combination zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] -Uplifting [keyboard_key_pressed] best 124181 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::$2 ] -Uplifting [keyboard_matrix_read] best 124169 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ] -Uplifting [print_ln] best 124169 combination -Uplifting [print_set_screen] best 124169 combination -Uplifting [main] best 124169 combination -Coalescing zero page register [ zp ZP_WORD:3 [ menu::c#2 menu::c#1 ] ] with [ zp ZP_WORD:5 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] ] -Coalescing zero page register [ zp ZP_WORD:3 [ menu::c#2 menu::c#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] ] with [ zp ZP_WORD:11 [ print_cls::sc#2 print_cls::sc#1 ] ] -Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ menu::c#2 menu::c#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 ] -Allocated (was zp ZP_WORD:7) zp ZP_WORD:4 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#53 print_char_cursor#32 print_char_cursor#1 ] -Allocated (was zp ZP_WORD:9) zp ZP_WORD:6 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] +Uplifting [] best 163799 combination zp ZP_WORD:17 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] zp ZP_WORD:19 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] reg byte x [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Uplifting [print_str_lines] best 151799 combination zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] reg byte a [ print_str_lines::ch#0 ] +Uplifting [form_set_screen] best 149099 combination reg byte y [ form_set_screen::y#2 form_set_screen::y#1 ] reg byte a [ form_set_screen::$0 ] reg byte a [ form_set_screen::$1 ] zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] +Uplifting [menu] best 147899 combination reg byte y [ menu::i#2 menu::i#1 ] zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] +Uplifting [form_field_ptr] best 147889 combination zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] zp ZP_WORD:55 [ form_field_ptr::return#2 ] zp ZP_WORD:53 [ form_field_ptr::return#0 ] reg byte a [ form_field_ptr::y#0 ] zp ZP_WORD:23 [ form_field_ptr::return#3 ] reg byte a [ form_field_ptr::x#0 ] zp ZP_WORD:50 [ form_field_ptr::$2 ] +Uplifting [form_render_values] best 147889 combination zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] zp ZP_WORD:57 [ form_render_values::field#0 ] +Uplifting [print_cls] best 147889 combination zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] +Uplifting [form_control] best 147869 combination reg byte a [ form_control::$6 ] reg byte a [ form_control::$13 ] reg byte a [ form_control::$14 ] reg byte a [ form_control::$28 ] zp ZP_BYTE:37 [ form_control::$31 ] zp ZP_BYTE:38 [ form_control::$32 ] zp ZP_BYTE:39 [ form_control::$33 ] zp ZP_BYTE:40 [ form_control::$34 ] zp ZP_BYTE:41 [ form_control::$7 ] zp ZP_BYTE:29 [ form_control::key_down#0 ] zp ZP_BYTE:34 [ form_control::key_right#0 ] zp ZP_WORD:25 [ form_control::field#0 ] +Limited combination testing to 100 combinations of 4194304 possible. +Uplifting [keyboard_key_pressed] best 147845 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#4 ] reg byte a [ keyboard_key_pressed::return#3 ] reg byte a [ keyboard_key_pressed::return#10 ] zp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] zp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] zp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] zp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] +Limited combination testing to 100 combinations of 147456 possible. +Uplifting [keyboard_matrix_read] best 147827 combination reg byte y [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ] +Uplifting [print_ln] best 147827 combination +Uplifting [print_set_screen] best 147827 combination +Uplifting [main] best 147827 combination +Attempting to uplift remaining variables inzp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] +Uplifting [form_field_ptr] best 147827 combination zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] +Uplifting [form_render_values] best 147827 combination zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +Uplifting [] best 147827 combination zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] +Uplifting [] best 147827 combination zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] +Attempting to uplift remaining variables inzp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Uplifting [] best 147827 combination zp ZP_BYTE:5 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Attempting to uplift remaining variables inzp ZP_BYTE:37 [ form_control::$31 ] +Uplifting [form_control] best 147821 combination reg byte a [ form_control::$31 ] +Attempting to uplift remaining variables inzp ZP_BYTE:38 [ form_control::$32 ] +Uplifting [form_control] best 147815 combination reg byte a [ form_control::$32 ] +Attempting to uplift remaining variables inzp ZP_BYTE:39 [ form_control::$33 ] +Uplifting [form_control] best 147809 combination reg byte a [ form_control::$33 ] +Attempting to uplift remaining variables inzp ZP_BYTE:40 [ form_control::$34 ] +Uplifting [form_control] best 147803 combination reg byte a [ form_control::$34 ] +Attempting to uplift remaining variables inzp ZP_BYTE:41 [ form_control::$7 ] +Uplifting [form_control] best 147797 combination reg byte a [ form_control::$7 ] +Attempting to uplift remaining variables inzp ZP_BYTE:43 [ keyboard_key_pressed::rowidx#0 ] +Uplifting [keyboard_key_pressed] best 147793 combination reg byte a [ keyboard_key_pressed::rowidx#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:46 [ keyboard_key_pressed::$2 ] +Uplifting [keyboard_key_pressed] best 147787 combination reg byte a [ keyboard_key_pressed::$2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:29 [ form_control::key_down#0 ] +Uplifting [form_control] best 147777 combination reg byte a [ form_control::key_down#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:34 [ form_control::key_right#0 ] +Uplifting [form_control] best 147767 combination reg byte a [ form_control::key_right#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:9 [ keyboard_key_pressed::key#4 ] +Uplifting [keyboard_key_pressed] best 147753 combination reg byte y [ keyboard_key_pressed::key#4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:47 [ keyboard_key_pressed::return#0 ] +Uplifting [keyboard_key_pressed] best 147738 combination reg byte a [ keyboard_key_pressed::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] +Uplifting [keyboard_key_pressed] best 147738 combination zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] +Coalescing zero page register with common assignment [ zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ] ] with [ zp ZP_BYTE:11 [ form_render_values::idx#2 form_render_values::idx#1 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 ] ] with [ zp ZP_WORD:25 [ form_control::field#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 ] ] with [ zp ZP_WORD:53 [ form_field_ptr::return#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:55 [ form_field_ptr::return#2 ] ] with [ zp ZP_WORD:57 [ form_render_values::field#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 ] ] with [ zp ZP_WORD:50 [ form_field_ptr::$2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 ] ] with [ zp ZP_WORD:55 [ form_field_ptr::return#2 form_render_values::field#0 ] ] - score: 1 +Coalescing zero page register [ zp ZP_WORD:7 [ menu::c#2 menu::c#1 ] ] with [ zp ZP_WORD:12 [ form_set_screen::line#2 form_set_screen::line#1 ] ] +Coalescing zero page register [ zp ZP_WORD:7 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 ] ] with [ zp ZP_WORD:15 [ print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] ] +Coalescing zero page register [ zp ZP_WORD:7 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ] ] with [ zp ZP_WORD:21 [ print_cls::sc#2 print_cls::sc#1 ] ] +Coalescing zero page register [ zp ZP_WORD:7 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 ] ] with [ zp ZP_WORD:23 [ form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#2 form_render_values::field#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:10 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 form_render_values::idx#1 ] ] with [ zp ZP_BYTE:42 [ keyboard_key_pressed::colidx#0 ] ] +Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +Allocated (was zp ZP_WORD:7) zp ZP_WORD:5 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#2 form_render_values::field#0 ] +Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:7 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 form_render_values::idx#1 keyboard_key_pressed::colidx#0 ] +Allocated (was zp ZP_WORD:17) zp ZP_WORD:8 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] +Allocated (was zp ZP_WORD:19) zp ZP_WORD:10 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -4425,6 +7786,7 @@ ASSEMBLER BEFORE OPTIMIZATION :BasicUpstart(main) .pc = $80d "Program" //SEG1 Global Constants & labels + .label RASTER = $d012 .label BORDERCOL = $d020 .label BGCOL = $d021 .label VIC_CONTROL = $d011 @@ -4447,20 +7809,27 @@ ASSEMBLER BEFORE OPTIMIZATION .label DTV_COLOR_BANK_HI = $d037 .const DTV_COLOR_BANK_DEFAULT = $1d800 .label DTV_GRAPHICS_VIC_BANK = $d03d - .const KEY_SPACE = $3c - .label print_char_cursor = 4 - .label print_line_cursor = 6 + .const KEY_CRSR_RIGHT = 2 + .const KEY_CRSR_DOWN = 7 + .const KEY_RSHIFT = $34 + .const form_fields_cnt = 9 + .const FORM_CURSOR_BLINK = $28 + .label print_char_cursor = 8 + .label form_cursor_count = 2 + .label key_down_debounce = 3 + .label key_right_debounce = 4 + .label print_line_cursor = $a //SEG2 @begin bbegin: -//SEG3 [1] phi from @begin to @21 [phi:@begin->@21] -b21_from_bbegin: - jmp b21 -//SEG4 @21 -b21: +//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] +b25_from_bbegin: + jmp b25 +//SEG4 @25 +b25: //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @21 to @end [phi:@21->@end] -bend_from_b21: +//SEG6 [3] phi from @25 to @end [phi:@25->@end] +bend_from_b25: jmp bend //SEG7 @end bend: @@ -4471,307 +7840,756 @@ main: { //SEG10 [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2 lda #DTV_FEATURE_ENABLE sta DTV_FEATURE + //SEG11 [6] phi from main to main::@1 [phi:main->main::@1] + b1_from_main: + //SEG12 [6] phi (byte) key_right_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 + lda #0 + sta key_right_debounce + //SEG13 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuxx=vbuc1 + ldx #0 + //SEG14 [6] phi (byte) key_down_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 + lda #0 + sta key_down_debounce + //SEG15 [6] phi (signed byte) form_cursor_count#1 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:main->main::@1#3] -- vbsz1=vbuc1 + lda #FORM_CURSOR_BLINK/2 + sta form_cursor_count jmp b1 - //SEG11 main::@1 + //SEG16 main::@1 b1: - //SEG12 [6] if(true) goto main::@2 [ ] ( main:2 [ ] ) -- true_then_la1 + //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- true_then_la1 jmp b2_from_b1 jmp breturn - //SEG13 main::@return + //SEG18 main::@return breturn: - //SEG14 [7] return [ ] ( main:2 [ ] ) + //SEG19 [8] return [ ] ( main:2 [ ] ) rts - //SEG15 [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + //SEG20 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] b2_from_b1: jmp b2 - //SEG16 main::@2 + //SEG21 main::@2 b2: - //SEG17 [9] call menu param-assignment [ ] ( main:2 [ ] ) + //SEG22 [10] call menu param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) jsr menu + //SEG23 [6] phi from main::@2 to main::@1 [phi:main::@2->main::@1] + b1_from_b2: + //SEG24 [6] phi (byte) key_right_debounce#1 = (byte) key_right_debounce#11 [phi:main::@2->main::@1#0] -- register_copy + //SEG25 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#1] -- register_copy + //SEG26 [6] phi (byte) key_down_debounce#1 = (byte) key_down_debounce#11 [phi:main::@2->main::@1#2] -- register_copy + //SEG27 [6] phi (signed byte) form_cursor_count#1 = (signed byte) form_cursor_count#13 [phi:main::@2->main::@1#3] -- register_copy jmp b1 } -//SEG18 menu +//SEG28 menu menu: { .label SCREEN = $8000 .label CHARSET = $9800 - .label c = 2 - //SEG19 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + .label c = 5 + //SEG29 [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG20 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG21 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI - //SEG22 [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG32 [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_CONTROL - //SEG23 [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG24 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #3^CHARSET/$4000 sta CIA2_PORT_A - //SEG25 [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_DEN|VIC_RSEL|3 sta VIC_CONTROL - //SEG26 [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG27 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY - //SEG28 [19] phi from menu to menu::@1 [phi:menu->menu::@1] + //SEG38 [20] phi from menu to menu::@1 [phi:menu->menu::@1] b1_from_menu: - //SEG29 [19] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuxx=vbuc1 - ldx #0 + //SEG39 [20] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuyy=vbuc1 + ldy #0 jmp b1 - //SEG30 [19] phi from menu::@1 to menu::@1 [phi:menu::@1->menu::@1] + //SEG40 [20] phi from menu::@1 to menu::@1 [phi:menu::@1->menu::@1] b1_from_b1: - //SEG31 [19] phi (byte) menu::i#2 = (byte) menu::i#1 [phi:menu::@1->menu::@1#0] -- register_copy + //SEG41 [20] phi (byte) menu::i#2 = (byte) menu::i#1 [phi:menu::@1->menu::@1#0] -- register_copy jmp b1 - //SEG32 menu::@1 + //SEG42 menu::@1 b1: - //SEG33 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx - lda DTV_PALETTE_DEFAULT,x - sta DTV_PALETTE,x - //SEG34 [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ menu::i#1 ] ( main:2::menu:9 [ menu::i#1 ] ) -- vbuxx=_inc_vbuxx - inx - //SEG35 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ menu::i#1 ] ( main:2::menu:9 [ menu::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 - cpx #$10 + //SEG43 [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy + lda DTV_PALETTE_DEFAULT,y + sta DTV_PALETTE,y + //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuyy=_inc_vbuyy + iny + //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuyy_neq_vbuc1_then_la1 + cpy #$10 bne b1_from_b1 - //SEG36 [23] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] + //SEG46 [24] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] b2_from_b1: - //SEG37 [23] phi (byte*) menu::c#2 = (const byte*) COLS#0 [phi:menu::@1->menu::@2#0] -- pbuz1=pbuc1 + //SEG47 [24] phi (byte*) menu::c#2 = (const byte*) COLS#0 [phi:menu::@1->menu::@2#0] -- pbuz1=pbuc1 lda #COLS sta c+1 jmp b2 - //SEG38 [23] phi from menu::@2 to menu::@2 [phi:menu::@2->menu::@2] + //SEG48 [24] phi from menu::@2 to menu::@2 [phi:menu::@2->menu::@2] b2_from_b2: - //SEG39 [23] phi (byte*) menu::c#2 = (byte*) menu::c#1 [phi:menu::@2->menu::@2#0] -- register_copy + //SEG49 [24] phi (byte*) menu::c#2 = (byte*) menu::c#1 [phi:menu::@2->menu::@2#0] -- register_copy jmp b2 - //SEG40 menu::@2 + //SEG50 menu::@2 b2: - //SEG41 [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG51 [25] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ) -- _deref_pbuz1=vbuc1 lda #LIGHT_GREEN ldy #0 sta (c),y - //SEG42 [25] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG52 [26] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) -- pbuz1=_inc_pbuz1 inc c bne !+ inc c+1 !: - //SEG43 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG53 [27] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>COLS+$3e8 bne b2_from_b2 lda c cmp #print_set_screen] - print_set_screen_from_b8: + //SEG57 [30] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG58 [163] phi from menu::@10 to print_set_screen [phi:menu::@10->print_set_screen] + print_set_screen_from_b10: jsr print_set_screen - //SEG49 [30] phi from menu::@8 to menu::@14 [phi:menu::@8->menu::@14] - b14_from_b8: - jmp b14 - //SEG50 menu::@14 - b14: - //SEG51 [31] call print_cls param-assignment [ ] ( main:2::menu:9 [ ] ) - //SEG52 [70] phi from menu::@14 to print_cls [phi:menu::@14->print_cls] - print_cls_from_b14: - jsr print_cls - //SEG53 [32] phi from menu::@14 to menu::@15 [phi:menu::@14->menu::@15] - b15_from_b14: - jmp b15 - //SEG54 menu::@15 - b15: - //SEG55 [33] call print_str_lines param-assignment [ ] ( main:2::menu:9 [ ] ) - //SEG56 [50] phi from menu::@15 to print_str_lines [phi:menu::@15->print_str_lines] - print_str_lines_from_b15: - jsr print_str_lines - jmp b3 - //SEG57 menu::@3 - b3: - //SEG58 [34] if(true) goto menu::@4 [ ] ( main:2::menu:9 [ ] ) -- true_then_la1 - jmp b4_from_b3 - jmp breturn - //SEG59 menu::@return - breturn: - //SEG60 [35] return [ ] ( main:2::menu:9 [ ] ) - rts - //SEG61 [36] phi from menu::@3 to menu::@4 [phi:menu::@3->menu::@4] - b4_from_b3: - jmp b4 - //SEG62 menu::@4 - b4: - //SEG63 [37] call keyboard_key_pressed param-assignment [ keyboard_key_pressed::return#0 ] ( main:2::menu:9 [ keyboard_key_pressed::return#0 ] ) - //SEG64 [41] phi from menu::@4 to keyboard_key_pressed [phi:menu::@4->keyboard_key_pressed] - keyboard_key_pressed_from_b4: - jsr keyboard_key_pressed - //SEG65 [38] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ keyboard_key_pressed::return#2 ] ( main:2::menu:9 [ keyboard_key_pressed::return#2 ] ) - // (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a + //SEG59 [31] phi from menu::@10 to menu::@17 [phi:menu::@10->menu::@17] + b17_from_b10: jmp b17 - //SEG66 menu::@17 + //SEG60 menu::@17 b17: - //SEG67 [39] (byte~) menu::$29 ← (byte) keyboard_key_pressed::return#2 [ menu::$29 ] ( main:2::menu:9 [ menu::$29 ] ) - // (byte~) menu::$29 = (byte) keyboard_key_pressed::return#2 // register copy reg byte a - //SEG68 [40] if((byte~) menu::$29==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@3 [ ] ( main:2::menu:9 [ ] ) -- vbuaa_eq_0_then_la1 - cmp #0 - beq b3 + //SEG61 [32] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG62 [157] phi from menu::@17 to print_cls [phi:menu::@17->print_cls] + print_cls_from_b17: + jsr print_cls + //SEG63 [33] phi from menu::@17 to menu::@18 [phi:menu::@17->menu::@18] + b18_from_b17: + jmp b18 + //SEG64 menu::@18 + b18: + //SEG65 [34] call print_str_lines param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG66 [137] phi from menu::@18 to print_str_lines [phi:menu::@18->print_str_lines] + print_str_lines_from_b18: + jsr print_str_lines + //SEG67 [35] phi from menu::@18 to menu::@19 [phi:menu::@18->menu::@19] + b19_from_b18: + jmp b19 + //SEG68 menu::@19 + b19: + //SEG69 [36] call form_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG70 [127] phi from menu::@19 to form_set_screen [phi:menu::@19->form_set_screen] + form_set_screen_from_b19: + jsr form_set_screen + //SEG71 [37] phi from menu::@19 to menu::@20 [phi:menu::@19->menu::@20] + b20_from_b19: + jmp b20 + //SEG72 menu::@20 + b20: + //SEG73 [38] call form_render_values param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG74 [117] phi from menu::@20 to form_render_values [phi:menu::@20->form_render_values] + form_render_values_from_b20: + jsr form_render_values + //SEG75 [39] phi from menu::@20 menu::@8 to menu::@3 [phi:menu::@20/menu::@8->menu::@3] + b3_from_b20: + b3_from_b8: + //SEG76 [39] phi (byte) key_right_debounce#11 = (byte) key_right_debounce#1 [phi:menu::@20/menu::@8->menu::@3#0] -- register_copy + //SEG77 [39] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@20/menu::@8->menu::@3#1] -- register_copy + //SEG78 [39] phi (byte) key_down_debounce#11 = (byte) key_down_debounce#1 [phi:menu::@20/menu::@8->menu::@3#2] -- register_copy + //SEG79 [39] phi (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#1 [phi:menu::@20/menu::@8->menu::@3#3] -- register_copy + jmp b3 + //SEG80 menu::@3 + b3: + //SEG81 [40] if(true) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) -- true_then_la1 + jmp b6 jmp breturn + //SEG82 menu::@return + breturn: + //SEG83 [41] return [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + rts + //SEG84 menu::@6 + b6: + //SEG85 [42] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + lda RASTER + cmp #$ff + bne b6 + //SEG86 [43] phi from menu::@6 to menu::@8 [phi:menu::@6->menu::@8] + b8_from_b6: + jmp b8 + //SEG87 menu::@8 + b8: + //SEG88 [44] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + jsr form_control + jmp b3_from_b8 } -//SEG69 keyboard_key_pressed +//SEG89 form_control +form_control: { + .label field = 5 + //SEG90 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuz1=vbuxx + stx form_field_ptr.field_idx + //SEG91 [46] call form_field_ptr param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) + //SEG92 [111] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] + form_field_ptr_from_form_control: + //SEG93 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy + jsr form_field_ptr + //SEG94 [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) + // (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:5 + jmp b28 + //SEG95 form_control::@28 + b28: + //SEG96 [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) + // (byte*) form_control::field#0 = (byte*) form_field_ptr::return#3 // register copy zp ZP_WORD:5 + //SEG97 [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 + dec form_cursor_count + //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 + lda form_cursor_count + cmp #0 + bpl b33_from_b28 + //SEG99 [51] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] + b1_from_b28: + //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 + lda #FORM_CURSOR_BLINK + sta form_cursor_count + jmp b1 + //SEG101 form_control::@1 + b1: + //SEG102 [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 + lda form_cursor_count + sec + sbc #FORM_CURSOR_BLINK/2 + bvc !+ + eor #$80 + !: + bpl b2 + jmp b15 + //SEG103 form_control::@15 + b15: + //SEG104 [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuaa=_deref_pbuz1_bor_vbuc1 + lda #$80 + ldy #0 + ora (field),y + //SEG105 [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + ldy #0 + sta (field),y + //SEG106 [55] phi from form_control::@15 form_control::@2 to form_control::@3 [phi:form_control::@15/form_control::@2->form_control::@3] + b3_from_b15: + b3_from_b2: + jmp b3 + //SEG107 form_control::@3 + b3: + //SEG108 [56] call keyboard_key_pressed param-assignment [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ) + //SEG109 [99] phi from form_control::@3 to keyboard_key_pressed [phi:form_control::@3->keyboard_key_pressed] + keyboard_key_pressed_from_b3: + //SEG110 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_DOWN#0 [phi:form_control::@3->keyboard_key_pressed#0] -- vbuyy=vbuc1 + ldy #KEY_CRSR_DOWN + jsr keyboard_key_pressed + //SEG111 [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) + // (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a + jmp b29 + //SEG112 form_control::@29 + b29: + //SEG113 [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) + // (byte) form_control::key_down#0 = (byte) keyboard_key_pressed::return#2 // register copy reg byte a + //SEG114 [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) -- vbuaa_eq_vbuz1_then_la1 + cmp key_down_debounce + beq b4_from_b29 + jmp b17 + //SEG115 form_control::@17 + b17: + //SEG116 [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) -- vbuz1=vbuaa + sta key_down_debounce + //SEG117 [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq b4_from_b17 + jmp b18 + //SEG118 form_control::@18 + b18: + //SEG119 [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 + lda #$7f + ldy #0 + and (field),y + //SEG120 [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- _deref_pbuz1=vbuaa + ldy #0 + sta (field),y + //SEG121 [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) + //SEG122 [99] phi from form_control::@18 to keyboard_key_pressed [phi:form_control::@18->keyboard_key_pressed] + keyboard_key_pressed_from_b18: + //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@18->keyboard_key_pressed#0] -- vbuyy=vbuc1 + ldy #KEY_RSHIFT + jsr keyboard_key_pressed + //SEG124 [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) + // (byte) keyboard_key_pressed::return#4 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a + jmp b31 + //SEG125 form_control::@31 + b31: + //SEG126 [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) + // (byte~) form_control::$14 = (byte) keyboard_key_pressed::return#4 // register copy reg byte a + //SEG127 [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuaa_neq_0_then_la1 + cmp #0 + bne b6 + jmp b19 + //SEG128 form_control::@19 + b19: + //SEG129 [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG130 [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #form_fields_cnt + bne b34_from_b19 + //SEG131 [70] phi from form_control::@19 to form_control::@8 [phi:form_control::@19->form_control::@8] + b8_from_b19: + //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@19->form_control::@8#0] -- vbuxx=vbuc1 + ldx #0 + jmp b8 + //SEG133 form_control::@8 + b8: + //SEG134 [71] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] + breturn_from_b8: + //SEG135 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy + //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@8->form_control::@return#1] -- register_copy + //SEG137 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy + //SEG138 [71] phi (signed byte) form_cursor_count#16 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:form_control::@8->form_control::@return#3] -- vbsz1=vbuc1 + lda #FORM_CURSOR_BLINK/2 + sta form_cursor_count + jmp breturn + //SEG139 [71] phi from form_control::@13 form_control::@24 form_control::@30 to form_control::@return [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return] + breturn_from_b13: + breturn_from_b24: + breturn_from_b30: + //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#0] -- register_copy + //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#1] -- register_copy + //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#2] -- register_copy + //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#3] -- register_copy + jmp breturn + //SEG144 form_control::@return + breturn: + //SEG145 [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + rts + //SEG146 [73] phi from form_control::@19 to form_control::@34 [phi:form_control::@19->form_control::@34] + b34_from_b19: + jmp b34 + //SEG147 form_control::@34 + b34: + //SEG148 [70] phi from form_control::@34 form_control::@35 to form_control::@8 [phi:form_control::@34/form_control::@35->form_control::@8] + b8_from_b34: + b8_from_b35: + //SEG149 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#37 [phi:form_control::@34/form_control::@35->form_control::@8#0] -- register_copy + jmp b8 + //SEG150 form_control::@6 + b6: + //SEG151 [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuxx=_dec_vbuxx + dex + //SEG152 [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #$ff + bne b35_from_b6 + //SEG153 [70] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] + b8_from_b6: + //SEG154 [70] phi (byte) form_field_idx#30 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuxx=vbuc1 + ldx #form_fields_cnt-1 + jmp b8 + //SEG155 [76] phi from form_control::@6 to form_control::@35 [phi:form_control::@6->form_control::@35] + b35_from_b6: + jmp b35 + //SEG156 form_control::@35 + b35: + jmp b8_from_b35 + //SEG157 [77] phi from form_control::@17 form_control::@29 to form_control::@4 [phi:form_control::@17/form_control::@29->form_control::@4] + b4_from_b17: + b4_from_b29: + //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@17/form_control::@29->form_control::@4#0] -- register_copy + jmp b4 + //SEG159 form_control::@4 + b4: + //SEG160 [78] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ) + //SEG161 [99] phi from form_control::@4 to keyboard_key_pressed [phi:form_control::@4->keyboard_key_pressed] + keyboard_key_pressed_from_b4: + //SEG162 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_RIGHT#0 [phi:form_control::@4->keyboard_key_pressed#0] -- vbuyy=vbuc1 + ldy #KEY_CRSR_RIGHT + jsr keyboard_key_pressed + //SEG163 [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) + // (byte) keyboard_key_pressed::return#3 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a + jmp b30 + //SEG164 form_control::@30 + b30: + //SEG165 [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) + // (byte) form_control::key_right#0 = (byte) keyboard_key_pressed::return#3 // register copy reg byte a + //SEG166 [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) -- vbuaa_eq_vbuz1_then_la1 + cmp key_right_debounce + beq breturn_from_b30 + jmp b24 + //SEG167 form_control::@24 + b24: + //SEG168 [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) -- vbuz1=vbuaa + sta key_right_debounce + //SEG169 [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq breturn_from_b24 + //SEG170 [84] phi from form_control::@24 to form_control::@25 [phi:form_control::@24->form_control::@25] + b25_from_b24: + jmp b25 + //SEG171 form_control::@25 + b25: + //SEG172 [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) + //SEG173 [99] phi from form_control::@25 to keyboard_key_pressed [phi:form_control::@25->keyboard_key_pressed] + keyboard_key_pressed_from_b25: + //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@25->keyboard_key_pressed#0] -- vbuyy=vbuc1 + ldy #KEY_RSHIFT + jsr keyboard_key_pressed + //SEG175 [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) + // (byte) keyboard_key_pressed::return#10 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a + jmp b32 + //SEG176 form_control::@32 + b32: + //SEG177 [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) + // (byte~) form_control::$28 = (byte) keyboard_key_pressed::return#10 // register copy reg byte a + //SEG178 [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuaa_neq_0_then_la1 + cmp #0 + bne b12 + jmp b26 + //SEG179 form_control::@26 + b26: + //SEG180 [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_plus_1 + lda form_fields_val,x + clc + adc #1 + //SEG181 [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) -- vbuaa=vbuaa_band_vbuc1 + and #$f + //SEG182 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta form_fields_val,x + jmp b13 + //SEG183 form_control::@13 + b13: + //SEG184 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuxx + lda form_fields_val,x + tay + lda print_hextab,y + ldy #0 + sta (field),y + jmp breturn_from_b13 + //SEG185 form_control::@12 + b12: + //SEG186 [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_minus_1 + lda form_fields_val,x + sec + sbc #1 + //SEG187 [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) -- vbuaa=vbuaa_band_vbuc1 + and #$f + //SEG188 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta form_fields_val,x + jmp b13 + //SEG189 form_control::@2 + b2: + //SEG190 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 + lda #$7f + ldy #0 + and (field),y + //SEG191 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + ldy #0 + sta (field),y + jmp b3_from_b2 + //SEG192 [98] phi from form_control::@28 to form_control::@33 [phi:form_control::@28->form_control::@33] + b33_from_b28: + jmp b33 + //SEG193 form_control::@33 + b33: + //SEG194 [51] phi from form_control::@33 to form_control::@1 [phi:form_control::@33->form_control::@1] + b1_from_b33: + //SEG195 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@33->form_control::@1#0] -- register_copy + jmp b1 +} +//SEG196 keyboard_key_pressed keyboard_key_pressed: { - .const colidx = KEY_SPACE&7 - .label rowidx = KEY_SPACE>>3 - //SEG70 [42] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_matrix_read::return#0 ] ) + .label colidx = 7 + //SEG197 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuyy_band_vbuc1 + tya + and #7 + sta colidx + //SEG198 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuaa=vbuyy_ror_3 + tya + lsr + lsr + lsr + //SEG199 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuyy=vbuaa + tay + //SEG200 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) jsr keyboard_matrix_read - //SEG71 [43] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_matrix_read::return#2 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_matrix_read::return#2 ] ) + //SEG201 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a jmp b2 - //SEG72 keyboard_key_pressed::@2 + //SEG202 keyboard_key_pressed::@2 b2: - //SEG73 [44] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::$2 ] ) + //SEG203 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) // (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a - //SEG74 [45] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1 - and keyboard_matrix_col_bitmask+colidx + //SEG204 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 + ldy colidx + and keyboard_matrix_col_bitmask,y jmp breturn - //SEG75 keyboard_key_pressed::@return + //SEG205 keyboard_key_pressed::@return breturn: - //SEG76 [46] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) + //SEG206 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) rts } -//SEG77 keyboard_matrix_read +//SEG207 keyboard_matrix_read keyboard_matrix_read: { - //SEG78 [47] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx + //SEG208 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuyy + lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG79 [48] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 + //SEG209 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG80 keyboard_matrix_read::@return + //SEG210 keyboard_matrix_read::@return breturn: - //SEG81 [49] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) + //SEG211 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) rts } -//SEG82 print_str_lines +//SEG212 form_field_ptr +form_field_ptr: { + .label return = 5 + .label field_idx = 7 + .label _2 = 5 + //SEG213 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 + ldy field_idx + lda form_fields_y,y + //SEG214 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa + tay + lda form_line_hi,y + sta _2+1 + lda form_line_lo,y + sta _2 + //SEG215 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 + ldy field_idx + lda form_fields_x,y + //SEG216 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz1_plus_vbuaa + clc + adc return + sta return + lda #0 + adc return+1 + sta return+1 + jmp breturn + //SEG217 form_field_ptr::@return + breturn: + //SEG218 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) + rts +} +//SEG219 form_render_values +form_render_values: { + .label field = 5 + .label idx = 7 + //SEG220 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + b1_from_form_render_values: + //SEG221 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuz1=vbuc1 + lda #0 + sta idx + jmp b1 + //SEG222 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + b1_from_b3: + //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy + jmp b1 + //SEG224 form_render_values::@1 + b1: + //SEG225 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) + // (byte) form_field_ptr::field_idx#0 = (byte) form_render_values::idx#2 // register copy zp ZP_BYTE:7 + //SEG226 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG227 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + form_field_ptr_from_b1: + //SEG228 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy + jsr form_field_ptr + //SEG229 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) + // (byte*) form_field_ptr::return#2 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:5 + jmp b3 + //SEG230 form_render_values::@3 + b3: + //SEG231 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) + // (byte*) form_render_values::field#0 = (byte*) form_field_ptr::return#2 // register copy zp ZP_WORD:5 + //SEG232 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + ldy idx + lda form_fields_val,y + tay + lda print_hextab,y + ldy #0 + sta (field),y + //SEG233 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 + inc idx + //SEG234 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1_lt_vbuc1_then_la1 + lda idx + cmp #form_fields_cnt + bcc b1_from_b3 + jmp breturn + //SEG235 form_render_values::@return + breturn: + //SEG236 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + rts +} +//SEG237 form_set_screen +form_set_screen: { + .label line = 5 + //SEG238 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + b1_from_form_set_screen: + //SEG239 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuyy=vbuc1 + ldy #0 + //SEG240 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + lda #menu.SCREEN + sta line+1 + jmp b1 + //SEG241 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + b1_from_b1: + //SEG242 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy + //SEG243 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy + jmp b1 + //SEG244 form_set_screen::@1 + b1: + //SEG245 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuaa=_lo_pbuz1 + lda line + //SEG246 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + sta form_line_lo,y + //SEG247 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuaa=_hi_pbuz1 + lda line+1 + //SEG248 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + sta form_line_hi,y + //SEG249 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda line + clc + adc #$28 + sta line + bcc !+ + inc line+1 + !: + //SEG250 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuyy=_inc_vbuyy + iny + //SEG251 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuyy_neq_vbuc1_then_la1 + cpy #$19 + bne b1_from_b1 + jmp breturn + //SEG252 form_set_screen::@return + breturn: + //SEG253 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + rts +} +//SEG254 print_str_lines print_str_lines: { - .label str = 2 - //SEG83 [51] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] + .label str = 5 + //SEG255 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] b1_from_print_str_lines: - //SEG84 [51] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 + //SEG256 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_line_cursor+1 - //SEG85 [51] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 + //SEG257 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_char_cursor+1 - //SEG86 [51] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 + //SEG258 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 lda #MENU_TEXT sta str+1 jmp b1 - //SEG87 print_str_lines::@1 + //SEG259 print_str_lines::@1 b1: - //SEG88 [52] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG260 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4_from_b1 jmp breturn - //SEG89 print_str_lines::@return + //SEG261 print_str_lines::@return breturn: - //SEG90 [53] return [ ] ( main:2::menu:9::print_str_lines:33 [ ] ) + //SEG262 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts - //SEG91 [54] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] + //SEG263 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] b4_from_b1: b4_from_b5: - //SEG92 [54] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG93 [54] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG264 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG265 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy jmp b4 - //SEG94 print_str_lines::@4 + //SEG266 print_str_lines::@4 b4: - //SEG95 [55] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 + //SEG267 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - //SEG96 [56] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG268 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG97 [57] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 + //SEG269 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 cmp #'@' beq b5_from_b4 jmp b8 - //SEG98 print_str_lines::@8 + //SEG270 print_str_lines::@8 b8: - //SEG99 [58] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa + //SEG271 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - //SEG100 [59] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG272 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 inc print_char_cursor bne !+ inc print_char_cursor+1 !: - //SEG101 [60] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] + //SEG273 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] b5_from_b4: b5_from_b8: - //SEG102 [60] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG274 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy jmp b5 - //SEG103 print_str_lines::@5 + //SEG275 print_str_lines::@5 b5: - //SEG104 [61] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuaa_neq_vbuc1_then_la1 + //SEG276 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuaa_neq_vbuc1_then_la1 cmp #'@' bne b4_from_b5 - //SEG105 [62] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG277 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] b9_from_b5: jmp b9 - //SEG106 print_str_lines::@9 + //SEG278 print_str_lines::@9 b9: - //SEG107 [63] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_line_cursor#19 ] ) - //SEG108 [65] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG279 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG280 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] print_ln_from_b9: jsr print_ln - //SEG109 [64] (byte*~) print_char_cursor#53 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ) -- pbuz1=pbuz2 + //SEG281 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 - //SEG110 [51] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] + //SEG282 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] b1_from_b9: - //SEG111 [51] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG112 [51] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#53 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG113 [51] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG283 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG284 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG285 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy jmp b1 } -//SEG114 print_ln +//SEG286 print_ln print_ln: { - //SEG115 [66] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG287 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] b1_from_print_ln: b1_from_b1: - //SEG116 [66] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG288 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy jmp b1 - //SEG117 print_ln::@1 + //SEG289 print_ln::@1 b1: - //SEG118 [67] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG290 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -4779,7 +8597,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG119 [68] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG291 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1_from_b1 @@ -4789,38 +8607,38 @@ print_ln: { bcc b1_from_b1 !: jmp breturn - //SEG120 print_ln::@return + //SEG292 print_ln::@return breturn: - //SEG121 [69] return [ print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG293 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) rts } -//SEG122 print_cls +//SEG294 print_cls print_cls: { - .label sc = 2 - //SEG123 [71] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + .label sc = 5 + //SEG295 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] b1_from_print_cls: - //SEG124 [71] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + //SEG296 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta sc+1 jmp b1 - //SEG125 [71] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + //SEG297 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] b1_from_b1: - //SEG126 [71] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + //SEG298 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy jmp b1 - //SEG127 print_cls::@1 + //SEG299 print_cls::@1 b1: - //SEG128 [72] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG300 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG129 [73] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG301 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG130 [74] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG302 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1_from_b1 @@ -4828,42 +8646,76 @@ print_cls: { cmp #>(byte/signed byte/word/signed word/dword/signed dword) 3 +(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[]) keyboard_matrix_col_bitmask (const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) @@ -5026,6 +9095,7 @@ FINAL SYMBOL TABLE (byte) keyboard_matrix_read::return#2 reg byte a 4.0 (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte y 4.0 (byte[8]) keyboard_matrix_row_bitmask (const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } (void()) main() @@ -5033,14 +9103,15 @@ FINAL SYMBOL TABLE (label) main::@2 (label) main::@return (void()) menu() -(byte~) menu::$29 reg byte a 202.0 (label) menu::@1 -(label) menu::@14 -(label) menu::@15 +(label) menu::@10 (label) menu::@17 +(label) menu::@18 +(label) menu::@19 (label) menu::@2 +(label) menu::@20 (label) menu::@3 -(label) menu::@4 +(label) menu::@6 (label) menu::@8 (label) menu::@return (byte*) menu::CHARSET @@ -5048,27 +9119,29 @@ FINAL SYMBOL TABLE (byte*) menu::SCREEN (const byte*) menu::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 (byte*) menu::c -(byte*) menu::c#1 c zp ZP_WORD:2 151.5 -(byte*) menu::c#2 c zp ZP_WORD:2 151.5 +(byte*) menu::c#1 c zp ZP_WORD:5 151.5 +(byte*) menu::c#2 c zp ZP_WORD:5 151.5 (byte) menu::i -(byte) menu::i#1 reg byte x 151.5 -(byte) menu::i#2 reg byte x 202.0 +(byte) menu::i#1 reg byte y 151.5 +(byte) menu::i#2 reg byte y 202.0 (byte*) print_char_cursor -(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:4 2002.0 -(byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:4 821.0 -(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:4 101.0 -(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:4 572.0 -(byte*~) print_char_cursor#53 print_char_cursor zp ZP_WORD:4 202.0 +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:8 2002.0 +(byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:8 821.0 +(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:8 101.0 +(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:8 572.0 +(byte*~) print_char_cursor#59 print_char_cursor zp ZP_WORD:8 202.0 (void()) print_cls() (label) print_cls::@1 (label) print_cls::@return (byte*) print_cls::sc -(byte*) print_cls::sc#1 sc zp ZP_WORD:2 151.5 -(byte*) print_cls::sc#2 sc zp ZP_WORD:2 151.5 +(byte*) print_cls::sc#1 sc zp ZP_WORD:5 151.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:5 151.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(byte*) print_line_cursor#17 print_line_cursor zp ZP_WORD:6 8.583333333333332 -(byte*) print_line_cursor#18 print_line_cursor zp ZP_WORD:6 2004.0 -(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:6 641.0 +(byte*) print_line_cursor#17 print_line_cursor zp ZP_WORD:10 8.583333333333332 +(byte*) print_line_cursor#18 print_line_cursor zp ZP_WORD:10 2004.0 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:10 641.0 (void()) print_ln() (label) print_ln::@1 (label) print_ln::@return @@ -5086,31 +9159,58 @@ FINAL SYMBOL TABLE (byte) print_str_lines::ch (byte) print_str_lines::ch#0 reg byte a 667.3333333333334 (byte*) print_str_lines::str -(byte*) print_str_lines::str#0 str zp ZP_WORD:2 233.66666666666669 -(byte*) print_str_lines::str#2 str zp ZP_WORD:2 151.5 -(byte*) print_str_lines::str#3 str zp ZP_WORD:2 1552.0 +(byte*) print_str_lines::str#0 str zp ZP_WORD:5 233.66666666666669 +(byte*) print_str_lines::str#2 str zp ZP_WORD:5 151.5 +(byte*) print_str_lines::str#3 str zp ZP_WORD:5 1552.0 -reg byte x [ menu::i#2 menu::i#1 ] -zp ZP_WORD:2 [ menu::c#2 menu::c#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 ] -zp ZP_WORD:4 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#53 print_char_cursor#32 print_char_cursor#1 ] -zp ZP_WORD:6 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] +zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] +reg byte x [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] +zp ZP_BYTE:4 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +reg byte y [ menu::i#2 menu::i#1 ] +zp ZP_WORD:5 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#2 form_render_values::field#0 ] +reg byte y [ keyboard_key_pressed::key#4 ] +zp ZP_BYTE:7 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 form_render_values::idx#1 keyboard_key_pressed::colidx#0 ] +reg byte y [ form_set_screen::y#2 form_set_screen::y#1 ] +zp ZP_WORD:8 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] +zp ZP_WORD:10 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] +reg byte a [ form_control::$6 ] reg byte a [ keyboard_key_pressed::return#2 ] -reg byte a [ menu::$29 ] +reg byte a [ form_control::key_down#0 ] +reg byte a [ form_control::$13 ] +reg byte a [ keyboard_key_pressed::return#4 ] +reg byte a [ form_control::$14 ] +reg byte a [ keyboard_key_pressed::return#3 ] +reg byte a [ form_control::key_right#0 ] +reg byte a [ keyboard_key_pressed::return#10 ] +reg byte a [ form_control::$28 ] +reg byte a [ form_control::$31 ] +reg byte a [ form_control::$32 ] +reg byte a [ form_control::$33 ] +reg byte a [ form_control::$34 ] +reg byte a [ form_control::$7 ] +reg byte a [ keyboard_key_pressed::rowidx#0 ] +reg byte y [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_key_pressed::$2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ form_field_ptr::y#0 ] +reg byte a [ form_field_ptr::x#0 ] +reg byte a [ form_set_screen::$0 ] +reg byte a [ form_set_screen::$1 ] reg byte a [ print_str_lines::ch#0 ] FINAL ASSEMBLER -Score: 104812 +Score: 122790 //SEG0 Basic Upstart .pc = $801 "Basic" :BasicUpstart(main) .pc = $80d "Program" //SEG1 Global Constants & labels + .label RASTER = $d012 .label BORDERCOL = $d020 .label BGCOL = $d021 .label VIC_CONTROL = $d011 @@ -5133,15 +9233,22 @@ Score: 104812 .label DTV_COLOR_BANK_HI = $d037 .const DTV_COLOR_BANK_DEFAULT = $1d800 .label DTV_GRAPHICS_VIC_BANK = $d03d - .const KEY_SPACE = $3c - .label print_char_cursor = 4 - .label print_line_cursor = 6 + .const KEY_CRSR_RIGHT = 2 + .const KEY_CRSR_DOWN = 7 + .const KEY_RSHIFT = $34 + .const form_fields_cnt = 9 + .const FORM_CURSOR_BLINK = $28 + .label print_char_cursor = 8 + .label form_cursor_count = 2 + .label key_down_debounce = 3 + .label key_right_debounce = 4 + .label print_line_cursor = $a //SEG2 @begin -//SEG3 [1] phi from @begin to @21 [phi:@begin->@21] -//SEG4 @21 +//SEG3 [1] phi from @begin to @25 [phi:@begin->@25] +//SEG4 @25 //SEG5 [2] call main param-assignment [ ] ( ) jsr main -//SEG6 [3] phi from @21 to @end [phi:@21->@end] +//SEG6 [3] phi from @25 to @end [phi:@25->@end] //SEG7 @end //SEG8 main main: { @@ -5150,244 +9257,596 @@ main: { //SEG10 [5] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2 lda #DTV_FEATURE_ENABLE sta DTV_FEATURE - //SEG11 main::@1 - //SEG12 [6] if(true) goto main::@2 [ ] ( main:2 [ ] ) -- true_then_la1 - //SEG13 main::@return - //SEG14 [7] return [ ] ( main:2 [ ] ) - //SEG15 [8] phi from main::@1 to main::@2 [phi:main::@1->main::@2] - //SEG16 main::@2 + //SEG11 [6] phi from main to main::@1 [phi:main->main::@1] + //SEG12 [6] phi (byte) key_right_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 + lda #0 + sta key_right_debounce + //SEG13 [6] phi (byte) form_field_idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#1] -- vbuxx=vbuc1 + tax + //SEG14 [6] phi (byte) key_down_debounce#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 + sta key_down_debounce + //SEG15 [6] phi (signed byte) form_cursor_count#1 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:main->main::@1#3] -- vbsz1=vbuc1 + lda #FORM_CURSOR_BLINK/2 + sta form_cursor_count + //SEG16 main::@1 + //SEG17 [7] if(true) goto main::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- true_then_la1 + //SEG18 main::@return + //SEG19 [8] return [ ] ( main:2 [ ] ) + //SEG20 [9] phi from main::@1 to main::@2 [phi:main::@1->main::@2] + //SEG21 main::@2 b2: - //SEG17 [9] call menu param-assignment [ ] ( main:2 [ ] ) + //SEG22 [10] call menu param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) jsr menu + //SEG23 [6] phi from main::@2 to main::@1 [phi:main::@2->main::@1] + //SEG24 [6] phi (byte) key_right_debounce#1 = (byte) key_right_debounce#11 [phi:main::@2->main::@1#0] -- register_copy + //SEG25 [6] phi (byte) form_field_idx#1 = (byte) form_field_idx#14 [phi:main::@2->main::@1#1] -- register_copy + //SEG26 [6] phi (byte) key_down_debounce#1 = (byte) key_down_debounce#11 [phi:main::@2->main::@1#2] -- register_copy + //SEG27 [6] phi (signed byte) form_cursor_count#1 = (signed byte) form_cursor_count#13 [phi:main::@2->main::@1#3] -- register_copy jmp b2 } -//SEG18 menu +//SEG28 menu menu: { .label SCREEN = $8000 .label CHARSET = $9800 - .label c = 2 - //SEG19 [10] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + .label c = 5 + //SEG29 [11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) menu::CHARSET#0/(dword/signed dword) 65536 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #($ffffffff&CHARSET)/$10000 sta DTV_GRAPHICS_VIC_BANK - //SEG20 [11] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG30 [12] *((const byte*) DTV_COLOR_BANK_LO#0) ← <((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #DTV_COLOR_BANK_DEFAULT/$400 sta DTV_COLOR_BANK_LO - //SEG21 [12] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG31 [13] *((const byte*) DTV_COLOR_BANK_HI#0) ← >((word))(const dword) DTV_COLOR_BANK_DEFAULT#0/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #0 sta DTV_COLOR_BANK_HI - //SEG22 [13] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG32 [14] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 sta DTV_CONTROL - //SEG23 [14] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG33 [15] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #3 sta CIA2_PORT_A_DDR - //SEG24 [15] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG34 [16] *((const byte*) CIA2_PORT_A#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3^((byte))((word))(const byte*) menu::CHARSET#0/(word/signed word/dword/signed dword) 16384 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #3^CHARSET/$4000 sta CIA2_PORT_A - //SEG25 [16] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG35 [17] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_DEN|VIC_RSEL|3 sta VIC_CONTROL - //SEG26 [17] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG36 [18] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #VIC_CSEL sta VIC_CONTROL2 - //SEG27 [18] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ ] ( main:2::menu:9 [ ] ) -- _deref_pbuc1=vbuc2 + //SEG37 [19] *((const byte*) VIC_MEMORY#0) ← ((byte))((word))(const byte*) menu::SCREEN#0&(word/signed word/dword/signed dword) 16383/(byte/signed byte/word/signed word/dword/signed dword) 64|((word))(const byte*) menu::CHARSET#0&(word/signed word/dword/signed dword) 16383/(word/signed word/dword/signed dword) 1024 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(CHARSET&$3fff)/$400 sta VIC_MEMORY - //SEG28 [19] phi from menu to menu::@1 [phi:menu->menu::@1] - //SEG29 [19] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuxx=vbuc1 - ldx #0 - //SEG30 [19] phi from menu::@1 to menu::@1 [phi:menu::@1->menu::@1] - //SEG31 [19] phi (byte) menu::i#2 = (byte) menu::i#1 [phi:menu::@1->menu::@1#0] -- register_copy - //SEG32 menu::@1 + //SEG38 [20] phi from menu to menu::@1 [phi:menu->menu::@1] + //SEG39 [20] phi (byte) menu::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:menu->menu::@1#0] -- vbuyy=vbuc1 + ldy #0 + //SEG40 [20] phi from menu::@1 to menu::@1 [phi:menu::@1->menu::@1] + //SEG41 [20] phi (byte) menu::i#2 = (byte) menu::i#1 [phi:menu::@1->menu::@1#0] -- register_copy + //SEG42 menu::@1 b1: - //SEG33 [20] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ menu::i#2 ] ( main:2::menu:9 [ menu::i#2 ] ) -- pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuxx - lda DTV_PALETTE_DEFAULT,x - sta DTV_PALETTE,x - //SEG34 [21] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ menu::i#1 ] ( main:2::menu:9 [ menu::i#1 ] ) -- vbuxx=_inc_vbuxx - inx - //SEG35 [22] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ menu::i#1 ] ( main:2::menu:9 [ menu::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1 - cpx #$10 + //SEG43 [21] *((const byte*) DTV_PALETTE#0 + (byte) menu::i#2) ← *((const byte[16]) DTV_PALETTE_DEFAULT#0 + (byte) menu::i#2) [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#2 ] ) -- pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuyy + lda DTV_PALETTE_DEFAULT,y + sta DTV_PALETTE,y + //SEG44 [22] (byte) menu::i#1 ← ++ (byte) menu::i#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuyy=_inc_vbuyy + iny + //SEG45 [23] if((byte) menu::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto menu::@1 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::i#1 ] ) -- vbuyy_neq_vbuc1_then_la1 + cpy #$10 bne b1 - //SEG36 [23] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] - //SEG37 [23] phi (byte*) menu::c#2 = (const byte*) COLS#0 [phi:menu::@1->menu::@2#0] -- pbuz1=pbuc1 + //SEG46 [24] phi from menu::@1 to menu::@2 [phi:menu::@1->menu::@2] + //SEG47 [24] phi (byte*) menu::c#2 = (const byte*) COLS#0 [phi:menu::@1->menu::@2#0] -- pbuz1=pbuc1 lda #COLS sta c+1 - //SEG38 [23] phi from menu::@2 to menu::@2 [phi:menu::@2->menu::@2] - //SEG39 [23] phi (byte*) menu::c#2 = (byte*) menu::c#1 [phi:menu::@2->menu::@2#0] -- register_copy - //SEG40 menu::@2 + //SEG48 [24] phi from menu::@2 to menu::@2 [phi:menu::@2->menu::@2] + //SEG49 [24] phi (byte*) menu::c#2 = (byte*) menu::c#1 [phi:menu::@2->menu::@2#0] -- register_copy + //SEG50 menu::@2 b2: - //SEG41 [24] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG51 [25] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#2 ] ) -- _deref_pbuz1=vbuc1 lda #LIGHT_GREEN ldy #0 sta (c),y - //SEG42 [25] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG52 [26] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) -- pbuz1=_inc_pbuz1 inc c bne !+ inc c+1 !: - //SEG43 [26] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG53 [27] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@2 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 menu::c#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda c+1 cmp #>COLS+$3e8 bne b2 lda c cmp #print_set_screen] + //SEG57 [30] call print_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG58 [163] phi from menu::@10 to print_set_screen [phi:menu::@10->print_set_screen] jsr print_set_screen - //SEG49 [30] phi from menu::@8 to menu::@14 [phi:menu::@8->menu::@14] - //SEG50 menu::@14 - //SEG51 [31] call print_cls param-assignment [ ] ( main:2::menu:9 [ ] ) - //SEG52 [70] phi from menu::@14 to print_cls [phi:menu::@14->print_cls] + //SEG59 [31] phi from menu::@10 to menu::@17 [phi:menu::@10->menu::@17] + //SEG60 menu::@17 + //SEG61 [32] call print_cls param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG62 [157] phi from menu::@17 to print_cls [phi:menu::@17->print_cls] jsr print_cls - //SEG53 [32] phi from menu::@14 to menu::@15 [phi:menu::@14->menu::@15] - //SEG54 menu::@15 - //SEG55 [33] call print_str_lines param-assignment [ ] ( main:2::menu:9 [ ] ) - //SEG56 [50] phi from menu::@15 to print_str_lines [phi:menu::@15->print_str_lines] + //SEG63 [33] phi from menu::@17 to menu::@18 [phi:menu::@17->menu::@18] + //SEG64 menu::@18 + //SEG65 [34] call print_str_lines param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG66 [137] phi from menu::@18 to print_str_lines [phi:menu::@18->print_str_lines] jsr print_str_lines - //SEG57 menu::@3 - //SEG58 [34] if(true) goto menu::@4 [ ] ( main:2::menu:9 [ ] ) -- true_then_la1 - jmp b4 - //SEG59 menu::@return - breturn: - //SEG60 [35] return [ ] ( main:2::menu:9 [ ] ) - rts - //SEG61 [36] phi from menu::@3 to menu::@4 [phi:menu::@3->menu::@4] - //SEG62 menu::@4 - b4: - //SEG63 [37] call keyboard_key_pressed param-assignment [ keyboard_key_pressed::return#0 ] ( main:2::menu:9 [ keyboard_key_pressed::return#0 ] ) - //SEG64 [41] phi from menu::@4 to keyboard_key_pressed [phi:menu::@4->keyboard_key_pressed] + //SEG67 [35] phi from menu::@18 to menu::@19 [phi:menu::@18->menu::@19] + //SEG68 menu::@19 + //SEG69 [36] call form_set_screen param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG70 [127] phi from menu::@19 to form_set_screen [phi:menu::@19->form_set_screen] + jsr form_set_screen + //SEG71 [37] phi from menu::@19 to menu::@20 [phi:menu::@19->menu::@20] + //SEG72 menu::@20 + //SEG73 [38] call form_render_values param-assignment [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ( main:2::menu:10 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + //SEG74 [117] phi from menu::@20 to form_render_values [phi:menu::@20->form_render_values] + jsr form_render_values + //SEG75 [39] phi from menu::@20 menu::@8 to menu::@3 [phi:menu::@20/menu::@8->menu::@3] + //SEG76 [39] phi (byte) key_right_debounce#11 = (byte) key_right_debounce#1 [phi:menu::@20/menu::@8->menu::@3#0] -- register_copy + //SEG77 [39] phi (byte) form_field_idx#14 = (byte) form_field_idx#1 [phi:menu::@20/menu::@8->menu::@3#1] -- register_copy + //SEG78 [39] phi (byte) key_down_debounce#11 = (byte) key_down_debounce#1 [phi:menu::@20/menu::@8->menu::@3#2] -- register_copy + //SEG79 [39] phi (signed byte) form_cursor_count#13 = (signed byte) form_cursor_count#1 [phi:menu::@20/menu::@8->menu::@3#3] -- register_copy + //SEG80 menu::@3 + //SEG81 [40] if(true) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) -- true_then_la1 + //SEG82 menu::@return + //SEG83 [41] return [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) + //SEG84 menu::@6 + b6: + //SEG85 [42] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto menu::@6 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ( main:2::menu:10 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 ] ) -- _deref_pbuc1_neq_vbuc2_then_la1 + lda RASTER + cmp #$ff + bne b6 + //SEG86 [43] phi from menu::@6 to menu::@8 [phi:menu::@6->menu::@8] + //SEG87 menu::@8 + //SEG88 [44] call form_control param-assignment [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + jsr form_control + jmp b6 +} +//SEG89 form_control +form_control: { + .label field = 5 + //SEG90 [45] (byte) form_field_ptr::field_idx#1 ← (byte) form_field_idx#14 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#1 ] ) -- vbuz1=vbuxx + stx form_field_ptr.field_idx + //SEG91 [46] call form_field_ptr param-assignment [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] ) + //SEG92 [111] phi from form_control to form_field_ptr [phi:form_control->form_field_ptr] + //SEG93 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#1 [phi:form_control->form_field_ptr#0] -- register_copy + jsr form_field_ptr + //SEG94 [47] (byte*) form_field_ptr::return#3 ← (byte*) form_field_ptr::return#0 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#3 ] ) + // (byte*) form_field_ptr::return#3 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:5 + //SEG95 form_control::@28 + //SEG96 [48] (byte*) form_control::field#0 ← (byte*) form_field_ptr::return#3 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 ] ) + // (byte*) form_control::field#0 = (byte*) form_field_ptr::return#3 // register copy zp ZP_WORD:5 + //SEG97 [49] (signed byte) form_cursor_count#5 ← -- (signed byte) form_cursor_count#13 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1=_dec_vbsz1 + dec form_cursor_count + //SEG98 [50] if((signed byte) form_cursor_count#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@33 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#5 ] ) -- vbsz1_ge_0_then_la1 + lda form_cursor_count + cmp #0 + bpl b1 + //SEG99 [51] phi from form_control::@28 to form_control::@1 [phi:form_control::@28->form_control::@1] + //SEG100 [51] phi (signed byte) form_cursor_count#15 = (const signed byte) FORM_CURSOR_BLINK#0 [phi:form_control::@28->form_control::@1#0] -- vbsz1=vbsc1 + lda #FORM_CURSOR_BLINK + sta form_cursor_count + //SEG101 form_control::@1 + b1: + //SEG102 [52] if((signed byte) form_cursor_count#15>=(const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2) goto form_control::@2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- vbsz1_ge_vbuc1_then_la1 + lda form_cursor_count + sec + sbc #FORM_CURSOR_BLINK/2 + bvc !+ + eor #$80 + !: + bpl b2 + //SEG103 form_control::@15 + //SEG104 [53] (byte/word/dword~) form_control::$6 ← *((byte*) form_control::field#0) | (byte/word/signed word/dword/signed dword) 128 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$6 ] ) -- vbuaa=_deref_pbuz1_bor_vbuc1 + lda #$80 + ldy #0 + ora (field),y + //SEG105 [54] *((byte*) form_control::field#0) ← (byte/word/dword~) form_control::$6 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + sta (field),y + //SEG106 [55] phi from form_control::@15 form_control::@2 to form_control::@3 [phi:form_control::@15/form_control::@2->form_control::@3] + //SEG107 form_control::@3 + b3: + //SEG108 [56] call keyboard_key_pressed param-assignment [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] ) + //SEG109 [99] phi from form_control::@3 to keyboard_key_pressed [phi:form_control::@3->keyboard_key_pressed] + //SEG110 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_DOWN#0 [phi:form_control::@3->keyboard_key_pressed#0] -- vbuyy=vbuc1 + ldy #KEY_CRSR_DOWN jsr keyboard_key_pressed - //SEG65 [38] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ keyboard_key_pressed::return#2 ] ( main:2::menu:9 [ keyboard_key_pressed::return#2 ] ) + //SEG111 [57] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#2 ] ) // (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a - //SEG66 menu::@17 - //SEG67 [39] (byte~) menu::$29 ← (byte) keyboard_key_pressed::return#2 [ menu::$29 ] ( main:2::menu:9 [ menu::$29 ] ) - // (byte~) menu::$29 = (byte) keyboard_key_pressed::return#2 // register copy reg byte a - //SEG68 [40] if((byte~) menu::$29==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@3 [ ] ( main:2::menu:9 [ ] ) -- vbuaa_eq_0_then_la1 + //SEG112 form_control::@29 + //SEG113 [58] (byte) form_control::key_down#0 ← (byte) keyboard_key_pressed::return#2 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) + // (byte) form_control::key_down#0 = (byte) keyboard_key_pressed::return#2 // register copy reg byte a + //SEG114 [59] if((byte) form_control::key_down#0==(byte) key_down_debounce#11) goto form_control::@4 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 ] ) -- vbuaa_eq_vbuz1_then_la1 + cmp key_down_debounce + beq b4 + //SEG115 form_control::@17 + //SEG116 [60] (byte) key_down_debounce#23 ← (byte) form_control::key_down#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::key_down#0 key_down_debounce#23 ] ) -- vbuz1=vbuaa + sta key_down_debounce + //SEG117 [61] if((byte) form_control::key_down#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@4 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#23 ] ) -- vbuaa_eq_0_then_la1 cmp #0 beq b4 + //SEG118 form_control::@18 + //SEG119 [62] (byte~) form_control::$13 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 key_down_debounce#23 form_control::$13 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 + lda #$7f + ldy #0 + and (field),y + //SEG120 [63] *((byte*) form_control::field#0) ← (byte~) form_control::$13 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- _deref_pbuz1=vbuaa + sta (field),y + //SEG121 [64] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 keyboard_key_pressed::return#0 key_down_debounce#23 ] ) + //SEG122 [99] phi from form_control::@18 to keyboard_key_pressed [phi:form_control::@18->keyboard_key_pressed] + //SEG123 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@18->keyboard_key_pressed#0] -- vbuyy=vbuc1 + ldy #KEY_RSHIFT + jsr keyboard_key_pressed + //SEG124 [65] (byte) keyboard_key_pressed::return#4 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#4 ] ) + // (byte) keyboard_key_pressed::return#4 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a + //SEG125 form_control::@31 + //SEG126 [66] (byte~) form_control::$14 ← (byte) keyboard_key_pressed::return#4 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 form_control::$14 ] ) + // (byte~) form_control::$14 = (byte) keyboard_key_pressed::return#4 // register copy reg byte a + //SEG127 [67] if((byte~) form_control::$14!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@6 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 ] ) -- vbuaa_neq_0_then_la1 + cmp #0 + bne b6 + //SEG128 form_control::@19 + //SEG129 [68] (byte) form_field_idx#37 ← ++ (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuxx=_inc_vbuxx + inx + //SEG130 [69] if((byte) form_field_idx#37!=(const byte) form_fields_cnt#0) goto form_control::@34 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#37 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #form_fields_cnt + bne b8 + //SEG131 [70] phi from form_control::@19 to form_control::@8 [phi:form_control::@19->form_control::@8] + //SEG132 [70] phi (byte) form_field_idx#30 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_control::@19->form_control::@8#0] -- vbuxx=vbuc1 + ldx #0 + //SEG133 form_control::@8 + b8: + //SEG134 [71] phi from form_control::@8 to form_control::@return [phi:form_control::@8->form_control::@return] + //SEG135 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#11 [phi:form_control::@8->form_control::@return#0] -- register_copy + //SEG136 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#30 [phi:form_control::@8->form_control::@return#1] -- register_copy + //SEG137 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#23 [phi:form_control::@8->form_control::@return#2] -- register_copy + //SEG138 [71] phi (signed byte) form_cursor_count#16 = (const signed byte) FORM_CURSOR_BLINK#0/(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:form_control::@8->form_control::@return#3] -- vbsz1=vbuc1 + lda #FORM_CURSOR_BLINK/2 + sta form_cursor_count + //SEG139 [71] phi from form_control::@13 form_control::@24 form_control::@30 to form_control::@return [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return] + //SEG140 [71] phi (byte) key_right_debounce#13 = (byte) key_right_debounce#21 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#0] -- register_copy + //SEG141 [71] phi (byte) form_field_idx#18 = (byte) form_field_idx#14 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#1] -- register_copy + //SEG142 [71] phi (byte) key_down_debounce#13 = (byte) key_down_debounce#20 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#2] -- register_copy + //SEG143 [71] phi (signed byte) form_cursor_count#16 = (signed byte) form_cursor_count#15 [phi:form_control::@13/form_control::@24/form_control::@30->form_control::@return#3] -- register_copy + //SEG144 form_control::@return + breturn: + //SEG145 [72] return [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ( main:2::menu:10::form_control:44 [ form_cursor_count#16 key_down_debounce#13 form_field_idx#18 key_right_debounce#13 ] ) + rts + //SEG146 [73] phi from form_control::@19 to form_control::@34 [phi:form_control::@19->form_control::@34] + //SEG147 form_control::@34 + //SEG148 [70] phi from form_control::@34 form_control::@35 to form_control::@8 [phi:form_control::@34/form_control::@35->form_control::@8] + //SEG149 [70] phi (byte) form_field_idx#30 = (byte) form_field_idx#37 [phi:form_control::@34/form_control::@35->form_control::@8#0] -- register_copy + //SEG150 form_control::@6 + b6: + //SEG151 [74] (byte) form_field_idx#38 ← -- (byte) form_field_idx#14 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuxx=_dec_vbuxx + dex + //SEG152 [75] if((byte) form_field_idx#38!=(byte/word/signed word/dword/signed dword) 255) goto form_control::@35 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ( main:2::menu:10::form_control:44 [ key_right_debounce#11 key_down_debounce#23 form_field_idx#38 ] ) -- vbuxx_neq_vbuc1_then_la1 + cpx #$ff + bne b8 + //SEG153 [70] phi from form_control::@6 to form_control::@8 [phi:form_control::@6->form_control::@8] + //SEG154 [70] phi (byte) form_field_idx#30 = (const byte) form_fields_cnt#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:form_control::@6->form_control::@8#0] -- vbuxx=vbuc1 + ldx #form_fields_cnt-1 + jmp b8 + //SEG155 [76] phi from form_control::@6 to form_control::@35 [phi:form_control::@6->form_control::@35] + //SEG156 form_control::@35 + //SEG157 [77] phi from form_control::@17 form_control::@29 to form_control::@4 [phi:form_control::@17/form_control::@29->form_control::@4] + //SEG158 [77] phi (byte) key_down_debounce#20 = (byte) key_down_debounce#23 [phi:form_control::@17/form_control::@29->form_control::@4#0] -- register_copy + //SEG159 form_control::@4 + b4: + //SEG160 [78] call keyboard_key_pressed param-assignment [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 ] ) + //SEG161 [99] phi from form_control::@4 to keyboard_key_pressed [phi:form_control::@4->keyboard_key_pressed] + //SEG162 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_CRSR_RIGHT#0 [phi:form_control::@4->keyboard_key_pressed#0] -- vbuyy=vbuc1 + ldy #KEY_CRSR_RIGHT + jsr keyboard_key_pressed + //SEG163 [79] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#3 ] ) + // (byte) keyboard_key_pressed::return#3 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a + //SEG164 form_control::@30 + //SEG165 [80] (byte) form_control::key_right#0 ← (byte) keyboard_key_pressed::return#3 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) + // (byte) form_control::key_right#0 = (byte) keyboard_key_pressed::return#3 // register copy reg byte a + //SEG166 [81] if((byte) form_control::key_right#0==(byte) key_right_debounce#11) goto form_control::@return [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 form_control::key_right#0 ] ) -- vbuaa_eq_vbuz1_then_la1 + cmp key_right_debounce + beq breturn + //SEG167 form_control::@24 + //SEG168 [82] (byte) key_right_debounce#21 ← (byte) form_control::key_right#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::key_right#0 ] ) -- vbuz1=vbuaa + sta key_right_debounce + //SEG169 [83] if((byte) form_control::key_right#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@return [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuaa_eq_0_then_la1 + cmp #0 + beq breturn + //SEG170 [84] phi from form_control::@24 to form_control::@25 [phi:form_control::@24->form_control::@25] + //SEG171 form_control::@25 + //SEG172 [85] call keyboard_key_pressed param-assignment [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 key_down_debounce#20 key_right_debounce#21 ] ) + //SEG173 [99] phi from form_control::@25 to keyboard_key_pressed [phi:form_control::@25->keyboard_key_pressed] + //SEG174 [99] phi (byte) keyboard_key_pressed::key#4 = (const byte) KEY_RSHIFT#0 [phi:form_control::@25->keyboard_key_pressed#0] -- vbuyy=vbuc1 + ldy #KEY_RSHIFT + jsr keyboard_key_pressed + //SEG175 [86] (byte) keyboard_key_pressed::return#10 ← (byte) keyboard_key_pressed::return#0 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#10 ] ) + // (byte) keyboard_key_pressed::return#10 = (byte) keyboard_key_pressed::return#0 // register copy reg byte a + //SEG176 form_control::@32 + //SEG177 [87] (byte~) form_control::$28 ← (byte) keyboard_key_pressed::return#10 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$28 ] ) + // (byte~) form_control::$28 = (byte) keyboard_key_pressed::return#10 // register copy reg byte a + //SEG178 [88] if((byte~) form_control::$28!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto form_control::@12 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- vbuaa_neq_0_then_la1 + cmp #0 + bne b12 + //SEG179 form_control::@26 + //SEG180 [89] (byte/signed word/word/dword/signed dword~) form_control::$31 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$31 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_plus_1 + lda form_fields_val,x + clc + adc #1 + //SEG181 [90] (byte/word/dword~) form_control::$32 ← (byte/signed word/word/dword/signed dword~) form_control::$31 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$32 ] ) -- vbuaa=vbuaa_band_vbuc1 + and #$f + //SEG182 [91] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$32 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta form_fields_val,x + //SEG183 form_control::@13 + b13: + //SEG184 [92] *((byte*) form_control::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14)) [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuxx + lda form_fields_val,x + tay + lda print_hextab,y + ldy #0 + sta (field),y jmp breturn + //SEG185 form_control::@12 + b12: + //SEG186 [93] (byte/signed word/word/dword/signed dword~) form_control::$33 ← *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) - (byte/signed byte/word/signed word/dword/signed dword) 1 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$33 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_minus_1 + lda form_fields_val,x + sec + sbc #1 + //SEG187 [94] (byte/word/dword~) form_control::$34 ← (byte/signed word/word/dword/signed dword~) form_control::$33 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 form_control::$34 ] ) -- vbuaa=vbuaa_band_vbuc1 + and #$f + //SEG188 [95] *((const byte[]) form_fields_val#0 + (byte) form_field_idx#14) ← (byte/word/dword~) form_control::$34 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ( main:2::menu:10::form_control:44 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 ] ) -- pbuc1_derefidx_vbuxx=vbuaa + sta form_fields_val,x + jmp b13 + //SEG189 form_control::@2 + b2: + //SEG190 [96] (byte~) form_control::$7 ← *((byte*) form_control::field#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 form_control::$7 ] ) -- vbuaa=_deref_pbuz1_band_vbuc1 + lda #$7f + ldy #0 + and (field),y + //SEG191 [97] *((byte*) form_control::field#0) ← (byte~) form_control::$7 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ( main:2::menu:10::form_control:44 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 ] ) -- _deref_pbuz1=vbuaa + sta (field),y + jmp b3 + //SEG192 [98] phi from form_control::@28 to form_control::@33 [phi:form_control::@28->form_control::@33] + //SEG193 form_control::@33 + //SEG194 [51] phi from form_control::@33 to form_control::@1 [phi:form_control::@33->form_control::@1] + //SEG195 [51] phi (signed byte) form_cursor_count#15 = (signed byte) form_cursor_count#5 [phi:form_control::@33->form_control::@1#0] -- register_copy } -//SEG69 keyboard_key_pressed +//SEG196 keyboard_key_pressed keyboard_key_pressed: { - .const colidx = KEY_SPACE&7 - .label rowidx = KEY_SPACE>>3 - //SEG70 [42] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_matrix_read::return#0 ] ) + .label colidx = 7 + //SEG197 [100] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#4 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::key#4 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuyy_band_vbuc1 + tya + and #7 + sta colidx + //SEG198 [101] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#4 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuaa=vbuyy_ror_3 + tya + lsr + lsr + lsr + //SEG199 [102] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuyy=vbuaa + tay + //SEG200 [103] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) jsr keyboard_matrix_read - //SEG71 [43] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_matrix_read::return#2 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_matrix_read::return#2 ] ) + //SEG201 [104] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) // (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a - //SEG72 keyboard_key_pressed::@2 - //SEG73 [44] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::$2 ] ) + //SEG202 keyboard_key_pressed::@2 + //SEG203 [105] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) // (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a - //SEG74 [45] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1 - and keyboard_matrix_col_bitmask+colidx - //SEG75 keyboard_key_pressed::@return - //SEG76 [46] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37 [ keyboard_key_pressed::return#0 ] ) + //SEG204 [106] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1 + ldy colidx + and keyboard_matrix_col_bitmask,y + //SEG205 keyboard_key_pressed::@return + //SEG206 [107] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::return#0 ] ) rts } -//SEG77 keyboard_matrix_read +//SEG207 keyboard_matrix_read keyboard_matrix_read: { - //SEG78 [47] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ ] ) -- _deref_pbuc1=_deref_pbuc2 - lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx + //SEG208 [108] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuyy + lda keyboard_matrix_row_bitmask,y sta CIA1_PORT_A - //SEG79 [48] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 + //SEG209 [109] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG80 keyboard_matrix_read::@return - //SEG81 [49] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:37::keyboard_matrix_read:42 [ keyboard_matrix_read::return#0 ] ) + //SEG210 keyboard_matrix_read::@return + //SEG211 [110] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:10::form_control:44::keyboard_key_pressed:56::keyboard_matrix_read:103 [ key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:64::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 key_down_debounce#23 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:78::keyboard_matrix_read:103 [ form_field_idx#14 key_right_debounce#11 form_control::field#0 form_cursor_count#15 key_down_debounce#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:10::form_control:44::keyboard_key_pressed:85::keyboard_matrix_read:103 [ form_field_idx#14 form_control::field#0 form_cursor_count#15 key_down_debounce#20 key_right_debounce#21 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) rts } -//SEG82 print_str_lines +//SEG212 form_field_ptr +form_field_ptr: { + .label return = 5 + .label field_idx = 7 + .label _2 = 5 + //SEG213 [112] (byte) form_field_ptr::y#0 ← *((const byte[]) form_fields_y#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::y#0 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 + ldy field_idx + lda form_fields_y,y + //SEG214 [113] (word~) form_field_ptr::$2 ← *((const byte[25]) form_line_hi#0 + (byte) form_field_ptr::y#0) w= *((const byte[25]) form_line_lo#0 + (byte) form_field_ptr::y#0) [ form_field_ptr::field_idx#2 form_field_ptr::$2 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::field_idx#2 form_field_ptr::$2 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::field_idx#2 form_field_ptr::$2 ] ) -- vwuz1=pbuc1_derefidx_vbuaa_word_pbuc2_derefidx_vbuaa + tay + lda form_line_hi,y + sta _2+1 + lda form_line_lo,y + sta _2 + //SEG215 [114] (byte) form_field_ptr::x#0 ← *((const byte[]) form_fields_x#0 + (byte) form_field_ptr::field_idx#2) [ form_field_ptr::$2 form_field_ptr::x#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::$2 form_field_ptr::x#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::$2 form_field_ptr::x#0 ] ) -- vbuaa=pbuc1_derefidx_vbuz1 + ldy field_idx + lda form_fields_x,y + //SEG216 [115] (byte*) form_field_ptr::return#0 ← (byte*)(word~) form_field_ptr::$2 + (byte) form_field_ptr::x#0 [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) -- pbuz1=pbuz1_plus_vbuaa + clc + adc return + sta return + lda #0 + adc return+1 + sta return+1 + //SEG217 form_field_ptr::@return + //SEG218 [116] return [ form_field_ptr::return#0 ] ( main:2::menu:10::form_control:44::form_field_ptr:46 [ form_cursor_count#13 key_down_debounce#11 form_field_idx#14 key_right_debounce#11 form_field_ptr::return#0 ] main:2::menu:10::form_render_values:38::form_field_ptr:120 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#0 ] ) + rts +} +//SEG219 form_render_values +form_render_values: { + .label field = 5 + .label idx = 7 + //SEG220 [118] phi from form_render_values to form_render_values::@1 [phi:form_render_values->form_render_values::@1] + //SEG221 [118] phi (byte) form_render_values::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_render_values->form_render_values::@1#0] -- vbuz1=vbuc1 + lda #0 + sta idx + //SEG222 [118] phi from form_render_values::@3 to form_render_values::@1 [phi:form_render_values::@3->form_render_values::@1] + //SEG223 [118] phi (byte) form_render_values::idx#2 = (byte) form_render_values::idx#1 [phi:form_render_values::@3->form_render_values::@1#0] -- register_copy + //SEG224 form_render_values::@1 + b1: + //SEG225 [119] (byte) form_field_ptr::field_idx#0 ← (byte) form_render_values::idx#2 [ form_field_ptr::field_idx#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::field_idx#0 form_render_values::idx#2 ] ) + // (byte) form_field_ptr::field_idx#0 = (byte) form_render_values::idx#2 // register copy zp ZP_BYTE:7 + //SEG226 [120] call form_field_ptr param-assignment [ form_field_ptr::return#0 form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_field_ptr::return#0 form_render_values::idx#2 ] ) + //SEG227 [111] phi from form_render_values::@1 to form_field_ptr [phi:form_render_values::@1->form_field_ptr] + //SEG228 [111] phi (byte) form_field_ptr::field_idx#2 = (byte) form_field_ptr::field_idx#0 [phi:form_render_values::@1->form_field_ptr#0] -- register_copy + jsr form_field_ptr + //SEG229 [121] (byte*) form_field_ptr::return#2 ← (byte*) form_field_ptr::return#0 [ form_render_values::idx#2 form_field_ptr::return#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_field_ptr::return#2 ] ) + // (byte*) form_field_ptr::return#2 = (byte*) form_field_ptr::return#0 // register copy zp ZP_WORD:5 + //SEG230 form_render_values::@3 + //SEG231 [122] (byte*) form_render_values::field#0 ← (byte*) form_field_ptr::return#2 [ form_render_values::idx#2 form_render_values::field#0 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 form_render_values::field#0 ] ) + // (byte*) form_render_values::field#0 = (byte*) form_field_ptr::return#2 // register copy zp ZP_WORD:5 + //SEG232 [123] *((byte*) form_render_values::field#0) ← *((const string) print_hextab#0 + *((const byte[]) form_fields_val#0 + (byte) form_render_values::idx#2)) [ form_render_values::idx#2 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#2 ] ) -- _deref_pbuz1=pbuc1_derefidx_pbuc2_derefidx_vbuz2 + ldy idx + lda form_fields_val,y + tay + lda print_hextab,y + ldy #0 + sta (field),y + //SEG233 [124] (byte) form_render_values::idx#1 ← ++ (byte) form_render_values::idx#2 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1=_inc_vbuz1 + inc idx + //SEG234 [125] if((byte) form_render_values::idx#1<(const byte) form_fields_cnt#0) goto form_render_values::@1 [ form_render_values::idx#1 ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_render_values::idx#1 ] ) -- vbuz1_lt_vbuc1_then_la1 + lda idx + cmp #form_fields_cnt + bcc b1 + //SEG235 form_render_values::@return + //SEG236 [126] return [ ] ( main:2::menu:10::form_render_values:38 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + rts +} +//SEG237 form_set_screen +form_set_screen: { + .label line = 5 + //SEG238 [128] phi from form_set_screen to form_set_screen::@1 [phi:form_set_screen->form_set_screen::@1] + //SEG239 [128] phi (byte) form_set_screen::y#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:form_set_screen->form_set_screen::@1#0] -- vbuyy=vbuc1 + ldy #0 + //SEG240 [128] phi (byte*) form_set_screen::line#2 = (const byte*) menu::SCREEN#0 [phi:form_set_screen->form_set_screen::@1#1] -- pbuz1=pbuc1 + lda #menu.SCREEN + sta line+1 + //SEG241 [128] phi from form_set_screen::@1 to form_set_screen::@1 [phi:form_set_screen::@1->form_set_screen::@1] + //SEG242 [128] phi (byte) form_set_screen::y#2 = (byte) form_set_screen::y#1 [phi:form_set_screen::@1->form_set_screen::@1#0] -- register_copy + //SEG243 [128] phi (byte*) form_set_screen::line#2 = (byte*) form_set_screen::line#1 [phi:form_set_screen::@1->form_set_screen::@1#1] -- register_copy + //SEG244 form_set_screen::@1 + b1: + //SEG245 [129] (byte~) form_set_screen::$0 ← < (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$0 ] ) -- vbuaa=_lo_pbuz1 + lda line + //SEG246 [130] *((const byte[25]) form_line_lo#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$0 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + sta form_line_lo,y + //SEG247 [131] (byte~) form_set_screen::$1 ← > (byte*) form_set_screen::line#2 [ form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 form_set_screen::$1 ] ) -- vbuaa=_hi_pbuz1 + lda line+1 + //SEG248 [132] *((const byte[25]) form_line_hi#0 + (byte) form_set_screen::y#2) ← (byte~) form_set_screen::$1 [ form_set_screen::line#2 form_set_screen::y#2 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#2 form_set_screen::y#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa + sta form_line_hi,y + //SEG249 [133] (byte*) form_set_screen::line#1 ← (byte*) form_set_screen::line#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ form_set_screen::y#2 form_set_screen::line#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::y#2 form_set_screen::line#1 ] ) -- pbuz1=pbuz1_plus_vbuc1 + lda line + clc + adc #$28 + sta line + bcc !+ + inc line+1 + !: + //SEG250 [134] (byte) form_set_screen::y#1 ← ++ (byte) form_set_screen::y#2 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuyy=_inc_vbuyy + iny + //SEG251 [135] if((byte) form_set_screen::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto form_set_screen::@1 [ form_set_screen::line#1 form_set_screen::y#1 ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 form_set_screen::line#1 form_set_screen::y#1 ] ) -- vbuyy_neq_vbuc1_then_la1 + cpy #$19 + bne b1 + //SEG252 form_set_screen::@return + //SEG253 [136] return [ ] ( main:2::menu:10::form_set_screen:36 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) + rts +} +//SEG254 print_str_lines print_str_lines: { - .label str = 2 - //SEG83 [51] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] - //SEG84 [51] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 + .label str = 5 + //SEG255 [138] phi from print_str_lines to print_str_lines::@1 [phi:print_str_lines->print_str_lines::@1] + //SEG256 [138] phi (byte*) print_line_cursor#17 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_line_cursor+1 - //SEG85 [51] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 + //SEG257 [138] phi (byte*) print_char_cursor#19 = (const byte*) menu::SCREEN#0 [phi:print_str_lines->print_str_lines::@1#1] -- pbuz1=pbuc1 lda #menu.SCREEN sta print_char_cursor+1 - //SEG86 [51] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 + //SEG258 [138] phi (byte*) print_str_lines::str#2 = (const string) MENU_TEXT#0 [phi:print_str_lines->print_str_lines::@1#2] -- pbuz1=pbuc1 lda #MENU_TEXT sta str+1 - //SEG87 print_str_lines::@1 + //SEG259 print_str_lines::@1 b1: - //SEG88 [52] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 + //SEG260 [139] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#2 print_char_cursor#19 print_line_cursor#17 ] ) -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (str),y cmp #'@' bne b4 - //SEG89 print_str_lines::@return - //SEG90 [53] return [ ] ( main:2::menu:9::print_str_lines:33 [ ] ) + //SEG261 print_str_lines::@return + //SEG262 [140] return [ ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 ] ) rts - //SEG91 [54] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] - //SEG92 [54] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy - //SEG93 [54] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy - //SEG94 print_str_lines::@4 + //SEG263 [141] phi from print_str_lines::@1 print_str_lines::@5 to print_str_lines::@4 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4] + //SEG264 [141] phi (byte*) print_char_cursor#17 = (byte*) print_char_cursor#19 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#0] -- register_copy + //SEG265 [141] phi (byte*) print_str_lines::str#3 = (byte*) print_str_lines::str#2 [phi:print_str_lines::@1/print_str_lines::@5->print_str_lines::@4#1] -- register_copy + //SEG266 print_str_lines::@4 b4: - //SEG95 [55] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 + //SEG267 [142] (byte) print_str_lines::ch#0 ← *((byte*) print_str_lines::str#3) [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - //SEG96 [56] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 + //SEG268 [143] (byte*) print_str_lines::str#0 ← ++ (byte*) print_str_lines::str#3 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- pbuz1=_inc_pbuz1 inc str bne !+ inc str+1 !: - //SEG97 [57] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 + //SEG269 [144] if((byte) print_str_lines::ch#0==(byte) '@') goto print_str_lines::@5 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- vbuaa_eq_vbuc1_then_la1 cmp #'@' beq b5 - //SEG98 print_str_lines::@8 - //SEG99 [58] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa + //SEG270 print_str_lines::@8 + //SEG271 [145] *((byte*) print_char_cursor#17) ← (byte) print_str_lines::ch#0 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] ) -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y - //SEG100 [59] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG272 [146] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#17 [ print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_str_lines::ch#0 print_char_cursor#1 ] ) -- pbuz1=_inc_pbuz1 inc print_char_cursor bne !+ inc print_char_cursor+1 !: - //SEG101 [60] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] - //SEG102 [60] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy - //SEG103 print_str_lines::@5 + //SEG273 [147] phi from print_str_lines::@4 print_str_lines::@8 to print_str_lines::@5 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5] + //SEG274 [147] phi (byte*) print_char_cursor#32 = (byte*) print_char_cursor#17 [phi:print_str_lines::@4/print_str_lines::@8->print_str_lines::@5#0] -- register_copy + //SEG275 print_str_lines::@5 b5: - //SEG104 [61] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuaa_neq_vbuc1_then_la1 + //SEG276 [148] if((byte) print_str_lines::ch#0!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ) -- vbuaa_neq_vbuc1_then_la1 cmp #'@' bne b4 - //SEG105 [62] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] - //SEG106 print_str_lines::@9 - //SEG107 [63] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_line_cursor#19 ] ) - //SEG108 [65] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] + //SEG277 [149] phi from print_str_lines::@5 to print_str_lines::@9 [phi:print_str_lines::@5->print_str_lines::@9] + //SEG278 print_str_lines::@9 + //SEG279 [150] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG280 [152] phi from print_str_lines::@9 to print_ln [phi:print_str_lines::@9->print_ln] jsr print_ln - //SEG109 [64] (byte*~) print_char_cursor#53 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33 [ print_str_lines::str#0 print_char_cursor#53 print_line_cursor#19 ] ) -- pbuz1=pbuz2 + //SEG281 [151] (byte*~) print_char_cursor#59 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_char_cursor#59 print_line_cursor#19 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 - //SEG110 [51] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] - //SEG111 [51] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy - //SEG112 [51] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#53 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy - //SEG113 [51] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy + //SEG282 [138] phi from print_str_lines::@9 to print_str_lines::@1 [phi:print_str_lines::@9->print_str_lines::@1] + //SEG283 [138] phi (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 [phi:print_str_lines::@9->print_str_lines::@1#0] -- register_copy + //SEG284 [138] phi (byte*) print_char_cursor#19 = (byte*~) print_char_cursor#59 [phi:print_str_lines::@9->print_str_lines::@1#1] -- register_copy + //SEG285 [138] phi (byte*) print_str_lines::str#2 = (byte*) print_str_lines::str#0 [phi:print_str_lines::@9->print_str_lines::@1#2] -- register_copy jmp b1 } -//SEG114 print_ln +//SEG286 print_ln print_ln: { - //SEG115 [66] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] - //SEG116 [66] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy - //SEG117 print_ln::@1 + //SEG287 [153] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] + //SEG288 [153] phi (byte*) print_line_cursor#18 = (byte*) print_line_cursor#17 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy + //SEG289 print_ln::@1 b1: - //SEG118 [67] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 + //SEG290 [154] (byte*) print_line_cursor#19 ← (byte*) print_line_cursor#18 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1=pbuz1_plus_vbuc1 lda print_line_cursor clc adc #$28 @@ -5395,7 +9854,7 @@ print_ln: { bcc !+ inc print_line_cursor+1 !: - //SEG119 [68] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 + //SEG291 [155] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1 [ print_line_cursor#19 print_char_cursor#32 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] ) -- pbuz1_lt_pbuz2_then_la1 lda print_line_cursor+1 cmp print_char_cursor+1 bcc b1 @@ -5404,51 +9863,57 @@ print_ln: { cmp print_char_cursor bcc b1 !: - //SEG120 print_ln::@return - //SEG121 [69] return [ print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:33::print_ln:63 [ print_str_lines::str#0 print_line_cursor#19 ] ) + //SEG292 print_ln::@return + //SEG293 [156] return [ print_line_cursor#19 ] ( main:2::menu:10::print_str_lines:34::print_ln:150 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_str_lines::str#0 print_line_cursor#19 ] ) rts } -//SEG122 print_cls +//SEG294 print_cls print_cls: { - .label sc = 2 - //SEG123 [71] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] - //SEG124 [71] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 + .label sc = 5 + //SEG295 [158] phi from print_cls to print_cls::@1 [phi:print_cls->print_cls::@1] + //SEG296 [158] phi (byte*) print_cls::sc#2 = (const byte*) menu::SCREEN#0 [phi:print_cls->print_cls::@1#0] -- pbuz1=pbuc1 lda #menu.SCREEN sta sc+1 - //SEG125 [71] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] - //SEG126 [71] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy - //SEG127 print_cls::@1 + //SEG297 [158] phi from print_cls::@1 to print_cls::@1 [phi:print_cls::@1->print_cls::@1] + //SEG298 [158] phi (byte*) print_cls::sc#2 = (byte*) print_cls::sc#1 [phi:print_cls::@1->print_cls::@1#0] -- register_copy + //SEG299 print_cls::@1 b1: - //SEG128 [72] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 + //SEG300 [159] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#2 ] ) -- _deref_pbuz1=vbuc1 lda #' ' ldy #0 sta (sc),y - //SEG129 [73] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 + //SEG301 [160] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1=_inc_pbuz1 inc sc bne !+ inc sc+1 !: - //SEG130 [74] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:31 [ print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 + //SEG302 [161] if((byte*) print_cls::sc#1!=(const byte*) menu::SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::menu:10::print_cls:32 [ form_cursor_count#1 key_down_debounce#1 form_field_idx#1 key_right_debounce#1 print_cls::sc#1 ] ) -- pbuz1_neq_pbuc1_then_la1 lda sc+1 cmp #>menu.SCREEN+$3e8 bne b1 lda sc cmp #>(byte/signed byte/word/signed word/dword/signed dword) 3 +(byte) keyboard_key_pressed::rowidx#0 reg byte a 4.0 (byte[]) keyboard_matrix_col_bitmask (const byte[]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) @@ -72,6 +198,7 @@ (byte) keyboard_matrix_read::return#2 reg byte a 4.0 (byte) keyboard_matrix_read::row_pressed_bits (byte) keyboard_matrix_read::rowid +(byte) keyboard_matrix_read::rowid#0 reg byte y 4.0 (byte[8]) keyboard_matrix_row_bitmask (const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 } (void()) main() @@ -79,14 +206,15 @@ (label) main::@2 (label) main::@return (void()) menu() -(byte~) menu::$29 reg byte a 202.0 (label) menu::@1 -(label) menu::@14 -(label) menu::@15 +(label) menu::@10 (label) menu::@17 +(label) menu::@18 +(label) menu::@19 (label) menu::@2 +(label) menu::@20 (label) menu::@3 -(label) menu::@4 +(label) menu::@6 (label) menu::@8 (label) menu::@return (byte*) menu::CHARSET @@ -94,27 +222,29 @@ (byte*) menu::SCREEN (const byte*) menu::SCREEN#0 SCREEN = ((byte*))(word/dword/signed dword) 32768 (byte*) menu::c -(byte*) menu::c#1 c zp ZP_WORD:2 151.5 -(byte*) menu::c#2 c zp ZP_WORD:2 151.5 +(byte*) menu::c#1 c zp ZP_WORD:5 151.5 +(byte*) menu::c#2 c zp ZP_WORD:5 151.5 (byte) menu::i -(byte) menu::i#1 reg byte x 151.5 -(byte) menu::i#2 reg byte x 202.0 +(byte) menu::i#1 reg byte y 151.5 +(byte) menu::i#2 reg byte y 202.0 (byte*) print_char_cursor -(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:4 2002.0 -(byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:4 821.0 -(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:4 101.0 -(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:4 572.0 -(byte*~) print_char_cursor#53 print_char_cursor zp ZP_WORD:4 202.0 +(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:8 2002.0 +(byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:8 821.0 +(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:8 101.0 +(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:8 572.0 +(byte*~) print_char_cursor#59 print_char_cursor zp ZP_WORD:8 202.0 (void()) print_cls() (label) print_cls::@1 (label) print_cls::@return (byte*) print_cls::sc -(byte*) print_cls::sc#1 sc zp ZP_WORD:2 151.5 -(byte*) print_cls::sc#2 sc zp ZP_WORD:2 151.5 +(byte*) print_cls::sc#1 sc zp ZP_WORD:5 151.5 +(byte*) print_cls::sc#2 sc zp ZP_WORD:5 151.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor -(byte*) print_line_cursor#17 print_line_cursor zp ZP_WORD:6 8.583333333333332 -(byte*) print_line_cursor#18 print_line_cursor zp ZP_WORD:6 2004.0 -(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:6 641.0 +(byte*) print_line_cursor#17 print_line_cursor zp ZP_WORD:10 8.583333333333332 +(byte*) print_line_cursor#18 print_line_cursor zp ZP_WORD:10 2004.0 +(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:10 641.0 (void()) print_ln() (label) print_ln::@1 (label) print_ln::@return @@ -132,18 +262,44 @@ (byte) print_str_lines::ch (byte) print_str_lines::ch#0 reg byte a 667.3333333333334 (byte*) print_str_lines::str -(byte*) print_str_lines::str#0 str zp ZP_WORD:2 233.66666666666669 -(byte*) print_str_lines::str#2 str zp ZP_WORD:2 151.5 -(byte*) print_str_lines::str#3 str zp ZP_WORD:2 1552.0 +(byte*) print_str_lines::str#0 str zp ZP_WORD:5 233.66666666666669 +(byte*) print_str_lines::str#2 str zp ZP_WORD:5 151.5 +(byte*) print_str_lines::str#3 str zp ZP_WORD:5 1552.0 -reg byte x [ menu::i#2 menu::i#1 ] -zp ZP_WORD:2 [ menu::c#2 menu::c#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 ] -zp ZP_WORD:4 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#53 print_char_cursor#32 print_char_cursor#1 ] -zp ZP_WORD:6 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] +zp ZP_BYTE:2 [ form_cursor_count#1 form_cursor_count#13 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ] +zp ZP_BYTE:3 [ key_down_debounce#1 key_down_debounce#11 key_down_debounce#13 key_down_debounce#20 key_down_debounce#23 ] +reg byte x [ form_field_idx#1 form_field_idx#14 form_field_idx#18 form_field_idx#30 form_field_idx#37 form_field_idx#38 ] +zp ZP_BYTE:4 [ key_right_debounce#1 key_right_debounce#11 key_right_debounce#13 key_right_debounce#21 ] +reg byte y [ menu::i#2 menu::i#1 ] +zp ZP_WORD:5 [ menu::c#2 menu::c#1 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#1 form_field_ptr::return#3 form_control::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#2 form_render_values::field#0 ] +reg byte y [ keyboard_key_pressed::key#4 ] +zp ZP_BYTE:7 [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 form_render_values::idx#2 form_render_values::idx#1 keyboard_key_pressed::colidx#0 ] +reg byte y [ form_set_screen::y#2 form_set_screen::y#1 ] +zp ZP_WORD:8 [ print_char_cursor#17 print_char_cursor#19 print_char_cursor#59 print_char_cursor#32 print_char_cursor#1 ] +zp ZP_WORD:10 [ print_line_cursor#18 print_line_cursor#17 print_line_cursor#19 ] +reg byte a [ form_control::$6 ] reg byte a [ keyboard_key_pressed::return#2 ] -reg byte a [ menu::$29 ] +reg byte a [ form_control::key_down#0 ] +reg byte a [ form_control::$13 ] +reg byte a [ keyboard_key_pressed::return#4 ] +reg byte a [ form_control::$14 ] +reg byte a [ keyboard_key_pressed::return#3 ] +reg byte a [ form_control::key_right#0 ] +reg byte a [ keyboard_key_pressed::return#10 ] +reg byte a [ form_control::$28 ] +reg byte a [ form_control::$31 ] +reg byte a [ form_control::$32 ] +reg byte a [ form_control::$33 ] +reg byte a [ form_control::$34 ] +reg byte a [ form_control::$7 ] +reg byte a [ keyboard_key_pressed::rowidx#0 ] +reg byte y [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_key_pressed::$2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_matrix_read::return#0 ] +reg byte a [ form_field_ptr::y#0 ] +reg byte a [ form_field_ptr::x#0 ] +reg byte a [ form_set_screen::$0 ] +reg byte a [ form_set_screen::$1 ] reg byte a [ print_str_lines::ch#0 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log index ca2bbcfed..0cc4ad4da 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log @@ -1143,12 +1143,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -1744,12 +1745,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -4461,7 +4462,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -4479,6 +4479,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -4959,13 +4960,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @11: scope:[] from @10 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@12 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -7056,21 +7057,22 @@ Eliminating unused variable (byte) DTV_BADLINE_OFF and assignment [74] (byte) DT Eliminating unused variable (byte*) DTV_SPRITE_BANK and assignment [90] (byte*) DTV_SPRITE_BANK ← ((byte*)) (word/dword/signed dword) 53325 Eliminating unused variable (byte*) DTV_GRAPHICS_HICOL_BANK and assignment [95] (byte*) DTV_GRAPHICS_HICOL_BANK ← ((byte*)) (word/dword/signed dword) 53310 Eliminating unused variable - keeping the call (void~) print_str_lines::$4 -Eliminating unused variable (byte) KEY_DEL and assignment [135] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0 -Eliminating unused variable (byte) KEY_RETURN and assignment [136] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1 -Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [137] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2 -Eliminating unused variable (byte) KEY_F7 and assignment [138] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3 -Eliminating unused variable (byte) KEY_F1 and assignment [139] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4 -Eliminating unused variable (byte) KEY_F3 and assignment [140] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5 -Eliminating unused variable (byte) KEY_F5 and assignment [141] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6 -Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [142] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7 -Eliminating unused variable (byte) KEY_LSHIFT and assignment [150] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15 -Eliminating unused variable (byte) KEY_HOME and assignment [186] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51 -Eliminating unused variable (byte) KEY_RSHIFT and assignment [187] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52 -Eliminating unused variable (byte) KEY_CTRL and assignment [193] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58 -Eliminating unused variable (byte) KEY_COMMODORE and assignment [196] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 -Eliminating unused variable (byte) KEY_RUNSTOP and assignment [198] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 -Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [199] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } +Eliminating unused variable (byte[]) print_hextab and assignment [122] (byte[]) print_hextab ← (string) "0123456789abcdef" +Eliminating unused variable (byte) KEY_DEL and assignment [136] (byte) KEY_DEL ← (byte/signed byte/word/signed word/dword/signed dword) 0 +Eliminating unused variable (byte) KEY_RETURN and assignment [137] (byte) KEY_RETURN ← (byte/signed byte/word/signed word/dword/signed dword) 1 +Eliminating unused variable (byte) KEY_CRSR_RIGHT and assignment [138] (byte) KEY_CRSR_RIGHT ← (byte/signed byte/word/signed word/dword/signed dword) 2 +Eliminating unused variable (byte) KEY_F7 and assignment [139] (byte) KEY_F7 ← (byte/signed byte/word/signed word/dword/signed dword) 3 +Eliminating unused variable (byte) KEY_F1 and assignment [140] (byte) KEY_F1 ← (byte/signed byte/word/signed word/dword/signed dword) 4 +Eliminating unused variable (byte) KEY_F3 and assignment [141] (byte) KEY_F3 ← (byte/signed byte/word/signed word/dword/signed dword) 5 +Eliminating unused variable (byte) KEY_F5 and assignment [142] (byte) KEY_F5 ← (byte/signed byte/word/signed word/dword/signed dword) 6 +Eliminating unused variable (byte) KEY_CRSR_DOWN and assignment [143] (byte) KEY_CRSR_DOWN ← (byte/signed byte/word/signed word/dword/signed dword) 7 +Eliminating unused variable (byte) KEY_LSHIFT and assignment [151] (byte) KEY_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 15 +Eliminating unused variable (byte) KEY_HOME and assignment [187] (byte) KEY_HOME ← (byte/signed byte/word/signed word/dword/signed dword) 51 +Eliminating unused variable (byte) KEY_RSHIFT and assignment [188] (byte) KEY_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 52 +Eliminating unused variable (byte) KEY_CTRL and assignment [194] (byte) KEY_CTRL ← (byte/signed byte/word/signed word/dword/signed dword) 58 +Eliminating unused variable (byte) KEY_COMMODORE and assignment [197] (byte) KEY_COMMODORE ← (byte/signed byte/word/signed word/dword/signed dword) 61 +Eliminating unused variable (byte) KEY_RUNSTOP and assignment [199] (byte) KEY_RUNSTOP ← (byte/signed byte/word/signed word/dword/signed dword) 63 +Eliminating unused variable (byte[]) keyboard_char_keycodes and assignment [200] (byte[]) keyboard_char_keycodes ← { (byte) KEY_AT, (byte) KEY_A, (byte) KEY_B, (byte) KEY_C, (byte) KEY_D, (byte) KEY_E, (byte) KEY_F, (byte) KEY_G, (byte) KEY_H, (byte) KEY_I, (byte) KEY_J, (byte) KEY_K, (byte) KEY_L, (byte) KEY_M, (byte) KEY_N, (byte) KEY_O, (byte) KEY_P, (byte) KEY_Q, (byte) KEY_R, (byte) KEY_S, (byte) KEY_T, (byte) KEY_U, (byte) KEY_V, (byte) KEY_W, (byte) KEY_X, (byte) KEY_Y, (byte) KEY_Z, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_POUND, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ARROW_UP, (byte) KEY_ARROW_LEFT, (byte) KEY_SPACE, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_ASTERISK, (byte) KEY_PLUS, (byte) KEY_COMMA, (byte) KEY_MINUS, (byte) KEY_DOT, (byte) KEY_SLASH, (byte) KEY_0, (byte) KEY_1, (byte) KEY_2, (byte) KEY_3, (byte) KEY_4, (byte) KEY_5, (byte) KEY_6, (byte) KEY_7, (byte) KEY_8, (byte) KEY_9, (byte) KEY_COLON, (byte) KEY_SEMICOLON, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte) KEY_EQUALS, (byte/signed byte/word/signed word/dword/signed dword) 63, (byte/signed byte/word/signed word/dword/signed dword) 63 } Eliminating unused variable - keeping the call (void~) bitmap_line::$9 Eliminating unused variable - keeping the call (void~) bitmap_line::$8 Eliminating unused variable - keeping the call (void~) bitmap_line::$14 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/constants.log b/src/test/java/dk/camelot64/kickc/test/ref/constants.log index b7c505810..a8b9677fb 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/constants.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/constants.log @@ -147,12 +147,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -311,12 +312,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -470,7 +471,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -488,6 +488,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -799,13 +800,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -967,6 +968,7 @@ Removing unused procedure print_dword Removing unused procedure print_word Removing unused procedure print_byte Removing unused procedure print_char +Eliminating unused variable (byte[]) print_hextab and assignment [15] (byte[]) print_hextab ← (string) "0123456789abcdef" Eliminating unused variable - keeping the call (void~) main::$0 Eliminating unused variable - keeping the call (void~) main::$1 Eliminating unused variable - keeping the call (void~) main::$2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/incrementinarray.log b/src/test/java/dk/camelot64/kickc/test/ref/incrementinarray.log index a94ca3ea8..ca4608cc0 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/incrementinarray.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/incrementinarray.log @@ -100,12 +100,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -265,12 +266,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -332,7 +333,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -350,6 +350,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -630,13 +631,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -715,6 +716,7 @@ Removing unused procedure print_dword Removing unused procedure print_word Removing unused procedure print_byte Removing unused procedure print_char +Eliminating unused variable (byte[]) print_hextab and assignment [15] (byte[]) print_hextab ← (string) "0123456789abcdef" Eliminating unused variable - keeping the call (void~) main::$0 Eliminating unused variable - keeping the call (void~) main::$1 Eliminating unused variable - keeping the call (void~) main::$2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/linegen.asm b/src/test/java/dk/camelot64/kickc/test/ref/linegen.asm index 47a47fe67..309fed322 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/linegen.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/linegen.asm @@ -230,15 +230,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char txa and #$f tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -451,3 +450,4 @@ divr16u: { bne b1 rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/linegen.cfg b/src/test/java/dk/camelot64/kickc/test/ref/linegen.cfg index 3c3d69978..aad93c7c1 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/linegen.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/linegen.cfg @@ -54,7 +54,7 @@ main::@12: scope:[main] from main::@11 main::@1: scope:[main] from main::@12 main::@21 [26] (byte) main::i#10 ← phi( main::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@21/(byte) main::i#1 ) [ main::i#10 print_line_cursor#1 ] ( main:2 [ main::i#10 print_line_cursor#1 ] ) [27] (byte) print_byte::b#2 ← (byte) main::i#10 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ) - [28] (byte*~) print_char_cursor#90 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ) + [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) [29] call print_byte param-assignment [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ( main:2 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ) to:main::@14 main::@14: scope:[main] from main::@1 @@ -90,7 +90,7 @@ main::@21: scope:[main] from main::@20 [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 [ main::i#1 print_line_cursor#1 ] ( main:2 [ main::i#1 print_line_cursor#1 ] ) to:main::@2 main::@2: scope:[main] from main::@21 - [46] (byte*~) print_char_cursor#99 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#99 ] ( main:2 [ print_line_cursor#1 print_char_cursor#99 ] ) + [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) [47] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2 [ print_line_cursor#1 print_char_cursor#2 ] ) to:main::@22 main::@22: scope:[main] from main::@2 @@ -144,15 +144,15 @@ print_word::@return: scope:[print_word] from print_word::@1 [71] return [ print_char_cursor#11 ] ( main:2::print_word:15 [ print_char_cursor#11 ] main:2::print_word:19 [ print_char_cursor#11 ] main:2::print_word:23 [ print_char_cursor#11 ] main:2::print_word:33 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57 [ print_line_cursor#1 print_char_cursor#11 ] ) to:@return print_byte: scope:[print_byte] from main::@1 print_word print_word::@1 - [72] (byte*) print_char_cursor#81 ← phi( main::@1/(byte*~) print_char_cursor#90 print_word/(byte*) print_char_cursor#2 print_word::@1/(byte*) print_char_cursor#11 ) [ print_byte::b#3 print_char_cursor#81 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] ) + [72] (byte*) print_char_cursor#81 ← phi( main::@1/(byte*~) print_char_cursor#91 print_word/(byte*) print_char_cursor#2 print_word::@1/(byte*) print_char_cursor#11 ) [ print_byte::b#3 print_char_cursor#81 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] ) [72] (byte) print_byte::b#3 ← phi( main::@1/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#3 print_char_cursor#81 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] ) [73] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ) - [74] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] ) + [74] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] ) [75] call print_char param-assignment [ print_char_cursor#11 print_byte::b#3 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::b#3 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::b#3 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::b#3 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) - [77] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) + [77] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) [78] call print_char param-assignment [ print_char_cursor#11 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -168,7 +168,7 @@ print_char::@return: scope:[print_char] from print_char [83] return [ print_char_cursor#11 ] ( main:2::print_byte:29::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:15::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:19::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:23::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:33::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:37::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:41::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:49::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:53::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:57::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:15::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#11 ] main:2::print_word:19::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#11 ] main:2::print_word:23::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#11 ] main:2::print_word:33::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:37::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:41::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:49::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:53::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:57::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_byte:29::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70::print_char:78 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70::print_char:78 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70::print_char:78 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#11 ] ) to:@return print_str: scope:[print_str] from main::@10 main::@14 main::@16 main::@18 main::@2 main::@23 main::@25 main::@6 main::@8 - [84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#99 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) 1024 main::@8/(byte*) print_char_cursor#11 ) [ print_str::str#12 print_char_cursor#86 ] ( main:2::print_str:13 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:17 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:21 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:47 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:51 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:55 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] ) + [84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#100 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) 1024 main::@8/(byte*) print_char_cursor#11 ) [ print_str::str#12 print_char_cursor#86 ] ( main:2::print_str:13 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:17 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:21 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:47 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:51 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:55 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] ) [84] (byte*) print_str::str#12 ← phi( main::@10/(const string) main::str2 main::@14/(const string) main::str3 main::@16/(const string) main::str4 main::@18/(const string) main::str5 main::@2/(const string) main::str6 main::@23/(const string) main::str7 main::@25/(const string) main::str8 main::@6/(const string) main::str main::@8/(const string) main::str1 ) [ print_str::str#12 print_char_cursor#86 ] ( main:2::print_str:13 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:17 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:21 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:47 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:51 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:55 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/linegen.log b/src/test/java/dk/camelot64/kickc/test/ref/linegen.log index 2e76e2c60..53f8dc62a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/linegen.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/linegen.log @@ -295,12 +295,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -669,12 +670,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -976,7 +977,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -994,6 +994,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -1564,13 +1565,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @17: scope:[] from @16 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@18 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -1742,7 +1743,7 @@ Eliminating unused variable - keeping the call (void~) main::$25 Eliminating unused variable - keeping the call (void~) main::$26 Eliminating unused variable - keeping the call (void~) main::$27 Eliminating unused variable - keeping the call (void~) main::$28 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) main::str " @" Creating constant string variable for inline (const string) main::str1 " @" Creating constant string variable for inline (const string) main::str2 " @" @@ -1771,7 +1772,6 @@ Removing empty block @13 Removing empty block @14 Removing empty block @15 Removing empty block @16 -Removing empty block @17 Removing empty block @18 Removing empty block @19 Removing empty block @20 @@ -1904,11 +1904,11 @@ divr16u::@return: scope:[divr16u] from divr16u::@6 return to:@return @7: scope:[] from @2 - (word) rem16u#26 ← phi( @2/(word) rem16u#0 ) + (word) rem16u#27 ← phi( @2/(word) rem16u#0 ) (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@23 + to:@17 print_str: scope:[print_str] from main::@10 main::@14 main::@16 main::@18 main::@2 main::@23 main::@25 main::@6 main::@8 (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#19 main::@14/(byte*) print_char_cursor#23 main::@16/(byte*) print_char_cursor#25 main::@18/(byte*) print_char_cursor#27 main::@2/(byte*) print_char_cursor#84 main::@23/(byte*) print_char_cursor#32 main::@25/(byte*) print_char_cursor#34 main::@6/(byte*) print_char_cursor#15 main::@8/(byte*) print_char_cursor#17 ) (byte*) print_str::str#12 ← phi( main::@10/(byte*) print_str::str#3 main::@14/(byte*) print_str::str#4 main::@16/(byte*) print_str::str#5 main::@18/(byte*) print_str::str#6 main::@2/(byte*) print_str::str#7 main::@23/(byte*) print_str::str#8 main::@25/(byte*) print_str::str#9 main::@6/(byte*) print_str::str#1 main::@8/(byte*) print_str::str#2 ) @@ -1978,12 +1978,18 @@ print_word::@return: scope:[print_word] from print_word::@2 (byte*) print_char_cursor#7 ← (byte*) print_char_cursor#46 return to:@return +@17: scope:[] from @7 + (byte*) print_screen#9 ← phi( @7/(byte*) print_screen#0 ) + (byte*) print_char_cursor#88 ← phi( @7/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#31 ← phi( @7/(byte*) print_line_cursor#0 ) + (word) rem16u#26 ← phi( @7/(word) rem16u#27 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@23 print_byte: scope:[print_byte] from main::@1 print_word print_word::@1 (byte*) print_char_cursor#81 ← phi( main::@1/(byte*) print_char_cursor#83 print_word/(byte*) print_char_cursor#80 print_word::@1/(byte*) print_char_cursor#5 ) (byte) print_byte::b#3 ← phi( main::@1/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#0 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#0 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -1991,7 +1997,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#47 ← phi( print_byte/(byte*) print_char_cursor#12 ) (byte*) print_char_cursor#8 ← (byte*) print_char_cursor#47 (byte~) print_byte::$2 ← (byte) print_byte::b#4 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#1 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -2040,8 +2046,8 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 return to:@return main: scope:[main] from @23 - (byte*) print_char_cursor#89 ← phi( @23/(byte*) print_char_cursor#85 ) - (byte*) print_line_cursor#35 ← phi( @23/(byte*) print_line_cursor#26 ) + (byte*) print_char_cursor#90 ← phi( @23/(byte*) print_char_cursor#85 ) + (byte*) print_line_cursor#36 ← phi( @23/(byte*) print_line_cursor#26 ) (byte*) print_screen#7 ← phi( @23/(byte*) print_screen#8 ) (word) rem16u#20 ← phi( @23/(word) rem16u#24 ) (word[20]) main::lintab1#0 ← { fill( 20, 0) } @@ -2052,8 +2058,8 @@ main: scope:[main] from @23 call lin16u_gen param-assignment to:main::@3 main::@3: scope:[main] from main - (byte*) print_char_cursor#88 ← phi( main/(byte*) print_char_cursor#89 ) - (byte*) print_line_cursor#31 ← phi( main/(byte*) print_line_cursor#35 ) + (byte*) print_char_cursor#89 ← phi( main/(byte*) print_char_cursor#90 ) + (byte*) print_line_cursor#32 ← phi( main/(byte*) print_line_cursor#36 ) (byte*) print_screen#6 ← phi( main/(byte*) print_screen#7 ) (word) rem16u#12 ← phi( main/(word) rem16u#9 ) (word) rem16u#3 ← (word) rem16u#12 @@ -2065,8 +2071,8 @@ main::@3: scope:[main] from main call lin16u_gen param-assignment to:main::@4 main::@4: scope:[main] from main::@3 - (byte*) print_char_cursor#87 ← phi( main::@3/(byte*) print_char_cursor#88 ) - (byte*) print_line_cursor#27 ← phi( main::@3/(byte*) print_line_cursor#31 ) + (byte*) print_char_cursor#87 ← phi( main::@3/(byte*) print_char_cursor#89 ) + (byte*) print_line_cursor#27 ← phi( main::@3/(byte*) print_line_cursor#32 ) (byte*) print_screen#5 ← phi( main::@3/(byte*) print_screen#6 ) (word) rem16u#13 ← phi( main::@3/(word) rem16u#9 ) (word) rem16u#4 ← (word) rem16u#13 @@ -2086,7 +2092,7 @@ main::@5: scope:[main] from main::@4 call print_cls param-assignment to:main::@6 main::@6: scope:[main] from main::@5 - (word) rem16u#49 ← phi( main::@5/(word) rem16u#5 ) + (word) rem16u#50 ← phi( main::@5/(word) rem16u#5 ) (byte*) print_char_cursor#53 ← phi( main::@5/(byte*) print_char_cursor#14 ) (byte*) print_line_cursor#15 ← phi( main::@5/(byte*) print_line_cursor#4 ) (byte*) print_line_cursor#5 ← (byte*) print_line_cursor#15 @@ -2095,54 +2101,54 @@ main::@6: scope:[main] from main::@5 call print_str param-assignment to:main::@7 main::@7: scope:[main] from main::@6 - (word) rem16u#48 ← phi( main::@6/(word) rem16u#49 ) - (byte*) print_line_cursor#42 ← phi( main::@6/(byte*) print_line_cursor#5 ) + (word) rem16u#49 ← phi( main::@6/(word) rem16u#50 ) + (byte*) print_line_cursor#43 ← phi( main::@6/(byte*) print_line_cursor#5 ) (byte*) print_char_cursor#54 ← phi( main::@6/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#54 (word) print_word::w#0 ← (word/signed word/dword/signed dword) 557 call print_word param-assignment to:main::@8 main::@8: scope:[main] from main::@7 - (word) rem16u#47 ← phi( main::@7/(word) rem16u#48 ) - (byte*) print_line_cursor#39 ← phi( main::@7/(byte*) print_line_cursor#42 ) + (word) rem16u#48 ← phi( main::@7/(word) rem16u#49 ) + (byte*) print_line_cursor#40 ← phi( main::@7/(byte*) print_line_cursor#43 ) (byte*) print_char_cursor#55 ← phi( main::@7/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#17 ← (byte*) print_char_cursor#55 (byte*) print_str::str#2 ← (const string) main::str1 call print_str param-assignment to:main::@9 main::@9: scope:[main] from main::@8 - (word) rem16u#46 ← phi( main::@8/(word) rem16u#47 ) - (byte*) print_line_cursor#36 ← phi( main::@8/(byte*) print_line_cursor#39 ) + (word) rem16u#47 ← phi( main::@8/(word) rem16u#48 ) + (byte*) print_line_cursor#37 ← phi( main::@8/(byte*) print_line_cursor#40 ) (byte*) print_char_cursor#56 ← phi( main::@8/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#18 ← (byte*) print_char_cursor#56 (word) print_word::w#1 ← (word/signed word/dword/signed dword) 31179 call print_word param-assignment to:main::@10 main::@10: scope:[main] from main::@9 - (word) rem16u#45 ← phi( main::@9/(word) rem16u#46 ) - (byte*) print_line_cursor#32 ← phi( main::@9/(byte*) print_line_cursor#36 ) + (word) rem16u#46 ← phi( main::@9/(word) rem16u#47 ) + (byte*) print_line_cursor#33 ← phi( main::@9/(byte*) print_line_cursor#37 ) (byte*) print_char_cursor#57 ← phi( main::@9/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#19 ← (byte*) print_char_cursor#57 (byte*) print_str::str#3 ← (const string) main::str2 call print_str param-assignment to:main::@11 main::@11: scope:[main] from main::@10 - (word) rem16u#44 ← phi( main::@10/(word) rem16u#45 ) - (byte*) print_line_cursor#28 ← phi( main::@10/(byte*) print_line_cursor#32 ) + (word) rem16u#45 ← phi( main::@10/(word) rem16u#46 ) + (byte*) print_line_cursor#28 ← phi( main::@10/(byte*) print_line_cursor#33 ) (byte*) print_char_cursor#58 ← phi( main::@10/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#20 ← (byte*) print_char_cursor#58 (word) print_word::w#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 call print_word param-assignment to:main::@12 main::@12: scope:[main] from main::@11 - (word) rem16u#43 ← phi( main::@11/(word) rem16u#44 ) + (word) rem16u#44 ← phi( main::@11/(word) rem16u#45 ) (byte*) print_line_cursor#23 ← phi( main::@11/(byte*) print_line_cursor#28 ) (byte*) print_char_cursor#59 ← phi( main::@11/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#21 ← (byte*) print_char_cursor#59 call print_ln param-assignment to:main::@13 main::@13: scope:[main] from main::@12 - (word) rem16u#42 ← phi( main::@12/(word) rem16u#43 ) + (word) rem16u#43 ← phi( main::@12/(word) rem16u#44 ) (byte*) print_char_cursor#60 ← phi( main::@12/(byte*) print_char_cursor#4 ) (byte*) print_line_cursor#16 ← phi( main::@12/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#6 ← (byte*) print_line_cursor#16 @@ -2150,16 +2156,16 @@ main::@13: scope:[main] from main::@12 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main::@13 main::@21 - (word) rem16u#41 ← phi( main::@13/(word) rem16u#42 main::@21/(word) rem16u#33 ) - (byte*) print_line_cursor#47 ← phi( main::@13/(byte*) print_line_cursor#6 main::@21/(byte*) print_line_cursor#7 ) + (word) rem16u#42 ← phi( main::@13/(word) rem16u#43 main::@21/(word) rem16u#34 ) + (byte*) print_line_cursor#48 ← phi( main::@13/(byte*) print_line_cursor#6 main::@21/(byte*) print_line_cursor#7 ) (byte*) print_char_cursor#83 ← phi( main::@13/(byte*) print_char_cursor#22 main::@21/(byte*) print_char_cursor#30 ) (byte) main::i#2 ← phi( main::@13/(byte) main::i#0 main::@21/(byte) main::i#1 ) (byte) print_byte::b#2 ← (byte) main::i#2 call print_byte param-assignment to:main::@14 main::@14: scope:[main] from main::@1 - (word) rem16u#40 ← phi( main::@1/(word) rem16u#41 ) - (byte*) print_line_cursor#45 ← phi( main::@1/(byte*) print_line_cursor#47 ) + (word) rem16u#41 ← phi( main::@1/(word) rem16u#42 ) + (byte*) print_line_cursor#46 ← phi( main::@1/(byte*) print_line_cursor#48 ) (byte) main::i#7 ← phi( main::@1/(byte) main::i#2 ) (byte*) print_char_cursor#61 ← phi( main::@1/(byte*) print_char_cursor#10 ) (byte*) print_char_cursor#23 ← (byte*) print_char_cursor#61 @@ -2167,8 +2173,8 @@ main::@14: scope:[main] from main::@1 call print_str param-assignment to:main::@15 main::@15: scope:[main] from main::@14 - (word) rem16u#39 ← phi( main::@14/(word) rem16u#40 ) - (byte*) print_line_cursor#43 ← phi( main::@14/(byte*) print_line_cursor#45 ) + (word) rem16u#40 ← phi( main::@14/(word) rem16u#41 ) + (byte*) print_line_cursor#44 ← phi( main::@14/(byte*) print_line_cursor#46 ) (byte) main::i#3 ← phi( main::@14/(byte) main::i#7 ) (byte*) print_char_cursor#62 ← phi( main::@14/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#24 ← (byte*) print_char_cursor#62 @@ -2176,8 +2182,8 @@ main::@15: scope:[main] from main::@14 call print_word param-assignment to:main::@16 main::@16: scope:[main] from main::@15 - (word) rem16u#38 ← phi( main::@15/(word) rem16u#39 ) - (byte*) print_line_cursor#40 ← phi( main::@15/(byte*) print_line_cursor#43 ) + (word) rem16u#39 ← phi( main::@15/(word) rem16u#40 ) + (byte*) print_line_cursor#41 ← phi( main::@15/(byte*) print_line_cursor#44 ) (byte) main::i#8 ← phi( main::@15/(byte) main::i#3 ) (byte*) print_char_cursor#63 ← phi( main::@15/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#25 ← (byte*) print_char_cursor#63 @@ -2185,8 +2191,8 @@ main::@16: scope:[main] from main::@15 call print_str param-assignment to:main::@17 main::@17: scope:[main] from main::@16 - (word) rem16u#37 ← phi( main::@16/(word) rem16u#38 ) - (byte*) print_line_cursor#37 ← phi( main::@16/(byte*) print_line_cursor#40 ) + (word) rem16u#38 ← phi( main::@16/(word) rem16u#39 ) + (byte*) print_line_cursor#38 ← phi( main::@16/(byte*) print_line_cursor#41 ) (byte) main::i#4 ← phi( main::@16/(byte) main::i#8 ) (byte*) print_char_cursor#64 ← phi( main::@16/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#26 ← (byte*) print_char_cursor#64 @@ -2194,8 +2200,8 @@ main::@17: scope:[main] from main::@16 call print_word param-assignment to:main::@18 main::@18: scope:[main] from main::@17 - (word) rem16u#36 ← phi( main::@17/(word) rem16u#37 ) - (byte*) print_line_cursor#33 ← phi( main::@17/(byte*) print_line_cursor#37 ) + (word) rem16u#37 ← phi( main::@17/(word) rem16u#38 ) + (byte*) print_line_cursor#34 ← phi( main::@17/(byte*) print_line_cursor#38 ) (byte) main::i#9 ← phi( main::@17/(byte) main::i#4 ) (byte*) print_char_cursor#65 ← phi( main::@17/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#27 ← (byte*) print_char_cursor#65 @@ -2203,8 +2209,8 @@ main::@18: scope:[main] from main::@17 call print_str param-assignment to:main::@19 main::@19: scope:[main] from main::@18 - (word) rem16u#35 ← phi( main::@18/(word) rem16u#36 ) - (byte*) print_line_cursor#29 ← phi( main::@18/(byte*) print_line_cursor#33 ) + (word) rem16u#36 ← phi( main::@18/(word) rem16u#37 ) + (byte*) print_line_cursor#29 ← phi( main::@18/(byte*) print_line_cursor#34 ) (byte) main::i#5 ← phi( main::@18/(byte) main::i#9 ) (byte*) print_char_cursor#66 ← phi( main::@18/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#28 ← (byte*) print_char_cursor#66 @@ -2212,7 +2218,7 @@ main::@19: scope:[main] from main::@18 call print_word param-assignment to:main::@20 main::@20: scope:[main] from main::@19 - (word) rem16u#34 ← phi( main::@19/(word) rem16u#35 ) + (word) rem16u#35 ← phi( main::@19/(word) rem16u#36 ) (byte) main::i#10 ← phi( main::@19/(byte) main::i#5 ) (byte*) print_line_cursor#24 ← phi( main::@19/(byte*) print_line_cursor#29 ) (byte*) print_char_cursor#67 ← phi( main::@19/(byte*) print_char_cursor#7 ) @@ -2220,7 +2226,7 @@ main::@20: scope:[main] from main::@19 call print_ln param-assignment to:main::@21 main::@21: scope:[main] from main::@20 - (word) rem16u#33 ← phi( main::@20/(word) rem16u#34 ) + (word) rem16u#34 ← phi( main::@20/(word) rem16u#35 ) (byte) main::i#6 ← phi( main::@20/(byte) main::i#10 ) (byte*) print_char_cursor#68 ← phi( main::@20/(byte*) print_char_cursor#4 ) (byte*) print_line_cursor#17 ← phi( main::@20/(byte*) print_line_cursor#2 ) @@ -2233,54 +2239,54 @@ main::@21: scope:[main] from main::@20 if((boolean~) main::$21) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@21 - (word) rem16u#32 ← phi( main::@21/(word) rem16u#33 ) - (byte*) print_line_cursor#46 ← phi( main::@21/(byte*) print_line_cursor#7 ) + (word) rem16u#33 ← phi( main::@21/(word) rem16u#34 ) + (byte*) print_line_cursor#47 ← phi( main::@21/(byte*) print_line_cursor#7 ) (byte*) print_char_cursor#84 ← phi( main::@21/(byte*) print_char_cursor#30 ) (byte*) print_str::str#7 ← (const string) main::str6 call print_str param-assignment to:main::@22 main::@22: scope:[main] from main::@2 - (word) rem16u#31 ← phi( main::@2/(word) rem16u#32 ) - (byte*) print_line_cursor#44 ← phi( main::@2/(byte*) print_line_cursor#46 ) + (word) rem16u#32 ← phi( main::@2/(word) rem16u#33 ) + (byte*) print_line_cursor#45 ← phi( main::@2/(byte*) print_line_cursor#47 ) (byte*) print_char_cursor#69 ← phi( main::@2/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#31 ← (byte*) print_char_cursor#69 (word) print_word::w#6 ← (word/signed word/dword/signed dword) 29793 call print_word param-assignment to:main::@23 main::@23: scope:[main] from main::@22 - (word) rem16u#30 ← phi( main::@22/(word) rem16u#31 ) - (byte*) print_line_cursor#41 ← phi( main::@22/(byte*) print_line_cursor#44 ) + (word) rem16u#31 ← phi( main::@22/(word) rem16u#32 ) + (byte*) print_line_cursor#42 ← phi( main::@22/(byte*) print_line_cursor#45 ) (byte*) print_char_cursor#70 ← phi( main::@22/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#32 ← (byte*) print_char_cursor#70 (byte*) print_str::str#8 ← (const string) main::str7 call print_str param-assignment to:main::@24 main::@24: scope:[main] from main::@23 - (word) rem16u#29 ← phi( main::@23/(word) rem16u#30 ) - (byte*) print_line_cursor#38 ← phi( main::@23/(byte*) print_line_cursor#41 ) + (word) rem16u#30 ← phi( main::@23/(word) rem16u#31 ) + (byte*) print_line_cursor#39 ← phi( main::@23/(byte*) print_line_cursor#42 ) (byte*) print_char_cursor#71 ← phi( main::@23/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#33 ← (byte*) print_char_cursor#71 (word) print_word::w#7 ← (word/dword/signed dword) 63361 call print_word param-assignment to:main::@25 main::@25: scope:[main] from main::@24 - (word) rem16u#28 ← phi( main::@24/(word) rem16u#29 ) - (byte*) print_line_cursor#34 ← phi( main::@24/(byte*) print_line_cursor#38 ) + (word) rem16u#29 ← phi( main::@24/(word) rem16u#30 ) + (byte*) print_line_cursor#35 ← phi( main::@24/(byte*) print_line_cursor#39 ) (byte*) print_char_cursor#72 ← phi( main::@24/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#34 ← (byte*) print_char_cursor#72 (byte*) print_str::str#9 ← (const string) main::str8 call print_str param-assignment to:main::@26 main::@26: scope:[main] from main::@25 - (word) rem16u#27 ← phi( main::@25/(word) rem16u#28 ) - (byte*) print_line_cursor#30 ← phi( main::@25/(byte*) print_line_cursor#34 ) + (word) rem16u#28 ← phi( main::@25/(word) rem16u#29 ) + (byte*) print_line_cursor#30 ← phi( main::@25/(byte*) print_line_cursor#35 ) (byte*) print_char_cursor#73 ← phi( main::@25/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#35 ← (byte*) print_char_cursor#73 (word) print_word::w#8 ← (word/signed word/dword/signed dword) 25736 call print_word param-assignment to:main::@27 main::@27: scope:[main] from main::@26 - (word) rem16u#25 ← phi( main::@26/(word) rem16u#27 ) + (word) rem16u#25 ← phi( main::@26/(word) rem16u#28 ) (byte*) print_line_cursor#25 ← phi( main::@26/(byte*) print_line_cursor#30 ) (byte*) print_char_cursor#74 ← phi( main::@26/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#36 ← (byte*) print_char_cursor#74 @@ -2369,11 +2375,11 @@ lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1 (word) rem16u#9 ← (word) rem16u#18 return to:@return -@23: scope:[] from @7 - (byte*) print_screen#8 ← phi( @7/(byte*) print_screen#0 ) - (byte*) print_char_cursor#85 ← phi( @7/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#26 ← phi( @7/(byte*) print_line_cursor#0 ) - (word) rem16u#24 ← phi( @7/(word) rem16u#26 ) +@23: scope:[] from @17 + (byte*) print_screen#8 ← phi( @17/(byte*) print_screen#9 ) + (byte*) print_char_cursor#85 ← phi( @17/(byte*) print_char_cursor#88 ) + (byte*) print_line_cursor#26 ← phi( @17/(byte*) print_line_cursor#31 ) + (word) rem16u#24 ← phi( @17/(word) rem16u#26 ) call main param-assignment to:@24 @24: scope:[] from @23 @@ -2387,6 +2393,8 @@ lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1 @end: scope:[] from @24 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" +(label) @17 (label) @2 (label) @23 (label) @24 @@ -2595,7 +2603,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -2605,8 +2612,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#2 (byte) print_byte::b#3 (byte) print_byte::b#4 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -2704,6 +2709,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#88 (byte*) print_char_cursor#89 (byte*) print_char_cursor#9 +(byte*) print_char_cursor#90 (void()) print_cls() (byte*~) print_cls::$0 (boolean~) print_cls::$1 @@ -2714,6 +2720,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -2758,6 +2766,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#45 (byte*) print_line_cursor#46 (byte*) print_line_cursor#47 +(byte*) print_line_cursor#48 (byte*) print_line_cursor#5 (byte*) print_line_cursor#6 (byte*) print_line_cursor#7 @@ -2779,6 +2788,7 @@ SYMBOL TABLE SSA (byte*) print_screen#6 (byte*) print_screen#7 (byte*) print_screen#8 +(byte*) print_screen#9 (void()) print_str((byte*) print_str::str) (boolean~) print_str::$0 (label) print_str::@1 @@ -2863,6 +2873,7 @@ SYMBOL TABLE SSA (word) rem16u#48 (word) rem16u#49 (word) rem16u#5 +(word) rem16u#50 (word) rem16u#6 (word) rem16u#7 (word) rem16u#8 @@ -2894,8 +2905,8 @@ Not aliassing across scopes: print_screen#1 print_screen#4 Not aliassing across scopes: print_cls::sc#0 print_screen#1 Not aliassing across scopes: rem16u#20 rem16u#24 Not aliassing across scopes: print_screen#7 print_screen#8 -Not aliassing across scopes: print_line_cursor#35 print_line_cursor#26 -Not aliassing across scopes: print_char_cursor#89 print_char_cursor#85 +Not aliassing across scopes: print_line_cursor#36 print_line_cursor#26 +Not aliassing across scopes: print_char_cursor#90 print_char_cursor#85 Not aliassing across scopes: lin16u_gen::lintab#0 main::lintab1#0 Not aliassing across scopes: rem16u#12 rem16u#9 Not aliassing across scopes: lin16u_gen::lintab#1 main::lintab2#0 @@ -2964,8 +2975,8 @@ Alias (word) divr16u::rem#2 = (word~) divr16u::$10 Alias (word) divr16u::rem#11 = (word) divr16u::rem#9 Alias (word) divr16u::return#0 = (word) divr16u::quotient#5 (word) divr16u::quotient#8 (word) divr16u::return#4 (word) divr16u::return#1 Alias (word) rem16u#1 = (word) rem16u#11 (word) rem16u#2 -Alias (word) rem16u#0 = (word) rem16u#26 (word) rem16u#24 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#26 (byte*) print_char_cursor#85 (byte*) print_screen#8 +Alias (word) rem16u#0 = (word) rem16u#27 (word) rem16u#26 (word) rem16u#24 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#31 (byte*) print_char_cursor#88 (byte*) print_screen#9 (byte*) print_line_cursor#26 (byte*) print_char_cursor#85 (byte*) print_screen#8 Alias (byte*) print_str::str#10 = (byte*) print_str::str#11 Alias (byte*) print_char_cursor#2 = (byte*) print_char_cursor#40 (byte*) print_char_cursor#78 (byte*) print_char_cursor#41 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#12 (byte*) print_char_cursor#3 (byte*) print_line_cursor#13 (byte*) print_char_cursor#43 (byte*) print_line_cursor#2 (byte*) print_char_cursor#4 @@ -2980,12 +2991,12 @@ Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#9 (byte*) print_c Alias (byte*) print_char_cursor#11 = (byte*) print_char_cursor#51 (byte*) print_char_cursor#12 Alias (byte*) print_line_cursor#14 = (byte*) print_screen#3 (byte*) print_screen#2 (byte*) print_line_cursor#3 (byte*) print_char_cursor#13 (byte*) print_char_cursor#52 (byte*) print_line_cursor#4 (byte*) print_char_cursor#14 Alias (byte*) print_screen#4 = (byte*) print_screen#6 (byte*) print_screen#7 (byte*) print_screen#5 -Alias (byte*) print_line_cursor#22 = (byte*) print_line_cursor#31 (byte*) print_line_cursor#35 (byte*) print_line_cursor#27 -Alias (byte*) print_char_cursor#82 = (byte*) print_char_cursor#88 (byte*) print_char_cursor#89 (byte*) print_char_cursor#87 +Alias (byte*) print_line_cursor#22 = (byte*) print_line_cursor#32 (byte*) print_line_cursor#36 (byte*) print_line_cursor#27 +Alias (byte*) print_char_cursor#82 = (byte*) print_char_cursor#89 (byte*) print_char_cursor#90 (byte*) print_char_cursor#87 Alias (word) rem16u#12 = (word) rem16u#3 Alias (word) rem16u#13 = (word) rem16u#4 -Alias (word) rem16u#14 = (word) rem16u#5 (word) rem16u#49 (word) rem16u#48 (word) rem16u#47 (word) rem16u#46 (word) rem16u#45 (word) rem16u#44 (word) rem16u#43 (word) rem16u#42 -Alias (byte*) print_line_cursor#15 = (byte*) print_line_cursor#5 (byte*) print_line_cursor#42 (byte*) print_line_cursor#39 (byte*) print_line_cursor#36 (byte*) print_line_cursor#32 (byte*) print_line_cursor#28 (byte*) print_line_cursor#23 +Alias (word) rem16u#14 = (word) rem16u#5 (word) rem16u#50 (word) rem16u#49 (word) rem16u#48 (word) rem16u#47 (word) rem16u#46 (word) rem16u#45 (word) rem16u#44 (word) rem16u#43 +Alias (byte*) print_line_cursor#15 = (byte*) print_line_cursor#5 (byte*) print_line_cursor#43 (byte*) print_line_cursor#40 (byte*) print_line_cursor#37 (byte*) print_line_cursor#33 (byte*) print_line_cursor#28 (byte*) print_line_cursor#23 Alias (byte*) print_char_cursor#15 = (byte*) print_char_cursor#53 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#54 Alias (byte*) print_char_cursor#17 = (byte*) print_char_cursor#55 @@ -2996,8 +3007,8 @@ Alias (byte*) print_char_cursor#21 = (byte*) print_char_cursor#59 Alias (byte*) print_line_cursor#16 = (byte*) print_line_cursor#6 Alias (byte*) print_char_cursor#22 = (byte*) print_char_cursor#60 Alias (byte) main::i#10 = (byte) main::i#7 (byte) main::i#2 (byte) main::i#3 (byte) main::i#8 (byte) main::i#4 (byte) main::i#9 (byte) main::i#5 (byte) main::i#6 -Alias (byte*) print_line_cursor#24 = (byte*) print_line_cursor#45 (byte*) print_line_cursor#47 (byte*) print_line_cursor#43 (byte*) print_line_cursor#40 (byte*) print_line_cursor#37 (byte*) print_line_cursor#33 (byte*) print_line_cursor#29 -Alias (word) rem16u#15 = (word) rem16u#40 (word) rem16u#41 (word) rem16u#39 (word) rem16u#38 (word) rem16u#37 (word) rem16u#36 (word) rem16u#35 (word) rem16u#34 (word) rem16u#33 (word) rem16u#32 (word) rem16u#31 (word) rem16u#30 (word) rem16u#29 (word) rem16u#28 (word) rem16u#27 (word) rem16u#25 (word) rem16u#21 (word) rem16u#6 +Alias (byte*) print_line_cursor#24 = (byte*) print_line_cursor#46 (byte*) print_line_cursor#48 (byte*) print_line_cursor#44 (byte*) print_line_cursor#41 (byte*) print_line_cursor#38 (byte*) print_line_cursor#34 (byte*) print_line_cursor#29 +Alias (word) rem16u#15 = (word) rem16u#41 (word) rem16u#42 (word) rem16u#40 (word) rem16u#39 (word) rem16u#38 (word) rem16u#37 (word) rem16u#36 (word) rem16u#35 (word) rem16u#34 (word) rem16u#33 (word) rem16u#32 (word) rem16u#31 (word) rem16u#30 (word) rem16u#29 (word) rem16u#28 (word) rem16u#25 (word) rem16u#21 (word) rem16u#6 Alias (byte*) print_char_cursor#23 = (byte*) print_char_cursor#61 Alias (byte*) print_char_cursor#24 = (byte*) print_char_cursor#62 Alias (byte*) print_char_cursor#25 = (byte*) print_char_cursor#63 @@ -3005,7 +3016,7 @@ Alias (byte*) print_char_cursor#26 = (byte*) print_char_cursor#64 Alias (byte*) print_char_cursor#27 = (byte*) print_char_cursor#65 Alias (byte*) print_char_cursor#28 = (byte*) print_char_cursor#66 Alias (byte*) print_char_cursor#29 = (byte*) print_char_cursor#67 -Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#7 (byte*) print_line_cursor#46 (byte*) print_line_cursor#44 (byte*) print_line_cursor#41 (byte*) print_line_cursor#38 (byte*) print_line_cursor#34 (byte*) print_line_cursor#30 (byte*) print_line_cursor#25 +Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#7 (byte*) print_line_cursor#47 (byte*) print_line_cursor#45 (byte*) print_line_cursor#42 (byte*) print_line_cursor#39 (byte*) print_line_cursor#35 (byte*) print_line_cursor#30 (byte*) print_line_cursor#25 Alias (byte*) print_char_cursor#30 = (byte*) print_char_cursor#68 (byte*) print_char_cursor#84 Alias (byte) main::i#1 = (byte/signed word/word/dword/signed dword~) main::$19 Alias (byte*) print_char_cursor#31 = (byte*) print_char_cursor#69 @@ -3273,7 +3284,7 @@ Constant (const word) rem16u#0 = 0 Constant (const word) divr16u::quotient#0 = 0 Constant (const byte) divr16u::i#0 = 0 Constant (const byte*) print_line_cursor#0 = ((byte*))1024 -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const word[20]) main::lintab1#0 = { fill( 20, 0) } Constant (const word) lin16u_gen::min#0 = 557 Constant (const word) lin16u_gen::max#0 = 29793 @@ -3328,6 +3339,7 @@ Culled Empty Block (label) @2 Culled Empty Block (label) @7 Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_word::@2 +Culled Empty Block (label) @17 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@13 @@ -3534,6 +3546,7 @@ Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed Constant inlined lin16u_gen::max#0 = (word/signed word/dword/signed dword) 29793 Constant inlined lin16u_gen::max#2 = (word/signed word/dword/signed dword) 25736 Constant inlined lin16u_gen::max#1 = (word/dword/signed dword) 63361 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined lin16u_gen::min#0 = (word/signed word/dword/signed dword) 557 @@ -3555,7 +3568,6 @@ Constant inlined print_str::str#4 = (const string) main::str3 Constant inlined print_str::str#3 = (const string) main::str2 Constant inlined print_str::str#2 = (const string) main::str1 Constant inlined print_str::str#1 = (const string) main::str -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Constant inlined print_str::str#8 = (const string) main::str7 Constant inlined lin16u_gen::lintab#2 = (const word[20]) main::lintab3#0 Constant inlined lin16u_gen::min#1 = (word/signed word/dword/signed dword) 31179 @@ -3620,36 +3632,36 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 30 initial phi equivalence classes -Coalesced [16] print_char_cursor#102 ← print_char_cursor#11 -Coalesced (already) [20] print_char_cursor#95 ← print_char_cursor#11 +Coalesced [16] print_char_cursor#103 ← print_char_cursor#11 +Coalesced (already) [20] print_char_cursor#96 ← print_char_cursor#11 Coalesced [28] print_byte::b#5 ← print_byte::b#2 -Not coalescing [29] print_char_cursor#90 ← print_line_cursor#1 -Coalesced (already) [31] print_char_cursor#96 ← print_char_cursor#11 +Not coalescing [29] print_char_cursor#91 ← print_line_cursor#1 +Coalesced (already) [31] print_char_cursor#97 ← print_char_cursor#11 Coalesced [34] print_word::w#11 ← print_word::w#3 -Coalesced (already) [36] print_char_cursor#97 ← print_char_cursor#11 +Coalesced (already) [36] print_char_cursor#98 ← print_char_cursor#11 Coalesced [39] print_word::w#12 ← print_word::w#4 -Coalesced (already) [41] print_char_cursor#98 ← print_char_cursor#11 +Coalesced (already) [41] print_char_cursor#99 ← print_char_cursor#11 Coalesced [44] print_word::w#13 ← print_word::w#5 -Coalesced [46] print_line_cursor#48 ← print_line_cursor#1 -Not coalescing [50] print_char_cursor#99 ← print_line_cursor#1 -Coalesced (already) [54] print_char_cursor#100 ← print_char_cursor#11 -Coalesced (already) [58] print_char_cursor#101 ← print_char_cursor#11 -Coalesced (already) [62] print_line_cursor#49 ← print_line_cursor#1 +Coalesced [46] print_line_cursor#49 ← print_line_cursor#1 +Not coalescing [50] print_char_cursor#100 ← print_line_cursor#1 +Coalesced (already) [54] print_char_cursor#101 ← print_char_cursor#11 +Coalesced (already) [58] print_char_cursor#102 ← print_char_cursor#11 +Coalesced (already) [62] print_line_cursor#50 ← print_line_cursor#1 Coalesced [65] main::i#11 ← main::i#1 -Coalesced [67] print_line_cursor#50 ← print_line_cursor#21 -Coalesced (already) [72] print_line_cursor#51 ← print_line_cursor#1 +Coalesced [67] print_line_cursor#51 ← print_line_cursor#21 +Coalesced (already) [72] print_line_cursor#52 ← print_line_cursor#1 Coalesced [75] print_byte::b#6 ← print_byte::b#0 -Coalesced [76] print_char_cursor#91 ← print_char_cursor#2 +Coalesced [76] print_char_cursor#92 ← print_char_cursor#2 Coalesced [79] print_byte::b#7 ← print_byte::b#1 -Coalesced [80] print_char_cursor#92 ← print_char_cursor#11 +Coalesced [80] print_char_cursor#93 ← print_char_cursor#11 Coalesced [86] print_char::ch#3 ← print_char::ch#0 -Coalesced [87] print_char_cursor#93 ← print_char_cursor#81 +Coalesced [87] print_char_cursor#94 ← print_char_cursor#81 Coalesced [91] print_char::ch#4 ← print_char::ch#1 -Coalesced (already) [92] print_char_cursor#94 ← print_char_cursor#11 +Coalesced (already) [92] print_char_cursor#95 ← print_char_cursor#11 Coalesced [100] print_str::str#13 ← print_str::str#12 -Coalesced (already) [101] print_char_cursor#103 ← print_char_cursor#86 +Coalesced (already) [101] print_char_cursor#104 ← print_char_cursor#86 Coalesced [108] print_str::str#14 ← print_str::str#0 -Coalesced [109] print_char_cursor#104 ← print_char_cursor#1 +Coalesced [109] print_char_cursor#105 ← print_char_cursor#1 Coalesced [116] print_cls::sc#3 ← print_cls::sc#1 Coalesced [121] divr16u::dividend#9 ← divr16u::dividend#1 Coalesced [122] divr16u::divisor#8 ← divr16u::divisor#0 @@ -3780,7 +3792,7 @@ main::@12: scope:[main] from main::@11 main::@1: scope:[main] from main::@12 main::@21 [26] (byte) main::i#10 ← phi( main::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@21/(byte) main::i#1 ) [ main::i#10 print_line_cursor#1 ] ( main:2 [ main::i#10 print_line_cursor#1 ] ) [27] (byte) print_byte::b#2 ← (byte) main::i#10 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ) - [28] (byte*~) print_char_cursor#90 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ) + [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) [29] call print_byte param-assignment [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ( main:2 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ) to:main::@14 main::@14: scope:[main] from main::@1 @@ -3816,7 +3828,7 @@ main::@21: scope:[main] from main::@20 [45] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 [ main::i#1 print_line_cursor#1 ] ( main:2 [ main::i#1 print_line_cursor#1 ] ) to:main::@2 main::@2: scope:[main] from main::@21 - [46] (byte*~) print_char_cursor#99 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#99 ] ( main:2 [ print_line_cursor#1 print_char_cursor#99 ] ) + [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) [47] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2 [ print_line_cursor#1 print_char_cursor#2 ] ) to:main::@22 main::@22: scope:[main] from main::@2 @@ -3870,15 +3882,15 @@ print_word::@return: scope:[print_word] from print_word::@1 [71] return [ print_char_cursor#11 ] ( main:2::print_word:15 [ print_char_cursor#11 ] main:2::print_word:19 [ print_char_cursor#11 ] main:2::print_word:23 [ print_char_cursor#11 ] main:2::print_word:33 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57 [ print_line_cursor#1 print_char_cursor#11 ] ) to:@return print_byte: scope:[print_byte] from main::@1 print_word print_word::@1 - [72] (byte*) print_char_cursor#81 ← phi( main::@1/(byte*~) print_char_cursor#90 print_word/(byte*) print_char_cursor#2 print_word::@1/(byte*) print_char_cursor#11 ) [ print_byte::b#3 print_char_cursor#81 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] ) + [72] (byte*) print_char_cursor#81 ← phi( main::@1/(byte*~) print_char_cursor#91 print_word/(byte*) print_char_cursor#2 print_word::@1/(byte*) print_char_cursor#11 ) [ print_byte::b#3 print_char_cursor#81 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] ) [72] (byte) print_byte::b#3 ← phi( main::@1/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#3 print_char_cursor#81 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 ] ) [73] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_byte::$0 ] ) - [74] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] ) + [74] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:15::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:19::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:23::print_byte:70 [ print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#81 print_char::ch#0 ] ) [75] call print_char param-assignment [ print_char_cursor#11 print_byte::b#3 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::b#3 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::b#3 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::b#3 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::b#3 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) - [77] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) + [77] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) [78] call print_char param-assignment [ print_char_cursor#11 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -3894,7 +3906,7 @@ print_char::@return: scope:[print_char] from print_char [83] return [ print_char_cursor#11 ] ( main:2::print_byte:29::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:15::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:19::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:23::print_byte:68::print_char:75 [ print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:33::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:37::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:41::print_byte:68::print_char:75 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:49::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:53::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:57::print_byte:68::print_char:75 [ print_line_cursor#1 print_word::w#10 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:15::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#11 ] main:2::print_word:19::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#11 ] main:2::print_word:23::print_byte:70::print_char:75 [ print_byte::b#3 print_char_cursor#11 ] main:2::print_word:33::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:37::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:41::print_byte:70::print_char:75 [ main::i#10 print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:49::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:53::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_word:57::print_byte:70::print_char:75 [ print_line_cursor#1 print_byte::b#3 print_char_cursor#11 ] main:2::print_byte:29::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68::print_char:78 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68::print_char:78 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68::print_char:78 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70::print_char:78 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70::print_char:78 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70::print_char:78 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70::print_char:78 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70::print_char:78 [ print_line_cursor#1 print_char_cursor#11 ] ) to:@return print_str: scope:[print_str] from main::@10 main::@14 main::@16 main::@18 main::@2 main::@23 main::@25 main::@6 main::@8 - [84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#99 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) 1024 main::@8/(byte*) print_char_cursor#11 ) [ print_str::str#12 print_char_cursor#86 ] ( main:2::print_str:13 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:17 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:21 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:47 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:51 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:55 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] ) + [84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#100 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) 1024 main::@8/(byte*) print_char_cursor#11 ) [ print_str::str#12 print_char_cursor#86 ] ( main:2::print_str:13 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:17 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:21 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:47 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:51 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:55 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] ) [84] (byte*) print_str::str#12 ← phi( main::@10/(const string) main::str2 main::@14/(const string) main::str3 main::@16/(const string) main::str4 main::@18/(const string) main::str5 main::@2/(const string) main::str6 main::@23/(const string) main::str7 main::@25/(const string) main::str8 main::@6/(const string) main::str main::@8/(const string) main::str1 ) [ print_str::str#12 print_char_cursor#86 ] ( main:2::print_str:13 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:17 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:21 [ print_str::str#12 print_char_cursor#86 ] main:2::print_str:31 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:35 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:39 [ main::i#10 print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:47 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:51 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] main:2::print_str:55 [ print_line_cursor#1 print_str::str#12 print_char_cursor#86 ] ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -4184,7 +4196,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#1 4.0 (byte) print_byte::b#2 11.0 (byte) print_byte::b#3 4.75 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#0 4.0 @@ -4192,17 +4203,18 @@ VARIABLE REGISTER WEIGHTS (byte) print_char::ch#2 6.0 (byte*) print_char_cursor (byte*) print_char_cursor#1 101.0 +(byte*~) print_char_cursor#100 4.0 (byte*) print_char_cursor#11 4.228571428571427 (byte*) print_char_cursor#2 12.791666666666664 (byte*) print_char_cursor#50 4.0 (byte*) print_char_cursor#81 5.666666666666667 (byte*) print_char_cursor#86 45.0 -(byte*~) print_char_cursor#90 22.0 -(byte*~) print_char_cursor#99 4.0 +(byte*~) print_char_cursor#91 22.0 (void()) print_cls() (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_line_cursor#1 8.891891891891891 (byte*) print_line_cursor#11 204.0 @@ -4229,7 +4241,7 @@ Initial phi equivalence classes [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 ] [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -[ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 ] +[ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] [ print_str::str#10 print_str::str#12 print_str::str#0 ] [ print_cls::sc#2 print_cls::sc#1 ] [ lin16u_gen::max#3 ] @@ -4261,7 +4273,7 @@ Complete equivalence classes [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 ] [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -[ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 ] +[ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] [ print_str::str#10 print_str::str#12 print_str::str#0 ] [ print_cls::sc#2 print_cls::sc#1 ] [ lin16u_gen::max#3 ] @@ -4292,7 +4304,7 @@ Allocated zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cu Allocated zp ZP_WORD:5 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 ] Allocated zp ZP_BYTE:7 [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Allocated zp ZP_BYTE:8 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -Allocated zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 ] +Allocated zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] Allocated zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 ] Allocated zp ZP_WORD:13 [ print_cls::sc#2 print_cls::sc#1 ] Allocated zp ZP_WORD:15 [ lin16u_gen::max#3 ] @@ -4558,7 +4570,7 @@ main: { //SEG79 [27] (byte) print_byte::b#2 ← (byte) main::i#10 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ) -- vbuz1=vbuz2 lda i sta print_byte.b - //SEG80 [28] (byte*~) print_char_cursor#90 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG80 [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -4566,7 +4578,7 @@ main: { //SEG81 [29] call print_byte param-assignment [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ( main:2 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ) //SEG82 [72] phi from main::@1 to print_byte [phi:main::@1->print_byte] print_byte_from_b1: - //SEG83 [72] phi (byte*) print_char_cursor#81 = (byte*~) print_char_cursor#90 [phi:main::@1->print_byte#0] -- register_copy + //SEG83 [72] phi (byte*) print_char_cursor#81 = (byte*~) print_char_cursor#91 [phi:main::@1->print_byte#0] -- register_copy //SEG84 [72] phi (byte) print_byte::b#3 = (byte) print_byte::b#2 [phi:main::@1->print_byte#1] -- register_copy jsr print_byte //SEG85 [30] phi from main::@1 to main::@14 [phi:main::@1->main::@14] @@ -4681,7 +4693,7 @@ main: { jmp b2 //SEG126 main::@2 b2: - //SEG127 [46] (byte*~) print_char_cursor#99 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#99 ] ( main:2 [ print_line_cursor#1 print_char_cursor#99 ] ) -- pbuz1=pbuz2 + //SEG127 [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -4689,7 +4701,7 @@ main: { //SEG128 [47] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2 [ print_line_cursor#1 print_char_cursor#2 ] ) //SEG129 [84] phi from main::@2 to print_str [phi:main::@2->print_str] print_str_from_b2: - //SEG130 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#99 [phi:main::@2->print_str#0] -- register_copy + //SEG130 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#100 [phi:main::@2->print_str#0] -- register_copy //SEG131 [84] phi (byte*) print_str::str#12 = (const string) main::str6 [phi:main::@2->print_str#1] -- pbuz1=pbuc1 lda #print_char] @@ -4887,9 +4899,9 @@ print_byte: { lda #$f and b sta _2 - //SEG197 [77] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG197 [77] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG198 [78] call print_char param-assignment [ print_char_cursor#11 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] ) //SEG199 [80] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -4902,7 +4914,6 @@ print_byte: { breturn: //SEG203 [79] return [ print_char_cursor#11 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] ) rts - hextab: .text "0123456789abcdef" } //SEG204 print_char print_char: { @@ -5306,16 +5317,17 @@ divr16u: { //SEG309 [136] return [ divr16u::return#0 rem16u#1 ] ( main:2::lin16u_gen:5::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:5::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS -Statement [28] (byte*~) print_char_cursor#90 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#10 main::i#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:7 [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Statement [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ) always clobbers reg byte a Statement [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ) always clobbers reg byte a Statement [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ) always clobbers reg byte a Statement [44] (byte) main::i#1 ← (byte) main::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::i#1 print_line_cursor#1 ] ( main:2 [ main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [46] (byte*~) print_char_cursor#99 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#99 ] ( main:2 [ print_line_cursor#1 print_char_cursor#99 ] ) always clobbers reg byte a +Statement [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) always clobbers reg byte a Statement [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a Statement [64] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a Statement [67] (byte) print_byte::b#0 ← > (word) print_word::w#10 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] ( main:2::print_word:15 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:19 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:23 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:33 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:37 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:41 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:49 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:53 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:57 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] ) always clobbers reg byte a @@ -5352,12 +5364,12 @@ Statement [125] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed b Statement [129] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::lin16u_gen:5::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:9::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:5::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:9::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ) always clobbers reg byte a Statement [131] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::lin16u_gen:5::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:7::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:9::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:5::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:7::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:9::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [135] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::lin16u_gen:5::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:5::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] ) always clobbers reg byte a -Statement [28] (byte*~) print_char_cursor#90 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) always clobbers reg byte a Statement [32] (word) print_word::w#3 ← *((const word[20]) main::lintab1#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#3 print_char_cursor#2 ] ) always clobbers reg byte a Statement [36] (word) print_word::w#4 ← *((const word[20]) main::lintab2#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#4 print_char_cursor#2 ] ) always clobbers reg byte a Statement [40] (word) print_word::w#5 ← *((const word[20]) main::lintab3#0 + (byte) main::i#10) [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ( main:2 [ main::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#2 ] ) always clobbers reg byte a Statement [44] (byte) main::i#1 ← (byte) main::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::i#1 print_line_cursor#1 ] ( main:2 [ main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [46] (byte*~) print_char_cursor#99 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#99 ] ( main:2 [ print_line_cursor#1 print_char_cursor#99 ] ) always clobbers reg byte a +Statement [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) always clobbers reg byte a Statement [63] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a Statement [64] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#11 ] ( main:2::print_ln:25 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:43 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_ln:59 [ print_line_cursor#1 print_char_cursor#11 ] ) always clobbers reg byte a Statement [67] (byte) print_byte::b#0 ← > (word) print_word::w#10 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] ( main:2::print_word:15 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:19 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:23 [ print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:33 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:37 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:41 [ main::i#10 print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:49 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:53 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] main:2::print_word:57 [ print_line_cursor#1 print_word::w#10 print_byte::b#0 print_char_cursor#2 ] ) always clobbers reg byte a @@ -5396,7 +5408,7 @@ Potential registers zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 pri Potential registers zp ZP_WORD:5 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 ] : zp ZP_WORD:5 , Potential registers zp ZP_BYTE:7 [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] : zp ZP_BYTE:7 , reg byte x , Potential registers zp ZP_BYTE:8 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] : zp ZP_BYTE:8 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 ] : zp ZP_WORD:9 , +Potential registers zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] : zp ZP_WORD:9 , Potential registers zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 ] : zp ZP_WORD:11 , Potential registers zp ZP_WORD:13 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:13 , Potential registers zp ZP_WORD:15 [ lin16u_gen::max#3 ] : zp ZP_WORD:15 , @@ -5424,7 +5436,7 @@ Potential registers zp ZP_BYTE:57 [ divr16u::$2 ] : zp ZP_BYTE:57 , reg byte a , Potential registers zp ZP_WORD:58 [ rem16u#1 ] : zp ZP_WORD:58 , REGISTER UPLIFT SCOPES -Uplift Scope [] 227.89: zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 ] 198.69: zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 ] 0.67: zp ZP_WORD:58 [ rem16u#1 ] +Uplift Scope [] 227.89: zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 ] 198.69: zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] 0.67: zp ZP_WORD:58 [ rem16u#1 ] Uplift Scope [print_str] 305.5: zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 ] Uplift Scope [divr16u] 106.92: zp ZP_WORD:31 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] 35.54: zp ZP_WORD:35 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] 22: zp ZP_BYTE:56 [ divr16u::$1 ] 22: zp ZP_BYTE:57 [ divr16u::$2 ] 18.19: zp ZP_BYTE:37 [ divr16u::i#2 divr16u::i#1 ] 15.75: zp ZP_WORD:33 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#1 divr16u::dividend#0 ] 5.62: zp ZP_WORD:29 [ divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 ] 4: zp ZP_WORD:42 [ divr16u::return#2 ] 4: zp ZP_WORD:46 [ divr16u::return#3 ] Uplift Scope [lin16u_gen] 22: zp ZP_WORD:54 [ lin16u_gen::$5 ] 21.17: zp ZP_DWORD:21 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] 20.9: zp ZP_WORD:27 [ lin16u_gen::i#2 lin16u_gen::i#1 ] 16.23: zp ZP_WORD:25 [ lin16u_gen::lintab#4 lin16u_gen::lintab#3 lin16u_gen::lintab#5 ] 4: zp ZP_WORD:48 [ lin16u_gen::stepf#0 ] 2: zp ZP_WORD:15 [ lin16u_gen::max#3 ] 2: zp ZP_WORD:40 [ lin16u_gen::ampl#0 ] 1.44: zp ZP_DWORD:50 [ lin16u_gen::step#0 ] 0.71: zp ZP_WORD:19 [ lin16u_gen::length#3 ] 0.67: zp ZP_WORD:44 [ lin16u_gen::stepi#0 ] 0.31: zp ZP_WORD:17 [ lin16u_gen::min#3 ] @@ -5435,7 +5447,7 @@ Uplift Scope [main] 20.17: zp ZP_BYTE:2 [ main::i#10 main::i#1 ] Uplift Scope [print_char] 14: zp ZP_BYTE:8 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] Uplift Scope [print_ln] -Uplifting [] best 16090 combination zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 ] zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 ] zp ZP_WORD:58 [ rem16u#1 ] +Uplifting [] best 16090 combination zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 ] zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] zp ZP_WORD:58 [ rem16u#1 ] Uplifting [print_str] best 16090 combination zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 ] Uplifting [divr16u] best 15900 combination zp ZP_WORD:31 [ divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:35 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:33 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:29 [ divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 ] zp ZP_WORD:42 [ divr16u::return#2 ] zp ZP_WORD:46 [ divr16u::return#3 ] Uplifting [lin16u_gen] best 15900 combination zp ZP_WORD:54 [ lin16u_gen::$5 ] zp ZP_DWORD:21 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] zp ZP_WORD:27 [ lin16u_gen::i#2 lin16u_gen::i#1 ] zp ZP_WORD:25 [ lin16u_gen::lintab#4 lin16u_gen::lintab#3 lin16u_gen::lintab#5 ] zp ZP_WORD:48 [ lin16u_gen::stepf#0 ] zp ZP_WORD:15 [ lin16u_gen::max#3 ] zp ZP_WORD:40 [ lin16u_gen::ampl#0 ] zp ZP_DWORD:50 [ lin16u_gen::step#0 ] zp ZP_WORD:19 [ lin16u_gen::length#3 ] zp ZP_WORD:44 [ lin16u_gen::stepi#0 ] zp ZP_WORD:17 [ lin16u_gen::min#3 ] @@ -5459,8 +5471,8 @@ Coalescing zero page register [ zp ZP_WORD:3 [ print_line_cursor#11 print_line_c Coalescing zero page register [ zp ZP_WORD:5 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 ] ] with [ zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 ] ] Coalescing zero page register [ zp ZP_WORD:5 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 print_str::str#10 print_str::str#12 print_str::str#0 ] ] with [ zp ZP_WORD:17 [ lin16u_gen::min#3 ] ] Coalescing zero page register [ zp ZP_WORD:5 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 print_str::str#10 print_str::str#12 print_str::str#0 lin16u_gen::min#3 ] ] with [ zp ZP_WORD:54 [ lin16u_gen::$5 ] ] -Coalescing zero page register [ zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 ] ] with [ zp ZP_WORD:19 [ lin16u_gen::length#3 ] ] -Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 lin16u_gen::length#3 ] +Coalescing zero page register [ zp ZP_WORD:9 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 ] ] with [ zp ZP_WORD:19 [ lin16u_gen::length#3 ] ] +Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 lin16u_gen::length#3 ] Allocated (was zp ZP_DWORD:21) zp ZP_DWORD:9 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] Allocated (was zp ZP_WORD:25) zp ZP_WORD:13 [ lin16u_gen::lintab#4 lin16u_gen::lintab#3 lin16u_gen::lintab#5 ] Allocated (was zp ZP_WORD:29) zp ZP_WORD:15 [ divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 ] @@ -5707,7 +5719,7 @@ main: { b1: //SEG79 [27] (byte) print_byte::b#2 ← (byte) main::i#10 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ) -- vbuxx=vbuz1 ldx i - //SEG80 [28] (byte*~) print_char_cursor#90 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG80 [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -5715,7 +5727,7 @@ main: { //SEG81 [29] call print_byte param-assignment [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ( main:2 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ) //SEG82 [72] phi from main::@1 to print_byte [phi:main::@1->print_byte] print_byte_from_b1: - //SEG83 [72] phi (byte*) print_char_cursor#81 = (byte*~) print_char_cursor#90 [phi:main::@1->print_byte#0] -- register_copy + //SEG83 [72] phi (byte*) print_char_cursor#81 = (byte*~) print_char_cursor#91 [phi:main::@1->print_byte#0] -- register_copy //SEG84 [72] phi (byte) print_byte::b#3 = (byte) print_byte::b#2 [phi:main::@1->print_byte#1] -- register_copy jsr print_byte //SEG85 [30] phi from main::@1 to main::@14 [phi:main::@1->main::@14] @@ -5830,7 +5842,7 @@ main: { jmp b2 //SEG126 main::@2 b2: - //SEG127 [46] (byte*~) print_char_cursor#99 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#99 ] ( main:2 [ print_line_cursor#1 print_char_cursor#99 ] ) -- pbuz1=pbuz2 + //SEG127 [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -5838,7 +5850,7 @@ main: { //SEG128 [47] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2 [ print_line_cursor#1 print_char_cursor#2 ] ) //SEG129 [84] phi from main::@2 to print_str [phi:main::@2->print_str] print_str_from_b2: - //SEG130 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#99 [phi:main::@2->print_str#0] -- register_copy + //SEG130 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#100 [phi:main::@2->print_str#0] -- register_copy //SEG131 [84] phi (byte*) print_str::str#12 = (const string) main::str6 [phi:main::@2->print_str#1] -- pbuz1=pbuc1 lda #print_char] print_char_from_print_byte: @@ -6030,9 +6042,9 @@ print_byte: { //SEG196 [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG197 [77] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG197 [77] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG198 [78] call print_char param-assignment [ print_char_cursor#11 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] ) //SEG199 [80] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -6044,7 +6056,6 @@ print_byte: { breturn: //SEG203 [79] return [ print_char_cursor#11 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] ) rts - hextab: .text "0123456789abcdef" } //SEG204 print_char print_char: { @@ -6418,6 +6429,7 @@ divr16u: { //SEG309 [136] return [ divr16u::return#0 rem16u#1 ] ( main:2::lin16u_gen:5::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:5::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b23 @@ -6748,8 +6760,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#1 reg byte x 4.0 (byte) print_byte::b#2 reg byte x 11.0 (byte) print_byte::b#3 reg byte x 4.75 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -6758,19 +6768,21 @@ FINAL SYMBOL TABLE (byte) print_char::ch#2 reg byte a 6.0 (byte*) print_char_cursor (byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:7 101.0 +(byte*~) print_char_cursor#100 print_char_cursor zp ZP_WORD:7 4.0 (byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:7 4.228571428571427 (byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:7 12.791666666666664 (byte*) print_char_cursor#50 print_char_cursor zp ZP_WORD:7 4.0 (byte*) print_char_cursor#81 print_char_cursor zp ZP_WORD:7 5.666666666666667 (byte*) print_char_cursor#86 print_char_cursor zp ZP_WORD:7 45.0 -(byte*~) print_char_cursor#90 print_char_cursor zp ZP_WORD:7 22.0 -(byte*~) print_char_cursor#99 print_char_cursor zp ZP_WORD:7 4.0 +(byte*~) print_char_cursor#91 print_char_cursor zp ZP_WORD:7 22.0 (void()) print_cls() (label) print_cls::@1 (label) print_cls::@return (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:3 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:3 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 8.891891891891891 (byte*) print_line_cursor#11 print_line_cursor zp ZP_WORD:3 204.0 @@ -6803,7 +6815,7 @@ zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 pri zp ZP_WORD:5 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 print_str::str#10 print_str::str#12 print_str::str#0 lin16u_gen::min#3 lin16u_gen::$5 ] reg byte x [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -zp ZP_WORD:7 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 lin16u_gen::length#3 ] +zp ZP_WORD:7 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 lin16u_gen::length#3 ] zp ZP_DWORD:9 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] zp ZP_WORD:13 [ lin16u_gen::lintab#4 lin16u_gen::lintab#3 lin16u_gen::lintab#5 ] zp ZP_WORD:15 [ divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 ] @@ -7003,14 +7015,14 @@ main: { b1: //SEG79 [27] (byte) print_byte::b#2 ← (byte) main::i#10 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_line_cursor#1 ] ) -- vbuxx=vbuz1 ldx i - //SEG80 [28] (byte*~) print_char_cursor#90 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#90 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG80 [28] (byte*~) print_char_cursor#91 ← (byte*) print_line_cursor#1 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ( main:2 [ main::i#10 print_byte::b#2 print_char_cursor#91 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG81 [29] call print_byte param-assignment [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ( main:2 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] ) //SEG82 [72] phi from main::@1 to print_byte [phi:main::@1->print_byte] - //SEG83 [72] phi (byte*) print_char_cursor#81 = (byte*~) print_char_cursor#90 [phi:main::@1->print_byte#0] -- register_copy + //SEG83 [72] phi (byte*) print_char_cursor#81 = (byte*~) print_char_cursor#91 [phi:main::@1->print_byte#0] -- register_copy //SEG84 [72] phi (byte) print_byte::b#3 = (byte) print_byte::b#2 [phi:main::@1->print_byte#1] -- register_copy jsr print_byte //SEG85 [30] phi from main::@1 to main::@14 [phi:main::@1->main::@14] @@ -7095,14 +7107,14 @@ main: { cmp #$14*2 bcc b1 //SEG126 main::@2 - //SEG127 [46] (byte*~) print_char_cursor#99 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#99 ] ( main:2 [ print_line_cursor#1 print_char_cursor#99 ] ) -- pbuz1=pbuz2 + //SEG127 [46] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#100 ] ( main:2 [ print_line_cursor#1 print_char_cursor#100 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG128 [47] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2 [ print_line_cursor#1 print_char_cursor#2 ] ) //SEG129 [84] phi from main::@2 to print_str [phi:main::@2->print_str] - //SEG130 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#99 [phi:main::@2->print_str#0] -- register_copy + //SEG130 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#100 [phi:main::@2->print_str#0] -- register_copy //SEG131 [84] phi (byte*) print_str::str#12 = (const string) main::str6 [phi:main::@2->print_str#1] -- pbuz1=pbuc1 lda #print_char] //SEG193 [80] phi (byte*) print_char_cursor#50 = (byte*) print_char_cursor#81 [phi:print_byte->print_char#0] -- register_copy @@ -7254,9 +7266,9 @@ print_byte: { //SEG196 [76] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#11 print_byte::$2 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_byte::$2 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_byte::$2 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG197 [77] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG197 [77] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 print_char::ch#1 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG198 [78] call print_char param-assignment [ print_char_cursor#11 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] ) //SEG199 [80] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG200 [80] phi (byte*) print_char_cursor#50 = (byte*) print_char_cursor#11 [phi:print_byte::@1->print_char#0] -- register_copy @@ -7265,7 +7277,6 @@ print_byte: { //SEG202 print_byte::@return //SEG203 [79] return [ print_char_cursor#11 ] ( main:2::print_byte:29 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:15::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:19::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:23::print_byte:68 [ print_word::w#10 print_char_cursor#11 ] main:2::print_word:33::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:37::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:41::print_byte:68 [ main::i#10 print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:49::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:53::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:57::print_byte:68 [ print_line_cursor#1 print_word::w#10 print_char_cursor#11 ] main:2::print_word:15::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:19::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:23::print_byte:70 [ print_char_cursor#11 ] main:2::print_word:33::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:37::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:41::print_byte:70 [ main::i#10 print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:49::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:53::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] main:2::print_word:57::print_byte:70 [ print_line_cursor#1 print_char_cursor#11 ] ) rts - hextab: .text "0123456789abcdef" } //SEG204 print_char print_char: { @@ -7590,4 +7601,5 @@ divr16u: { //SEG309 [136] return [ divr16u::return#0 rem16u#1 ] ( main:2::lin16u_gen:5::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:101 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:5::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:7::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:9::divr16u:106 [ lin16u_gen::min#3 lin16u_gen::length#3 lin16u_gen::lintab#5 lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/linegen.sym b/src/test/java/dk/camelot64/kickc/test/ref/linegen.sym index 1e2ef031c..a3a5419b6 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/linegen.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/linegen.sym @@ -127,8 +127,6 @@ (byte) print_byte::b#1 reg byte x 4.0 (byte) print_byte::b#2 reg byte x 11.0 (byte) print_byte::b#3 reg byte x 4.75 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -137,19 +135,21 @@ (byte) print_char::ch#2 reg byte a 6.0 (byte*) print_char_cursor (byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:7 101.0 +(byte*~) print_char_cursor#100 print_char_cursor zp ZP_WORD:7 4.0 (byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:7 4.228571428571427 (byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:7 12.791666666666664 (byte*) print_char_cursor#50 print_char_cursor zp ZP_WORD:7 4.0 (byte*) print_char_cursor#81 print_char_cursor zp ZP_WORD:7 5.666666666666667 (byte*) print_char_cursor#86 print_char_cursor zp ZP_WORD:7 45.0 -(byte*~) print_char_cursor#90 print_char_cursor zp ZP_WORD:7 22.0 -(byte*~) print_char_cursor#99 print_char_cursor zp ZP_WORD:7 4.0 +(byte*~) print_char_cursor#91 print_char_cursor zp ZP_WORD:7 22.0 (void()) print_cls() (label) print_cls::@1 (label) print_cls::@return (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:3 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:3 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 8.891891891891891 (byte*) print_line_cursor#11 print_line_cursor zp ZP_WORD:3 204.0 @@ -182,7 +182,7 @@ zp ZP_WORD:3 [ print_line_cursor#11 print_line_cursor#21 print_line_cursor#1 pri zp ZP_WORD:5 [ print_word::w#10 print_word::w#3 print_word::w#4 print_word::w#5 print_str::str#10 print_str::str#12 print_str::str#0 lin16u_gen::min#3 lin16u_gen::$5 ] reg byte x [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -zp ZP_WORD:7 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#90 print_char_cursor#2 print_char_cursor#11 print_char_cursor#99 print_char_cursor#1 lin16u_gen::length#3 ] +zp ZP_WORD:7 [ print_char_cursor#86 print_char_cursor#50 print_char_cursor#81 print_char_cursor#91 print_char_cursor#2 print_char_cursor#11 print_char_cursor#100 print_char_cursor#1 lin16u_gen::length#3 ] zp ZP_DWORD:9 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ] zp ZP_WORD:13 [ lin16u_gen::lintab#4 lin16u_gen::lintab#3 lin16u_gen::lintab#5 ] zp ZP_WORD:15 [ divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/printmsg.log b/src/test/java/dk/camelot64/kickc/test/ref/printmsg.log index 02417ccb7..d153ec8fa 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/printmsg.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/printmsg.log @@ -102,12 +102,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -266,12 +267,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -335,7 +336,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -353,6 +353,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -632,13 +633,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -714,6 +715,7 @@ Removing unused procedure print_dword Removing unused procedure print_word Removing unused procedure print_byte Removing unused procedure print_char +Eliminating unused variable (byte[]) print_hextab and assignment [15] (byte[]) print_hextab ← (string) "0123456789abcdef" Eliminating unused variable - keeping the call (void~) main::$0 Eliminating unused variable - keeping the call (void~) main::$1 Eliminating unused variable - keeping the call (void~) main::$2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.asm b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.asm index b7ef7d0cf..cc6c324ea 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.asm @@ -112,15 +112,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char txa and #$f tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -204,3 +203,4 @@ divFACby10: { jsr $bafe rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.cfg b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.cfg index 9f50e7d8e..74e5e1933 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.cfg @@ -21,7 +21,7 @@ main::@4: scope:[main] from main::@3 to:main::@1 main::@1: scope:[main] from main::@17 main::@4 [10] (byte*) print_line_cursor#13 ← phi( main::@17/(byte*) print_line_cursor#1 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) - [10] (byte*) print_char_cursor#32 ← phi( main::@17/(byte*~) print_char_cursor#48 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) + [10] (byte*) print_char_cursor#32 ← phi( main::@17/(byte*~) print_char_cursor#49 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) [10] (byte) main::i#10 ← phi( main::@17/(byte) main::i#1 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) [11] (word) setFAC::w#1 ← ((word)) (byte) main::i#10 [ main::i#10 print_char_cursor#32 print_line_cursor#13 setFAC::w#1 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 setFAC::w#1 ] ) [12] call setFAC param-assignment [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) @@ -75,7 +75,7 @@ main::@return: scope:[main] from main::@16 [36] return [ ] ( main:2 [ ] ) to:@return main::@17: scope:[main] from main::@16 - [37] (byte*~) print_char_cursor#48 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ) + [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) to:main::@1 print_ln: scope:[print_ln] from main::@15 [38] phi() [ print_line_cursor#13 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) @@ -103,12 +103,12 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [48] (byte*) print_char_cursor#31 ← phi( print_word/(byte*) print_char_cursor#32 print_word::@1/(byte*) print_char_cursor#10 ) [ print_byte::b#2 print_char_cursor#31 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 ] ) [48] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 print_char_cursor#31 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 ] ) [49] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#31 print_byte::$0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_byte::$0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_byte::$0 ] ) - [50] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) + [50] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) [51] call print_char param-assignment [ print_char_cursor#10 print_byte::b#2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::b#2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::$2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::$2 ] ) - [53] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) + [53] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) [54] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.log b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.log index 23d4b5341..41fe078c6 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.log @@ -111,12 +111,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -554,12 +555,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -842,7 +843,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -860,6 +860,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -1183,13 +1184,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -1556,7 +1557,7 @@ Eliminating unused variable - keeping the call (void~) main::$10 Eliminating unused variable - keeping the call (void~) main::$11 Eliminating unused variable - keeping the call (void~) main::$13 Eliminating unused variable - keeping the call (void~) main::$14 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Removing empty block @1 Removing empty block @2 Removing empty block @3 @@ -1566,7 +1567,6 @@ Removing empty block @6 Removing empty block @7 Removing empty block @8 Removing empty block @9 -Removing empty block @10 Removing empty block @11 Removing empty block @12 Removing empty block @13 @@ -1630,7 +1630,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@14 + to:@10 print_ln: scope:[print_ln] from main::@15 (byte*) print_char_cursor#29 ← phi( main::@15/(byte*) print_char_cursor#11 ) (byte*) print_line_cursor#12 ← phi( main::@15/(byte*) print_line_cursor#13 ) @@ -1678,12 +1678,16 @@ print_word::@return: scope:[print_word] from print_word::@2 (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#19 return to:@return +@10: scope:[] from @begin + (byte*) print_line_cursor#17 ← phi( @begin/(byte*) print_line_cursor#0 ) + (byte*) print_char_cursor#36 ← phi( @begin/(byte*) print_char_cursor#0 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@14 print_byte: scope:[print_byte] from print_word print_word::@1 (byte*) print_char_cursor#31 ← phi( print_word/(byte*) print_char_cursor#30 print_word::@1/(byte*) print_char_cursor#3 ) (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#0 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#0 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -1691,7 +1695,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#20 ← phi( print_byte/(byte*) print_char_cursor#10 ) (byte*) print_char_cursor#6 ← (byte*) print_char_cursor#20 (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#1 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -1714,9 +1718,9 @@ print_char::@return: scope:[print_char] from print_char (byte*) print_char_cursor#10 ← (byte*) print_char_cursor#24 return to:@return -@14: scope:[] from @begin - (byte*) print_line_cursor#16 ← phi( @begin/(byte*) print_line_cursor#0 ) - (byte*) print_char_cursor#35 ← phi( @begin/(byte*) print_char_cursor#0 ) +@14: scope:[] from @10 + (byte*) print_line_cursor#16 ← phi( @10/(byte*) print_line_cursor#17 ) + (byte*) print_char_cursor#35 ← phi( @10/(byte*) print_char_cursor#36 ) (byte*) memLo#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 254 (byte*) memHi#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255 to:@42 @@ -1809,8 +1813,8 @@ divFACby10::@return: scope:[divFACby10] from divFACby10 return to:@return main: scope:[main] from @42 - (byte*) print_line_cursor#29 ← phi( @42/(byte*) print_line_cursor#14 ) - (byte*) print_char_cursor#47 ← phi( @42/(byte*) print_char_cursor#33 ) + (byte*) print_line_cursor#30 ← phi( @42/(byte*) print_line_cursor#14 ) + (byte*) print_char_cursor#48 ← phi( @42/(byte*) print_char_cursor#33 ) (byte[]) main::f_i#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte[]) main::f_127#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } (byte*) main::f_2pi#0 ← ((byte*)) (word/dword/signed dword) 58085 @@ -1818,24 +1822,24 @@ main: scope:[main] from @42 call setFAC param-assignment to:main::@3 main::@3: scope:[main] from main - (byte*) print_line_cursor#28 ← phi( main/(byte*) print_line_cursor#29 ) - (byte*) print_char_cursor#46 ← phi( main/(byte*) print_char_cursor#47 ) + (byte*) print_line_cursor#29 ← phi( main/(byte*) print_line_cursor#30 ) + (byte*) print_char_cursor#47 ← phi( main/(byte*) print_char_cursor#48 ) call divFACby10 param-assignment to:main::@4 main::@4: scope:[main] from main::@3 - (byte*) print_line_cursor#27 ← phi( main::@3/(byte*) print_line_cursor#28 ) - (byte*) print_char_cursor#45 ← phi( main::@3/(byte*) print_char_cursor#46 ) + (byte*) print_line_cursor#28 ← phi( main::@3/(byte*) print_line_cursor#29 ) + (byte*) print_char_cursor#46 ← phi( main::@3/(byte*) print_char_cursor#47 ) (byte*) setMEMtoFAC::mem#0 ← (byte[]) main::f_127#0 call setMEMtoFAC param-assignment to:main::@5 main::@5: scope:[main] from main::@4 - (byte*) print_line_cursor#26 ← phi( main::@4/(byte*) print_line_cursor#27 ) - (byte*) print_char_cursor#44 ← phi( main::@4/(byte*) print_char_cursor#45 ) + (byte*) print_line_cursor#27 ← phi( main::@4/(byte*) print_line_cursor#28 ) + (byte*) print_char_cursor#45 ← phi( main::@4/(byte*) print_char_cursor#46 ) (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:main::@1 main::@1: scope:[main] from main::@16 main::@5 - (byte*) print_line_cursor#25 ← phi( main::@16/(byte*) print_line_cursor#3 main::@5/(byte*) print_line_cursor#26 ) - (byte*) print_char_cursor#43 ← phi( main::@16/(byte*) print_char_cursor#12 main::@5/(byte*) print_char_cursor#44 ) + (byte*) print_line_cursor#26 ← phi( main::@16/(byte*) print_line_cursor#3 main::@5/(byte*) print_line_cursor#27 ) + (byte*) print_char_cursor#44 ← phi( main::@16/(byte*) print_char_cursor#12 main::@5/(byte*) print_char_cursor#45 ) (byte) main::i#2 ← phi( main::@16/(byte) main::i#1 main::@5/(byte) main::i#0 ) (word~) main::$3 ← ((word)) (byte) main::i#2 (word) setFAC::w#1 ← (word~) main::$3 @@ -1843,62 +1847,62 @@ main::@1: scope:[main] from main::@16 main::@5 to:main::@6 main::@6: scope:[main] from main::@1 (byte) main::i#13 ← phi( main::@1/(byte) main::i#2 ) - (byte*) print_line_cursor#24 ← phi( main::@1/(byte*) print_line_cursor#25 ) - (byte*) print_char_cursor#42 ← phi( main::@1/(byte*) print_char_cursor#43 ) + (byte*) print_line_cursor#25 ← phi( main::@1/(byte*) print_line_cursor#26 ) + (byte*) print_char_cursor#43 ← phi( main::@1/(byte*) print_char_cursor#44 ) (byte*) mulFACbyMEM::mem#0 ← (byte*) main::f_2pi#0 call mulFACbyMEM param-assignment to:main::@7 main::@7: scope:[main] from main::@6 (byte) main::i#12 ← phi( main::@6/(byte) main::i#13 ) - (byte*) print_line_cursor#23 ← phi( main::@6/(byte*) print_line_cursor#24 ) - (byte*) print_char_cursor#41 ← phi( main::@6/(byte*) print_char_cursor#42 ) + (byte*) print_line_cursor#24 ← phi( main::@6/(byte*) print_line_cursor#25 ) + (byte*) print_char_cursor#42 ← phi( main::@6/(byte*) print_char_cursor#43 ) (byte*) setMEMtoFAC::mem#1 ← (byte[]) main::f_i#0 call setMEMtoFAC param-assignment to:main::@8 main::@8: scope:[main] from main::@7 (byte) main::i#11 ← phi( main::@7/(byte) main::i#12 ) - (byte*) print_line_cursor#22 ← phi( main::@7/(byte*) print_line_cursor#23 ) - (byte*) print_char_cursor#40 ← phi( main::@7/(byte*) print_char_cursor#41 ) + (byte*) print_line_cursor#23 ← phi( main::@7/(byte*) print_line_cursor#24 ) + (byte*) print_char_cursor#41 ← phi( main::@7/(byte*) print_char_cursor#42 ) (word) setFAC::w#2 ← (byte/signed byte/word/signed word/dword/signed dword) 25 call setFAC param-assignment to:main::@9 main::@9: scope:[main] from main::@8 (byte) main::i#10 ← phi( main::@8/(byte) main::i#11 ) - (byte*) print_line_cursor#21 ← phi( main::@8/(byte*) print_line_cursor#22 ) - (byte*) print_char_cursor#39 ← phi( main::@8/(byte*) print_char_cursor#40 ) + (byte*) print_line_cursor#22 ← phi( main::@8/(byte*) print_line_cursor#23 ) + (byte*) print_char_cursor#40 ← phi( main::@8/(byte*) print_char_cursor#41 ) (byte*) divMEMbyFAC::mem#0 ← (byte[]) main::f_i#0 call divMEMbyFAC param-assignment to:main::@10 main::@10: scope:[main] from main::@9 (byte) main::i#9 ← phi( main::@9/(byte) main::i#10 ) - (byte*) print_line_cursor#20 ← phi( main::@9/(byte*) print_line_cursor#21 ) - (byte*) print_char_cursor#38 ← phi( main::@9/(byte*) print_char_cursor#39 ) + (byte*) print_line_cursor#21 ← phi( main::@9/(byte*) print_line_cursor#22 ) + (byte*) print_char_cursor#39 ← phi( main::@9/(byte*) print_char_cursor#40 ) call sinFAC param-assignment to:main::@11 main::@11: scope:[main] from main::@10 (byte) main::i#8 ← phi( main::@10/(byte) main::i#9 ) - (byte*) print_line_cursor#19 ← phi( main::@10/(byte*) print_line_cursor#20 ) - (byte*) print_char_cursor#37 ← phi( main::@10/(byte*) print_char_cursor#38 ) + (byte*) print_line_cursor#20 ← phi( main::@10/(byte*) print_line_cursor#21 ) + (byte*) print_char_cursor#38 ← phi( main::@10/(byte*) print_char_cursor#39 ) (byte*) mulFACbyMEM::mem#1 ← (byte[]) main::f_127#0 call mulFACbyMEM param-assignment to:main::@12 main::@12: scope:[main] from main::@11 (byte) main::i#7 ← phi( main::@11/(byte) main::i#8 ) - (byte*) print_line_cursor#18 ← phi( main::@11/(byte*) print_line_cursor#19 ) - (byte*) print_char_cursor#36 ← phi( main::@11/(byte*) print_char_cursor#37 ) + (byte*) print_line_cursor#19 ← phi( main::@11/(byte*) print_line_cursor#20 ) + (byte*) print_char_cursor#37 ← phi( main::@11/(byte*) print_char_cursor#38 ) (byte*) addMEMtoFAC::mem#0 ← (byte[]) main::f_127#0 call addMEMtoFAC param-assignment to:main::@13 main::@13: scope:[main] from main::@12 (byte) main::i#6 ← phi( main::@12/(byte) main::i#7 ) - (byte*) print_line_cursor#17 ← phi( main::@12/(byte*) print_line_cursor#18 ) - (byte*) print_char_cursor#34 ← phi( main::@12/(byte*) print_char_cursor#36 ) + (byte*) print_line_cursor#18 ← phi( main::@12/(byte*) print_line_cursor#19 ) + (byte*) print_char_cursor#34 ← phi( main::@12/(byte*) print_char_cursor#37 ) call getFAC param-assignment (word) getFAC::return#2 ← (word) getFAC::return#1 to:main::@14 main::@14: scope:[main] from main::@13 (byte) main::i#5 ← phi( main::@13/(byte) main::i#6 ) - (byte*) print_line_cursor#15 ← phi( main::@13/(byte*) print_line_cursor#17 ) + (byte*) print_line_cursor#15 ← phi( main::@13/(byte*) print_line_cursor#18 ) (byte*) print_char_cursor#32 ← phi( main::@13/(byte*) print_char_cursor#34 ) (word) getFAC::return#4 ← phi( main::@13/(word) getFAC::return#2 ) (word~) main::$12 ← (word) getFAC::return#4 @@ -1943,6 +1947,8 @@ main::@return: scope:[main] from main::@16 @end: scope:[] from @43 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" +(label) @10 (label) @14 (label) @42 (label) @43 @@ -2038,7 +2044,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -2047,8 +2052,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#1 (byte) print_byte::b#2 (byte) print_byte::b#3 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -2099,11 +2102,14 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#45 (byte*) print_char_cursor#46 (byte*) print_char_cursor#47 +(byte*) print_char_cursor#48 (byte*) print_char_cursor#5 (byte*) print_char_cursor#6 (byte*) print_char_cursor#7 (byte*) print_char_cursor#8 (byte*) print_char_cursor#9 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -2129,6 +2135,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#28 (byte*) print_line_cursor#29 (byte*) print_line_cursor#3 +(byte*) print_line_cursor#30 (byte*) print_line_cursor#4 (byte*) print_line_cursor#5 (byte*) print_line_cursor#6 @@ -2195,8 +2202,8 @@ Not aliassing across scopes: divMEMbyFAC::mem#1 divMEMbyFAC::mem#0 Not aliassing across scopes: prepareMEM::mem#3 divMEMbyFAC::mem#1 Not aliassing across scopes: mulFACbyMEM::mem#2 mulFACbyMEM::mem#1 Not aliassing across scopes: prepareMEM::mem#4 mulFACbyMEM::mem#2 -Not aliassing across scopes: print_char_cursor#47 print_char_cursor#33 -Not aliassing across scopes: print_line_cursor#29 print_line_cursor#14 +Not aliassing across scopes: print_char_cursor#48 print_char_cursor#33 +Not aliassing across scopes: print_line_cursor#30 print_line_cursor#14 Not aliassing across scopes: setMEMtoFAC::mem#0 main::f_127#0 Not aliassing across scopes: mulFACbyMEM::mem#0 main::f_2pi#0 Not aliassing across scopes: setMEMtoFAC::mem#1 main::f_i#0 @@ -2210,7 +2217,7 @@ Not aliassing across scopes: print_line_cursor#9 print_line_cursor#2 Not aliassing across scopes: print_char_cursor#26 print_char_cursor#2 Not aliassing across scopes: print_char_cursor#28 print_char_cursor#13 Not aliassing across scopes: print_line_cursor#11 print_line_cursor#4 -Alias (byte*) print_char_cursor#0 = (byte*) print_line_cursor#0 (byte*) print_screen#0 (byte*) print_char_cursor#35 (byte*) print_line_cursor#16 (byte*) print_char_cursor#33 (byte*) print_line_cursor#14 +Alias (byte*) print_char_cursor#0 = (byte*) print_line_cursor#0 (byte*) print_screen#0 (byte*) print_char_cursor#36 (byte*) print_line_cursor#17 (byte*) print_char_cursor#35 (byte*) print_line_cursor#16 (byte*) print_char_cursor#33 (byte*) print_line_cursor#14 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#7 (byte*) print_char_cursor#1 (byte*) print_line_cursor#8 (byte*) print_char_cursor#16 (byte*) print_line_cursor#2 (byte*) print_char_cursor#2 Alias (byte) print_byte::b#0 = (byte~) print_word::$0 Alias (word) print_word::w#1 = (word) print_word::w#2 @@ -2223,11 +2230,11 @@ Alias (byte*) print_char_cursor#21 = (byte*) print_char_cursor#7 (byte*) print_c Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#24 (byte*) print_char_cursor#9 Alias (byte*) prepareMEM::mem#0 = (byte*~) setFAC::$0 Alias (word) getFAC::return#0 = (word) getFAC::w#0 (word) getFAC::return#3 (word) getFAC::return#1 -Alias (byte*) print_char_cursor#44 = (byte*) print_char_cursor#46 (byte*) print_char_cursor#47 (byte*) print_char_cursor#45 -Alias (byte*) print_line_cursor#26 = (byte*) print_line_cursor#28 (byte*) print_line_cursor#29 (byte*) print_line_cursor#27 +Alias (byte*) print_char_cursor#45 = (byte*) print_char_cursor#47 (byte*) print_char_cursor#48 (byte*) print_char_cursor#46 +Alias (byte*) print_line_cursor#27 = (byte*) print_line_cursor#29 (byte*) print_line_cursor#30 (byte*) print_line_cursor#28 Alias (word) setFAC::w#1 = (word~) main::$3 -Alias (byte*) print_char_cursor#32 = (byte*) print_char_cursor#42 (byte*) print_char_cursor#43 (byte*) print_char_cursor#41 (byte*) print_char_cursor#40 (byte*) print_char_cursor#39 (byte*) print_char_cursor#38 (byte*) print_char_cursor#37 (byte*) print_char_cursor#36 (byte*) print_char_cursor#34 -Alias (byte*) print_line_cursor#13 = (byte*) print_line_cursor#24 (byte*) print_line_cursor#25 (byte*) print_line_cursor#23 (byte*) print_line_cursor#22 (byte*) print_line_cursor#21 (byte*) print_line_cursor#20 (byte*) print_line_cursor#19 (byte*) print_line_cursor#18 (byte*) print_line_cursor#17 (byte*) print_line_cursor#15 +Alias (byte*) print_char_cursor#32 = (byte*) print_char_cursor#43 (byte*) print_char_cursor#44 (byte*) print_char_cursor#42 (byte*) print_char_cursor#41 (byte*) print_char_cursor#40 (byte*) print_char_cursor#39 (byte*) print_char_cursor#38 (byte*) print_char_cursor#37 (byte*) print_char_cursor#34 +Alias (byte*) print_line_cursor#13 = (byte*) print_line_cursor#25 (byte*) print_line_cursor#26 (byte*) print_line_cursor#24 (byte*) print_line_cursor#23 (byte*) print_line_cursor#22 (byte*) print_line_cursor#21 (byte*) print_line_cursor#20 (byte*) print_line_cursor#19 (byte*) print_line_cursor#18 (byte*) print_line_cursor#15 Alias (byte) main::i#10 = (byte) main::i#13 (byte) main::i#2 (byte) main::i#12 (byte) main::i#11 (byte) main::i#9 (byte) main::i#8 (byte) main::i#7 (byte) main::i#6 (byte) main::i#5 (byte) main::i#4 (byte) main::i#3 Alias (word) getFAC::return#2 = (word) getFAC::return#4 Alias (word) print_word::w#0 = (word~) main::$12 @@ -2259,8 +2266,8 @@ Not aliassing across scopes: divMEMbyFAC::mem#1 divMEMbyFAC::mem#0 Not aliassing across scopes: prepareMEM::mem#3 divMEMbyFAC::mem#1 Not aliassing across scopes: mulFACbyMEM::mem#2 mulFACbyMEM::mem#1 Not aliassing across scopes: prepareMEM::mem#4 mulFACbyMEM::mem#2 -Not aliassing across scopes: print_char_cursor#44 print_char_cursor#0 -Not aliassing across scopes: print_line_cursor#26 print_char_cursor#0 +Not aliassing across scopes: print_char_cursor#45 print_char_cursor#0 +Not aliassing across scopes: print_line_cursor#27 print_char_cursor#0 Not aliassing across scopes: setMEMtoFAC::mem#0 main::f_127#0 Not aliassing across scopes: mulFACbyMEM::mem#0 main::f_2pi#0 Not aliassing across scopes: setMEMtoFAC::mem#1 main::f_i#0 @@ -2287,8 +2294,8 @@ Redundant Phi (byte*) print_char_cursor#20 (byte*) print_char_cursor#10 Redundant Phi (byte*) print_char_cursor#21 (byte*) print_char_cursor#10 Redundant Phi (byte*) addMEMtoFAC::mem#1 (byte*) addMEMtoFAC::mem#0 Redundant Phi (byte*) divMEMbyFAC::mem#1 (byte*) divMEMbyFAC::mem#0 -Redundant Phi (byte*) print_char_cursor#44 (byte*) print_char_cursor#0 -Redundant Phi (byte*) print_line_cursor#26 (byte*) print_char_cursor#0 +Redundant Phi (byte*) print_char_cursor#45 (byte*) print_char_cursor#0 +Redundant Phi (byte*) print_line_cursor#27 (byte*) print_char_cursor#0 Redundant Phi (byte*) print_char_cursor#11 (byte*) print_char_cursor#18 Redundant Phi (byte*) print_line_cursor#10 (byte*) print_line_cursor#1 Redundant Phi (byte*) print_char_cursor#12 (byte*) print_line_cursor#1 @@ -2299,7 +2306,7 @@ Simple Condition (boolean~) print_ln::$1 if((byte*) print_line_cursor#1<(byte*) Simple Condition (boolean~) main::$15 if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 26) goto main::@1 Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) print_char_cursor#0 = ((byte*))1024 -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const byte*) memLo#0 = ((byte*))254 Constant (const byte*) memHi#0 = ((byte*))255 Constant (const byte[]) main::f_i#0 = { 0, 0, 0, 0, 0 } @@ -2325,6 +2332,7 @@ Eliminating Noop Cast (byte*) prepareMEM::mem#0 ← ((byte*)) (word) setFAC::w#3 Succesful SSA optimization Pass2NopCastElimination Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_word::@2 +Culled Empty Block (label) @10 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) @14 Culled Empty Block (label) main::@5 @@ -2392,12 +2400,12 @@ Constant inlined addMEMtoFAC::mem#0 = (const byte[]) main::f_127#0 Constant inlined setFAC::w#2 = (byte/signed byte/word/signed word/dword/signed dword) 25 Constant inlined prepareMEM::mem#2 = (const byte[]) main::f_127#0 Constant inlined prepareMEM::mem#3 = (const byte[]) main::f_i#0 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 Constant inlined divMEMbyFAC::mem#0 = (const byte[]) main::f_i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined setMEMtoFAC::mem#1 = (const byte[]) main::f_i#0 Constant inlined mulFACbyMEM::mem#0 = (const byte*) main::f_2pi#0 -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Constant inlined setMEMtoFAC::mem#0 = (const byte[]) main::f_127#0 Constant inlined mulFACbyMEM::mem#1 = (const byte[]) main::f_127#0 Constant inlined setFAC::w#0 = (word/signed word/dword/signed dword) 1275 @@ -2462,18 +2470,18 @@ Propagating live ranges... Created 12 initial phi equivalence classes Coalesced [12] setFAC::w#4 ← setFAC::w#1 Coalesced [38] main::i#14 ← main::i#1 -Not coalescing [39] print_char_cursor#48 ← print_line_cursor#1 -Coalesced [40] print_line_cursor#30 ← print_line_cursor#1 -Coalesced [41] print_line_cursor#31 ← print_line_cursor#13 -Coalesced (already) [46] print_line_cursor#32 ← print_line_cursor#1 +Not coalescing [39] print_char_cursor#49 ← print_line_cursor#1 +Coalesced [40] print_line_cursor#31 ← print_line_cursor#1 +Coalesced [41] print_line_cursor#32 ← print_line_cursor#13 +Coalesced (already) [46] print_line_cursor#33 ← print_line_cursor#1 Coalesced [48] print_byte::b#4 ← print_byte::b#0 -Coalesced [49] print_char_cursor#49 ← print_char_cursor#32 +Coalesced [49] print_char_cursor#50 ← print_char_cursor#32 Coalesced [52] print_byte::b#5 ← print_byte::b#1 -Coalesced [53] print_char_cursor#50 ← print_char_cursor#10 +Coalesced [53] print_char_cursor#51 ← print_char_cursor#10 Coalesced [59] print_char::ch#3 ← print_char::ch#0 -Coalesced [60] print_char_cursor#51 ← print_char_cursor#31 +Coalesced [60] print_char_cursor#52 ← print_char_cursor#31 Coalesced [64] print_char::ch#4 ← print_char::ch#1 -Coalesced (already) [65] print_char_cursor#52 ← print_char_cursor#10 +Coalesced (already) [65] print_char_cursor#53 ← print_char_cursor#10 Coalesced [87] prepareMEM::mem#6 ← prepareMEM::mem#4 Coalesced [104] prepareMEM::mem#8 ← prepareMEM::mem#1 Coalesced down to 9 phi equivalence classes @@ -2547,7 +2555,7 @@ main::@4: scope:[main] from main::@3 to:main::@1 main::@1: scope:[main] from main::@17 main::@4 [10] (byte*) print_line_cursor#13 ← phi( main::@17/(byte*) print_line_cursor#1 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) - [10] (byte*) print_char_cursor#32 ← phi( main::@17/(byte*~) print_char_cursor#48 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) + [10] (byte*) print_char_cursor#32 ← phi( main::@17/(byte*~) print_char_cursor#49 main::@4/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) [10] (byte) main::i#10 ← phi( main::@17/(byte) main::i#1 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) [11] (word) setFAC::w#1 ← ((word)) (byte) main::i#10 [ main::i#10 print_char_cursor#32 print_line_cursor#13 setFAC::w#1 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 setFAC::w#1 ] ) [12] call setFAC param-assignment [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 ] ) @@ -2601,7 +2609,7 @@ main::@return: scope:[main] from main::@16 [36] return [ ] ( main:2 [ ] ) to:@return main::@17: scope:[main] from main::@16 - [37] (byte*~) print_char_cursor#48 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ) + [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) to:main::@1 print_ln: scope:[print_ln] from main::@15 [38] phi() [ print_line_cursor#13 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) @@ -2629,12 +2637,12 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [48] (byte*) print_char_cursor#31 ← phi( print_word/(byte*) print_char_cursor#32 print_word::@1/(byte*) print_char_cursor#10 ) [ print_byte::b#2 print_char_cursor#31 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 ] ) [48] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 print_char_cursor#31 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 ] ) [49] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#31 print_byte::$0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_byte::$0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_byte::$0 ] ) - [50] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) + [50] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) [51] call print_char param-assignment [ print_char_cursor#10 print_byte::b#2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::b#2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::$2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::$2 ] ) - [53] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) + [53] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) [54] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -2856,7 +2864,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#0 4.0 (byte) print_byte::b#1 4.0 (byte) print_byte::b#2 2.0 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#0 4.0 @@ -2867,7 +2874,8 @@ VARIABLE REGISTER WEIGHTS (byte*) print_char_cursor#23 4.0 (byte*) print_char_cursor#31 2.0 (byte*) print_char_cursor#32 0.5909090909090909 -(byte*~) print_char_cursor#48 22.0 +(byte*~) print_char_cursor#49 22.0 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_line_cursor#1 46.42857142857143 (byte*) print_line_cursor#13 0.5416666666666666 @@ -2891,7 +2899,7 @@ Initial phi equivalence classes [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -[ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] +[ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 ] [ mulFACbyMEM::mem#2 ] [ setFAC::w#3 setFAC::w#1 ] @@ -2908,7 +2916,7 @@ Complete equivalence classes [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -[ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] +[ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 ] [ mulFACbyMEM::mem#2 ] [ setFAC::w#3 setFAC::w#1 ] @@ -2924,7 +2932,7 @@ Allocated zp ZP_BYTE:2 [ main::i#10 main::i#1 ] Allocated zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] Allocated zp ZP_BYTE:5 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Allocated zp ZP_BYTE:6 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -Allocated zp ZP_WORD:7 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] +Allocated zp ZP_WORD:7 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] Allocated zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 ] Allocated zp ZP_WORD:11 [ mulFACbyMEM::mem#2 ] Allocated zp ZP_WORD:13 [ setFAC::w#3 setFAC::w#1 ] @@ -3153,7 +3161,7 @@ main: { rts //SEG77 main::@17 b17: - //SEG78 [37] (byte*~) print_char_cursor#48 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG78 [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -3161,7 +3169,7 @@ main: { //SEG79 [10] phi from main::@17 to main::@1 [phi:main::@17->main::@1] b1_from_b17: //SEG80 [10] phi (byte*) print_line_cursor#13 = (byte*) print_line_cursor#1 [phi:main::@17->main::@1#0] -- register_copy - //SEG81 [10] phi (byte*) print_char_cursor#32 = (byte*~) print_char_cursor#48 [phi:main::@17->main::@1#1] -- register_copy + //SEG81 [10] phi (byte*) print_char_cursor#32 = (byte*~) print_char_cursor#49 [phi:main::@17->main::@1#1] -- register_copy //SEG82 [10] phi (byte) main::i#10 = (byte) main::i#1 [phi:main::@17->main::@1#2] -- register_copy jmp b1 f_i: .byte 0, 0, 0, 0, 0 @@ -3241,9 +3249,9 @@ print_byte: { lsr lsr sta _0 - //SEG107 [50] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG107 [50] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG108 [51] call print_char param-assignment [ print_char_cursor#10 print_byte::b#2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::b#2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::b#2 ] ) //SEG109 [56] phi from print_byte to print_char [phi:print_byte->print_char] @@ -3258,9 +3266,9 @@ print_byte: { lda #$f and b sta _2 - //SEG114 [53] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG114 [53] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG115 [54] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) //SEG116 [56] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -3273,7 +3281,6 @@ print_byte: { breturn: //SEG120 [55] return [ print_char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG121 print_char print_char: { @@ -3481,13 +3488,14 @@ divFACby10: { //SEG188 [95] return [ ] ( main:2::divFACby10:7 [ ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Statement [11] (word) setFAC::w#1 ← ((word)) (byte) main::i#10 [ main::i#10 print_char_cursor#32 print_line_cursor#13 setFAC::w#1 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 setFAC::w#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#10 main::i#1 ] Statement [29] (word) getFAC::return#2 ← (word) getFAC::return#0 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#2 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#2 ] ) always clobbers reg byte a Statement [30] (word) print_word::w#0 ← (word) getFAC::return#2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 print_word::w#0 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 print_word::w#0 ] ) always clobbers reg byte a -Statement [37] (byte*~) print_char_cursor#48 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) always clobbers reg byte a Statement [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [41] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [43] (byte) print_byte::b#0 ← > (word) print_word::w#0 [ print_char_cursor#32 print_word::w#0 print_byte::b#0 ] ( main:2::print_word:31 [ main::i#10 print_line_cursor#13 print_char_cursor#32 print_word::w#0 print_byte::b#0 ] ) always clobbers reg byte a @@ -3510,7 +3518,7 @@ Statement [11] (word) setFAC::w#1 ← ((word)) (byte) main::i#10 [ main::i#10 pr Statement [29] (word) getFAC::return#2 ← (word) getFAC::return#0 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#2 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 getFAC::return#2 ] ) always clobbers reg byte a Statement [30] (word) print_word::w#0 ← (word) getFAC::return#2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 print_word::w#0 ] ( main:2 [ main::i#10 print_char_cursor#32 print_line_cursor#13 print_word::w#0 ] ) always clobbers reg byte a Statement [35] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 26) goto main::@17 [ main::i#1 print_line_cursor#1 ] ( main:2 [ main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [37] (byte*~) print_char_cursor#48 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) always clobbers reg byte a Statement [40] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#6 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [41] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 print_line_cursor#1 print_char_cursor#10 ] ) always clobbers reg byte a Statement [43] (byte) print_byte::b#0 ← > (word) print_word::w#0 [ print_char_cursor#32 print_word::w#0 print_byte::b#0 ] ( main:2::print_word:31 [ main::i#10 print_line_cursor#13 print_char_cursor#32 print_word::w#0 print_byte::b#0 ] ) always clobbers reg byte a @@ -3530,7 +3538,7 @@ Potential registers zp ZP_BYTE:2 [ main::i#10 main::i#1 ] : zp ZP_BYTE:2 , Potential registers zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] : zp ZP_WORD:3 , Potential registers zp ZP_BYTE:5 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] : zp ZP_BYTE:5 , reg byte a , reg byte x , Potential registers zp ZP_BYTE:6 [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] : zp ZP_BYTE:6 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:7 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] : zp ZP_WORD:7 , +Potential registers zp ZP_WORD:7 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] : zp ZP_WORD:7 , Potential registers zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 ] : zp ZP_WORD:9 , Potential registers zp ZP_WORD:11 [ mulFACbyMEM::mem#2 ] : zp ZP_WORD:11 , Potential registers zp ZP_WORD:13 [ setFAC::w#3 setFAC::w#1 ] : zp ZP_WORD:13 , @@ -3544,7 +3552,7 @@ Potential registers zp ZP_BYTE:25 [ prepareMEM::$0 ] : zp ZP_BYTE:25 , reg byte Potential registers zp ZP_BYTE:26 [ prepareMEM::$1 ] : zp ZP_BYTE:26 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [] 250.97: zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] 34.89: zp ZP_WORD:7 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] +Uplift Scope [] 250.97: zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] 34.89: zp ZP_WORD:7 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] Uplift Scope [setFAC] 33: zp ZP_WORD:13 [ setFAC::w#3 setFAC::w#1 ] Uplift Scope [getFAC] 22: zp ZP_WORD:17 [ getFAC::return#2 ] 4.33: zp ZP_WORD:23 [ getFAC::return#0 ] Uplift Scope [prepareMEM] 15.33: zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 ] 4: zp ZP_BYTE:25 [ prepareMEM::$0 ] 4: zp ZP_BYTE:26 [ prepareMEM::$1 ] @@ -3560,7 +3568,7 @@ Uplift Scope [divMEMbyFAC] Uplift Scope [sinFAC] Uplift Scope [divFACby10] -Uplifting [] best 6314 combination zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] zp ZP_WORD:7 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] +Uplifting [] best 6314 combination zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] zp ZP_WORD:7 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] Uplifting [setFAC] best 6314 combination zp ZP_WORD:13 [ setFAC::w#3 setFAC::w#1 ] Uplifting [getFAC] best 6314 combination zp ZP_WORD:17 [ getFAC::return#2 ] zp ZP_WORD:23 [ getFAC::return#0 ] Uplifting [prepareMEM] best 6302 combination zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 ] reg byte a [ prepareMEM::$0 ] reg byte a [ prepareMEM::$1 ] @@ -3583,7 +3591,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:9 [ prepareMEM Coalescing zero page register with common assignment [ zp ZP_WORD:17 [ getFAC::return#2 ] ] with [ zp ZP_WORD:19 [ print_word::w#0 ] ] - score: 1 Coalescing zero page register with common assignment [ zp ZP_WORD:17 [ getFAC::return#2 print_word::w#0 ] ] with [ zp ZP_WORD:23 [ getFAC::return#0 ] ] - score: 1 Coalescing zero page register [ zp ZP_WORD:9 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 ] ] with [ zp ZP_WORD:17 [ getFAC::return#2 print_word::w#0 getFAC::return#0 ] ] -Allocated (was zp ZP_WORD:7) zp ZP_WORD:5 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] +Allocated (was zp ZP_WORD:7) zp ZP_WORD:5 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 getFAC::return#2 print_word::w#0 getFAC::return#0 ] ASSEMBLER BEFORE OPTIMIZATION @@ -3796,7 +3804,7 @@ main: { rts //SEG77 main::@17 b17: - //SEG78 [37] (byte*~) print_char_cursor#48 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG78 [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -3804,7 +3812,7 @@ main: { //SEG79 [10] phi from main::@17 to main::@1 [phi:main::@17->main::@1] b1_from_b17: //SEG80 [10] phi (byte*) print_line_cursor#13 = (byte*) print_line_cursor#1 [phi:main::@17->main::@1#0] -- register_copy - //SEG81 [10] phi (byte*) print_char_cursor#32 = (byte*~) print_char_cursor#48 [phi:main::@17->main::@1#1] -- register_copy + //SEG81 [10] phi (byte*) print_char_cursor#32 = (byte*~) print_char_cursor#49 [phi:main::@17->main::@1#1] -- register_copy //SEG82 [10] phi (byte) main::i#10 = (byte) main::i#1 [phi:main::@17->main::@1#2] -- register_copy jmp b1 f_i: .byte 0, 0, 0, 0, 0 @@ -3880,9 +3888,9 @@ print_byte: { lsr lsr lsr - //SEG107 [50] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG107 [50] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG108 [51] call print_char param-assignment [ print_char_cursor#10 print_byte::b#2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::b#2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::b#2 ] ) //SEG109 [56] phi from print_byte to print_char [phi:print_byte->print_char] print_char_from_print_byte: @@ -3895,9 +3903,9 @@ print_byte: { //SEG113 [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::$2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG114 [53] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG114 [53] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG115 [54] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) //SEG116 [56] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -3909,7 +3917,6 @@ print_byte: { breturn: //SEG120 [55] return [ print_char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG121 print_char print_char: { @@ -4099,6 +4106,7 @@ divFACby10: { //SEG188 [95] return [ ] ( main:2::divFACby10:7 [ ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b42 @@ -4292,8 +4300,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#0 reg byte x 4.0 (byte) print_byte::b#1 reg byte x 4.0 (byte) print_byte::b#2 reg byte x 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -4305,7 +4311,9 @@ FINAL SYMBOL TABLE (byte*) print_char_cursor#23 print_char_cursor zp ZP_WORD:5 4.0 (byte*) print_char_cursor#31 print_char_cursor zp ZP_WORD:5 2.0 (byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:5 0.5909090909090909 -(byte*~) print_char_cursor#48 print_char_cursor zp ZP_WORD:5 22.0 +(byte*~) print_char_cursor#49 print_char_cursor zp ZP_WORD:5 22.0 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 46.42857142857143 (byte*) print_line_cursor#13 print_line_cursor zp ZP_WORD:3 0.5416666666666666 @@ -4337,7 +4345,7 @@ zp ZP_BYTE:2 [ main::i#10 main::i#1 ] zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -zp ZP_WORD:5 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] +zp ZP_WORD:5 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 getFAC::return#2 print_word::w#0 getFAC::return#0 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] @@ -4498,14 +4506,14 @@ main: { rts //SEG77 main::@17 b17: - //SEG78 [37] (byte*~) print_char_cursor#48 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#48 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG78 [37] (byte*~) print_char_cursor#49 ← (byte*) print_line_cursor#1 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ( main:2 [ main::i#1 print_char_cursor#49 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG79 [10] phi from main::@17 to main::@1 [phi:main::@17->main::@1] //SEG80 [10] phi (byte*) print_line_cursor#13 = (byte*) print_line_cursor#1 [phi:main::@17->main::@1#0] -- register_copy - //SEG81 [10] phi (byte*) print_char_cursor#32 = (byte*~) print_char_cursor#48 [phi:main::@17->main::@1#1] -- register_copy + //SEG81 [10] phi (byte*) print_char_cursor#32 = (byte*~) print_char_cursor#49 [phi:main::@17->main::@1#1] -- register_copy //SEG82 [10] phi (byte) main::i#10 = (byte) main::i#1 [phi:main::@17->main::@1#2] -- register_copy jmp b1 f_i: .byte 0, 0, 0, 0, 0 @@ -4570,9 +4578,9 @@ print_byte: { lsr lsr lsr - //SEG107 [50] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG107 [50] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_byte::b#2 print_char_cursor#31 print_char::ch#0 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG108 [51] call print_char param-assignment [ print_char_cursor#10 print_byte::b#2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::b#2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::b#2 ] ) //SEG109 [56] phi from print_byte to print_char [phi:print_byte->print_char] //SEG110 [56] phi (byte*) print_char_cursor#23 = (byte*) print_char_cursor#31 [phi:print_byte->print_char#0] -- register_copy @@ -4582,9 +4590,9 @@ print_byte: { //SEG113 [52] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_byte::$2 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG114 [53] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG114 [53] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG115 [54] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) //SEG116 [56] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG117 [56] phi (byte*) print_char_cursor#23 = (byte*) print_char_cursor#10 [phi:print_byte::@1->print_char#0] -- register_copy @@ -4593,7 +4601,6 @@ print_byte: { //SEG119 print_byte::@return //SEG120 [55] return [ print_char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 print_line_cursor#13 print_word::w#0 print_char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 print_line_cursor#13 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG121 print_char print_char: { @@ -4748,4 +4755,5 @@ divFACby10: { //SEG188 [95] return [ ] ( main:2::divFACby10:7 [ ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.sym b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.sym index 50d76a839..c7ddd55fe 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.sym @@ -70,8 +70,6 @@ (byte) print_byte::b#0 reg byte x 4.0 (byte) print_byte::b#1 reg byte x 4.0 (byte) print_byte::b#2 reg byte x 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -83,7 +81,9 @@ (byte*) print_char_cursor#23 print_char_cursor zp ZP_WORD:5 4.0 (byte*) print_char_cursor#31 print_char_cursor zp ZP_WORD:5 2.0 (byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:5 0.5909090909090909 -(byte*~) print_char_cursor#48 print_char_cursor zp ZP_WORD:5 22.0 +(byte*~) print_char_cursor#49 print_char_cursor zp ZP_WORD:5 22.0 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 46.42857142857143 (byte*) print_line_cursor#13 print_line_cursor zp ZP_WORD:3 0.5416666666666666 @@ -115,7 +115,7 @@ zp ZP_BYTE:2 [ main::i#10 main::i#1 ] zp ZP_WORD:3 [ print_line_cursor#6 print_line_cursor#13 print_line_cursor#1 ] reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ] -zp ZP_WORD:5 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#48 print_char_cursor#10 ] +zp ZP_WORD:5 [ print_char_cursor#23 print_char_cursor#31 print_char_cursor#32 print_char_cursor#49 print_char_cursor#10 ] zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#7 prepareMEM::mem#1 mulFACbyMEM::mem#2 setFAC::w#3 setFAC::w#1 setMEMtoFAC::mem#2 getFAC::return#2 print_word::w#0 getFAC::return#0 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log b/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log index 65167150e..e7c3b5246 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log @@ -677,12 +677,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -1073,12 +1074,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1651,7 +1652,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1669,6 +1669,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -2349,13 +2350,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @37: scope:[] from @36 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@38 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -2848,6 +2849,7 @@ Eliminating unused variable - keeping the call (void~) addMEMtoFAC::$0 Eliminating unused variable - keeping the call (void~) divMEMbyFAC::$0 Eliminating unused variable - keeping the call (void~) mulFACbyMEM::$0 Eliminating unused variable (byte*) print_char_cursor and assignment [101] (byte*) print_char_cursor ← (byte*) print_line_cursor +Eliminating unused variable (byte[]) print_hextab and assignment [102] (byte[]) print_hextab ← (string) "0123456789abcdef" Eliminating unused variable - keeping the call (void~) main::$0 Eliminating unused variable - keeping the call (void~) main::$2 Eliminating unused variable - keeping the call (void~) init::$0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.asm b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.asm index 88ee69a47..bec9e2a91 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.asm @@ -118,15 +118,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char txa and #$f tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -569,3 +568,4 @@ divr16u: { bne b1 rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.cfg b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.cfg index c75cc21a2..4f577d1f3 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.cfg @@ -91,12 +91,12 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [40] (byte*) print_char_cursor#46 ← phi( print_word/(byte*) print_char_cursor#43 print_word::@1/(byte*) print_char_cursor#12 ) [ print_byte::b#2 print_char_cursor#46 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 ] ) [40] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 print_char_cursor#46 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 ] ) [41] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ) - [42] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) + [42] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) [43] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::$2 ] ) - [45] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) + [45] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) [46] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.log index 1d1ca3276..2a9ecb06c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.log @@ -459,12 +459,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -1133,12 +1134,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1485,7 +1486,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1503,6 +1503,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -2596,13 +2597,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @28: scope:[] from @27 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@29 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -2720,7 +2721,7 @@ Eliminating unused variable - keeping the call (void~) main::$1 Eliminating unused variable - keeping the call (void~) main::$5 Eliminating unused variable - keeping the call (void~) main::$6 Eliminating unused variable - keeping the call (void~) main::$4 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) main::str " @" Creating constant string variable for inline (const string) main::str1 " @" Removing empty block @1 @@ -2760,7 +2761,6 @@ Removing empty block @24 Removing empty block @25 Removing empty block @26 Removing empty block @27 -Removing empty block @28 Removing empty block @29 Removing empty block @30 Removing empty block @31 @@ -2963,7 +2963,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 return to:@return @12: scope:[] from @2 - (word) rem16u#29 ← phi( @2/(word) rem16u#0 ) + (word) rem16u#31 ← phi( @2/(word) rem16u#0 ) (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 @@ -3167,11 +3167,11 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2 return to:@return @18: scope:[] from @12 - (word) rem16u#28 ← phi( @12/(word) rem16u#29 ) + (word) rem16u#29 ← phi( @12/(word) rem16u#31 ) (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@33 + to:@28 print_str: scope:[print_str] from main::@3 main::@7 (byte*) print_char_cursor#51 ← phi( main::@3/(byte*) print_char_cursor#49 main::@7/(byte*) print_char_cursor#17 ) (byte*) print_str::str#5 ← phi( main::@3/(byte*) print_str::str#2 main::@7/(byte*) print_str::str#1 ) @@ -3254,12 +3254,18 @@ print_word::@return: scope:[print_word] from print_word::@2 (byte*) print_char_cursor#8 ← (byte*) print_char_cursor#29 return to:@return +@28: scope:[] from @18 + (byte*) print_screen#7 ← phi( @18/(byte*) print_screen#0 ) + (byte*) print_char_cursor#55 ← phi( @18/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#15 ← phi( @18/(byte*) print_line_cursor#0 ) + (word) rem16u#28 ← phi( @18/(word) rem16u#29 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@33 print_byte: scope:[print_byte] from print_word print_word::@1 (byte*) print_char_cursor#46 ← phi( print_word/(byte*) print_char_cursor#45 print_word::@1/(byte*) print_char_cursor#6 ) (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#1 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -3267,7 +3273,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#30 ← phi( print_byte/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#30 (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#2 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -3336,7 +3342,7 @@ main::@5: scope:[main] from main call print_cls param-assignment to:main::@6 main::@6: scope:[main] from main::@5 - (word) rem16u#33 ← phi( main::@5/(word) rem16u#8 ) + (word) rem16u#34 ← phi( main::@5/(word) rem16u#8 ) (word) main::wavelength#6 ← phi( main::@5/(word) main::wavelength#8 ) (byte*) print_char_cursor#36 ← phi( main::@5/(byte*) print_char_cursor#15 ) (byte*) print_line_cursor#7 ← phi( main::@5/(byte*) print_line_cursor#2 ) @@ -3345,8 +3351,8 @@ main::@6: scope:[main] from main::@5 (signed word*) main::st1#0 ← (signed word[120]) main::sintab1#0 to:main::@1 main::@1: scope:[main] from main::@6 main::@8 - (byte*) print_line_cursor#16 ← phi( main::@6/(byte*) print_line_cursor#3 main::@8/(byte*) print_line_cursor#11 ) - (word) rem16u#31 ← phi( main::@6/(word) rem16u#33 main::@8/(word) rem16u#24 ) + (byte*) print_line_cursor#17 ← phi( main::@6/(byte*) print_line_cursor#3 main::@8/(byte*) print_line_cursor#11 ) + (word) rem16u#32 ← phi( main::@6/(word) rem16u#34 main::@8/(word) rem16u#24 ) (word) main::wavelength#4 ← phi( main::@6/(word) main::wavelength#6 main::@8/(word) main::wavelength#1 ) (byte*) print_char_cursor#54 ← phi( main::@6/(byte*) print_char_cursor#16 main::@8/(byte*) print_char_cursor#18 ) (signed word*) main::st1#2 ← phi( main::@6/(signed word*) main::st1#0 main::@8/(signed word*) main::st1#1 ) @@ -3356,8 +3362,8 @@ main::@1: scope:[main] from main::@6 main::@8 if((boolean~) main::$3) goto main::@2 to:main::@3 main::@2: scope:[main] from main::@1 main::@9 - (byte*) print_line_cursor#15 ← phi( main::@1/(byte*) print_line_cursor#16 main::@9/(byte*) print_line_cursor#17 ) - (word) rem16u#30 ← phi( main::@1/(word) rem16u#31 main::@9/(word) rem16u#32 ) + (byte*) print_line_cursor#16 ← phi( main::@1/(byte*) print_line_cursor#17 main::@9/(byte*) print_line_cursor#18 ) + (word) rem16u#30 ← phi( main::@1/(word) rem16u#32 main::@9/(word) rem16u#33 ) (word) main::wavelength#3 ← phi( main::@1/(word) main::wavelength#4 main::@9/(word) main::wavelength#5 ) (signed word*) main::st1#5 ← phi( main::@1/(signed word*) main::st1#2 main::@9/(signed word*) main::st1#6 ) (byte*) print_char_cursor#48 ← phi( main::@1/(byte*) print_char_cursor#54 main::@9/(byte*) print_char_cursor#19 ) @@ -3366,7 +3372,7 @@ main::@2: scope:[main] from main::@1 main::@9 call print_sword param-assignment to:main::@7 main::@7: scope:[main] from main::@2 - (byte*) print_line_cursor#14 ← phi( main::@2/(byte*) print_line_cursor#15 ) + (byte*) print_line_cursor#14 ← phi( main::@2/(byte*) print_line_cursor#16 ) (word) rem16u#27 ← phi( main::@2/(word) rem16u#30 ) (word) main::wavelength#2 ← phi( main::@2/(word) main::wavelength#3 ) (signed word*) main::st1#4 ← phi( main::@2/(signed word*) main::st1#5 ) @@ -3390,8 +3396,8 @@ main::@8: scope:[main] from main::@7 if((boolean~) main::$10) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 - (byte*) print_line_cursor#18 ← phi( main::@1/(byte*) print_line_cursor#16 ) - (word) rem16u#34 ← phi( main::@1/(word) rem16u#31 ) + (byte*) print_line_cursor#19 ← phi( main::@1/(byte*) print_line_cursor#17 ) + (word) rem16u#35 ← phi( main::@1/(word) rem16u#32 ) (word) main::wavelength#7 ← phi( main::@1/(word) main::wavelength#4 ) (signed word*) main::st1#7 ← phi( main::@1/(signed word*) main::st1#2 ) (signed word) main::sw#3 ← phi( main::@1/(signed word) main::sw#0 ) @@ -3400,8 +3406,8 @@ main::@3: scope:[main] from main::@1 call print_str param-assignment to:main::@9 main::@9: scope:[main] from main::@3 - (byte*) print_line_cursor#17 ← phi( main::@3/(byte*) print_line_cursor#18 ) - (word) rem16u#32 ← phi( main::@3/(word) rem16u#34 ) + (byte*) print_line_cursor#18 ← phi( main::@3/(byte*) print_line_cursor#19 ) + (word) rem16u#33 ← phi( main::@3/(word) rem16u#35 ) (word) main::wavelength#5 ← phi( main::@3/(word) main::wavelength#7 ) (signed word*) main::st1#6 ← phi( main::@3/(signed word*) main::st1#7 ) (signed word) main::sw#2 ← phi( main::@3/(signed word) main::sw#3 ) @@ -3417,11 +3423,11 @@ main::@return: scope:[main] from main::@8 (byte*) print_char_cursor#20 ← (byte*) print_char_cursor#40 return to:@return -@33: scope:[] from @18 - (byte*) print_screen#6 ← phi( @18/(byte*) print_screen#0 ) - (byte*) print_char_cursor#50 ← phi( @18/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#12 ← phi( @18/(byte*) print_line_cursor#0 ) - (word) rem16u#25 ← phi( @18/(word) rem16u#28 ) +@33: scope:[] from @28 + (byte*) print_screen#6 ← phi( @28/(byte*) print_screen#7 ) + (byte*) print_char_cursor#50 ← phi( @28/(byte*) print_char_cursor#55 ) + (byte*) print_line_cursor#12 ← phi( @28/(byte*) print_line_cursor#15 ) + (word) rem16u#25 ← phi( @28/(word) rem16u#28 ) call main param-assignment to:@34 @34: scope:[] from @33 @@ -3435,9 +3441,11 @@ main::@return: scope:[main] from main::@8 @end: scope:[] from @34 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" (label) @12 (label) @18 (label) @2 +(label) @28 (label) @33 (label) @34 (label) @begin @@ -3690,7 +3698,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -3699,8 +3706,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#1 (byte) print_byte::b#2 (byte) print_byte::b#3 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -3760,6 +3765,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#52 (byte*) print_char_cursor#53 (byte*) print_char_cursor#54 +(byte*) print_char_cursor#55 (byte*) print_char_cursor#6 (byte*) print_char_cursor#7 (byte*) print_char_cursor#8 @@ -3774,6 +3780,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -3786,6 +3794,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#16 (byte*) print_line_cursor#17 (byte*) print_line_cursor#18 +(byte*) print_line_cursor#19 (byte*) print_line_cursor#2 (byte*) print_line_cursor#3 (byte*) print_line_cursor#4 @@ -3802,6 +3811,7 @@ SYMBOL TABLE SSA (byte*) print_screen#4 (byte*) print_screen#5 (byte*) print_screen#6 +(byte*) print_screen#7 (void()) print_str((byte*) print_str::str) (boolean~) print_str::$0 (label) print_str::@1 @@ -3871,6 +3881,7 @@ SYMBOL TABLE SSA (word) rem16u#32 (word) rem16u#33 (word) rem16u#34 +(word) rem16u#35 (word) rem16u#4 (word) rem16u#5 (word) rem16u#6 @@ -4137,7 +4148,7 @@ Alias (dword) mul16u::res#2 = (dword) mul16u::res#5 (dword) mul16u::res#4 (dword Alias (word) mul16u::a#0 = (word~) mul16u::$5 Alias (dword) mul16u::mb#1 = (dword~) mul16u::$6 Alias (dword) mul16u::res#1 = (dword~) mul16u::$4 -Alias (word) rem16u#0 = (word) rem16u#29 (word) rem16u#28 (word) rem16u#25 +Alias (word) rem16u#0 = (word) rem16u#31 (word) rem16u#29 (word) rem16u#28 (word) rem16u#25 Alias (dword) div32u16u::return#2 = (dword) div32u16u::return#4 Alias (signed word*) sin16s_gen::sintab#4 = (signed word*) sin16s_gen::sintab#5 Alias (word) sin16s_gen::wavelength#1 = (word) sin16s_gen::wavelength#4 @@ -4179,7 +4190,7 @@ Alias (signed word) sin16s::sinx#1 = (signed word~) sin16s::$21 Alias (dword) mul16u::return#2 = (dword) mul16u::return#4 Alias (byte) mulu16_sel::select#5 = (byte) mulu16_sel::select#6 Alias (word) mulu16_sel::return#12 = (word) mulu16_sel::return#5 (word~) mulu16_sel::$2 (word) mulu16_sel::return#6 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#12 (byte*) print_char_cursor#50 (byte*) print_screen#6 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#15 (byte*) print_char_cursor#55 (byte*) print_screen#7 (byte*) print_line_cursor#12 (byte*) print_char_cursor#50 (byte*) print_screen#6 Alias (byte*) print_str::str#3 = (byte*) print_str::str#4 Alias (byte*) print_char_cursor#2 = (byte*) print_char_cursor#22 (byte*) print_char_cursor#42 (byte*) print_char_cursor#23 Alias (word) print_word::w#0 = (word~) print_sword::$4 @@ -4202,14 +4213,14 @@ Alias (byte*) print_screen#4 = (byte*) print_screen#5 Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#13 Alias (byte*) print_char_cursor#47 = (byte*) print_char_cursor#53 Alias (word) main::wavelength#0 = (word) main::wavelength#8 (word) main::wavelength#6 -Alias (word) rem16u#17 = (word) rem16u#8 (word) rem16u#33 +Alias (word) rem16u#17 = (word) rem16u#8 (word) rem16u#34 Alias (byte*) print_line_cursor#3 = (byte*) print_line_cursor#7 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#36 Alias (signed word[120]) main::sintab1#0 = (signed word*) main::st1#0 Alias (signed word*) main::st1#3 = (signed word*) main::st1#4 (signed word*) main::st1#5 Alias (word) main::wavelength#1 = (word) main::wavelength#2 (word) main::wavelength#3 Alias (word) rem16u#18 = (word) rem16u#27 (word) rem16u#30 (word) rem16u#24 (word) rem16u#9 -Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#14 (byte*) print_line_cursor#15 (byte*) print_line_cursor#8 (byte*) print_line_cursor#4 +Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#14 (byte*) print_line_cursor#16 (byte*) print_line_cursor#8 (byte*) print_line_cursor#4 Alias (byte*) print_char_cursor#17 = (byte*) print_char_cursor#37 Alias (byte*) print_char_cursor#18 = (byte*) print_char_cursor#38 (byte*) print_char_cursor#40 (byte*) print_char_cursor#20 Alias (signed word*) main::st1#1 = (signed word*~) main::$7 @@ -4217,8 +4228,8 @@ Alias (byte*) print_char_cursor#49 = (byte*) print_char_cursor#54 Alias (signed word) main::sw#0 = (signed word) main::sw#3 (signed word) main::sw#2 Alias (signed word*) main::st1#2 = (signed word*) main::st1#7 (signed word*) main::st1#6 Alias (word) main::wavelength#4 = (word) main::wavelength#7 (word) main::wavelength#5 -Alias (word) rem16u#31 = (word) rem16u#34 (word) rem16u#32 -Alias (byte*) print_line_cursor#16 = (byte*) print_line_cursor#18 (byte*) print_line_cursor#17 +Alias (word) rem16u#32 = (word) rem16u#35 (word) rem16u#33 +Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 (byte*) print_line_cursor#18 Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#39 Alias (word) rem16u#10 = (word) rem16u#19 Alias (byte*) print_line_cursor#5 = (byte*) print_line_cursor#9 @@ -4325,8 +4336,8 @@ Alias (byte) sin16s::isUpper#2 = (byte) sin16s::isUpper#8 Alias (signed word) main::sw#0 = (signed word) main::sw#1 Alias (signed word*) main::st1#2 = (signed word*) main::st1#3 Alias (word) main::wavelength#1 = (word) main::wavelength#4 -Alias (word) rem16u#18 = (word) rem16u#31 -Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#16 +Alias (word) rem16u#18 = (word) rem16u#32 +Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#17 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: divr16u::rem#10 divr16u::rem#3 Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1 @@ -4507,7 +4518,7 @@ Constant (const byte) mulu16_sel::select#3 = 0 Constant (const byte) mulu16_sel::select#4 = 0 Constant (const byte*) print_line_cursor#0 = ((byte*))1024 Constant (const byte) print_char::ch#0 = '-' -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const word) main::wavelength#0 = 120 Constant (const signed word[120]) main::sintab1#0 = { fill( 120, 0) } Constant (const string) print_str::str#1 = main::str @@ -4543,6 +4554,7 @@ Culled Empty Block (label) @12 Culled Empty Block (label) @18 Culled Empty Block (label) print_sword::@3 Culled Empty Block (label) print_word::@2 +Culled Empty Block (label) @28 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@6 @@ -4767,6 +4779,7 @@ Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed Constant inlined sin16s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0 Constant inlined sin16s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined mulu16_sel::select#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulu16_sel::select#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -4788,7 +4801,6 @@ Constant inlined sin16s_gen::x#0 = (byte/signed byte/word/signed word/dword/sign Constant inlined print_str::str#2 = (const string) main::str1 Constant inlined div32u16u::divisor#0 = (const word) main::wavelength#0 Constant inlined print_str::str#1 = (const string) main::str -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Constant inlined main::$9 = (const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined main::$8 = (const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2 Succesful SSA optimization Pass2ConstantInlining @@ -4869,29 +4881,29 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 38 initial phi equivalence classes -Coalesced [11] print_char_cursor#58 ← print_char_cursor#49 -Coalesced [13] print_char_cursor#57 ← print_char_cursor#2 -Coalesced [17] print_char_cursor#59 ← print_char_cursor#12 +Coalesced [11] print_char_cursor#59 ← print_char_cursor#49 +Coalesced [13] print_char_cursor#58 ← print_char_cursor#2 +Coalesced [17] print_char_cursor#60 ← print_char_cursor#12 Coalesced [22] main::st1#8 ← main::st1#1 -Coalesced [23] print_char_cursor#55 ← print_char_cursor#2 -Coalesced (already) [24] print_char_cursor#56 ← print_char_cursor#49 +Coalesced [23] print_char_cursor#56 ← print_char_cursor#2 +Coalesced (already) [24] print_char_cursor#57 ← print_char_cursor#49 Coalesced [26] print_str::str#6 ← print_str::str#5 -Coalesced (already) [27] print_char_cursor#60 ← print_char_cursor#51 +Coalesced (already) [27] print_char_cursor#61 ← print_char_cursor#51 Coalesced [34] print_str::str#7 ← print_str::str#0 -Coalesced [35] print_char_cursor#61 ← print_char_cursor#1 -Coalesced [37] print_char_cursor#68 ← print_char_cursor#48 +Coalesced [35] print_char_cursor#62 ← print_char_cursor#1 +Coalesced [37] print_char_cursor#69 ← print_char_cursor#48 Coalesced [40] print_sword::w#7 ← print_sword::w#0 -Coalesced [41] print_char_cursor#63 ← print_char_cursor#12 +Coalesced [41] print_char_cursor#64 ← print_char_cursor#12 Coalesced [45] print_sword::w#6 ← print_sword::w#1 -Coalesced (already) [46] print_char_cursor#62 ← print_char_cursor#48 +Coalesced (already) [46] print_char_cursor#63 ← print_char_cursor#48 Coalesced [48] print_byte::b#4 ← print_byte::b#0 -Coalesced [49] print_char_cursor#64 ← print_char_cursor#43 +Coalesced [49] print_char_cursor#65 ← print_char_cursor#43 Coalesced [52] print_byte::b#5 ← print_byte::b#1 -Coalesced (already) [53] print_char_cursor#65 ← print_char_cursor#12 +Coalesced (already) [53] print_char_cursor#66 ← print_char_cursor#12 Coalesced [59] print_char::ch#4 ← print_char::ch#1 -Coalesced (already) [60] print_char_cursor#66 ← print_char_cursor#46 +Coalesced (already) [60] print_char_cursor#67 ← print_char_cursor#46 Coalesced [64] print_char::ch#5 ← print_char::ch#2 -Coalesced (already) [65] print_char_cursor#67 ← print_char_cursor#12 +Coalesced (already) [65] print_char_cursor#68 ← print_char_cursor#12 Coalesced [78] print_cls::sc#3 ← print_cls::sc#1 Coalesced [94] sin16s_gen::x#4 ← sin16s_gen::x#1 Coalesced [95] sin16s_gen::sintab#6 ← sin16s_gen::sintab#0 @@ -5082,12 +5094,12 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [40] (byte*) print_char_cursor#46 ← phi( print_word/(byte*) print_char_cursor#43 print_word::@1/(byte*) print_char_cursor#12 ) [ print_byte::b#2 print_char_cursor#46 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 ] ) [40] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 print_char_cursor#46 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 ] ) [41] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ) - [42] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) + [42] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) [43] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::$2 ] ) - [45] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) + [45] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) [46] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -5534,7 +5546,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#0 4.0 (byte) print_byte::b#1 4.0 (byte) print_byte::b#2 2.0 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#1 4.0 @@ -5554,6 +5565,7 @@ VARIABLE REGISTER WEIGHTS (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_screen (void()) print_str((byte*) print_str::str) @@ -6079,9 +6091,9 @@ print_byte: { lsr lsr sta _0 - //SEG92 [42] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG92 [42] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG93 [43] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::b#2 ] ) //SEG94 [48] phi from print_byte to print_char [phi:print_byte->print_char] @@ -6096,9 +6108,9 @@ print_byte: { lda #$f and b sta _2 - //SEG99 [45] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG99 [45] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG100 [46] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 ] ) //SEG101 [48] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -6111,7 +6123,6 @@ print_byte: { breturn: //SEG105 [47] return [ print_char_cursor#12 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG106 print_char print_char: { @@ -7028,6 +7039,7 @@ divr16u: { //SEG322 [159] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Statement [9] (signed word) main::sw#0 ← *((signed word*) main::st1#2) [ main::st1#2 print_char_cursor#49 main::sw#0 ] ( main:2 [ main::st1#2 print_char_cursor#49 main::sw#0 ] ) always clobbers reg byte a reg byte y @@ -7599,9 +7611,9 @@ print_byte: { lsr lsr lsr - //SEG92 [42] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG92 [42] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG93 [43] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::b#2 ] ) //SEG94 [48] phi from print_byte to print_char [phi:print_byte->print_char] print_char_from_print_byte: @@ -7614,9 +7626,9 @@ print_byte: { //SEG98 [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG99 [45] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG99 [45] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG100 [46] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 ] ) //SEG101 [48] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -7628,7 +7640,6 @@ print_byte: { breturn: //SEG105 [47] return [ print_char_cursor#12 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG106 print_char print_char: { @@ -8410,6 +8421,7 @@ divr16u: { //SEG322 [159] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b33 @@ -8744,8 +8756,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#0 reg byte x 4.0 (byte) print_byte::b#1 reg byte x 4.0 (byte) print_byte::b#2 reg byte x 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -8768,6 +8778,8 @@ FINAL SYMBOL TABLE (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 (byte*) print_screen @@ -9097,9 +9109,9 @@ print_byte: { lsr lsr lsr - //SEG92 [42] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG92 [42] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG93 [43] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::b#2 ] ) //SEG94 [48] phi from print_byte to print_char [phi:print_byte->print_char] //SEG95 [48] phi (byte*) print_char_cursor#33 = (byte*) print_char_cursor#46 [phi:print_byte->print_char#0] -- register_copy @@ -9109,9 +9121,9 @@ print_byte: { //SEG98 [44] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG99 [45] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG99 [45] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG100 [46] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 ] ) //SEG101 [48] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG102 [48] phi (byte*) print_char_cursor#33 = (byte*) print_char_cursor#12 [phi:print_byte::@1->print_char#0] -- register_copy @@ -9120,7 +9132,6 @@ print_byte: { //SEG104 print_byte::@return //SEG105 [47] return [ print_char_cursor#12 ] ( main:2::print_sword:15::print_word:33::print_byte:36 [ main::st1#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:15::print_word:33::print_byte:38 [ main::st1#2 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG106 print_char print_char: { @@ -9804,4 +9815,5 @@ divr16u: { //SEG322 [159] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen:5::div32u16u:59::divr16u:133 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen:5::div32u16u:59::divr16u:137 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.sym b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.sym index 530b27d29..74c42acb6 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.sym @@ -135,8 +135,6 @@ (byte) print_byte::b#0 reg byte x 4.0 (byte) print_byte::b#1 reg byte x 4.0 (byte) print_byte::b#2 reg byte x 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -159,6 +157,8 @@ (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 (byte*) print_screen diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.asm b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.asm index 850738b5c..583819a06 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.asm @@ -135,15 +135,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char lda #$f and b tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -810,3 +809,4 @@ sin16s: { b3: rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.cfg b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.cfg index 440478310..180fc3628 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.cfg @@ -99,12 +99,12 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [44] (byte*) print_char_cursor#46 ← phi( print_word/(byte*) print_char_cursor#43 print_word::@1/(byte*) print_char_cursor#12 ) [ print_byte::b#2 print_char_cursor#46 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 ] ) [44] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 print_char_cursor#46 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 ] ) [45] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ) - [46] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) + [46] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) [47] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::$2 ] ) - [49] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) + [49] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) [50] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.log index 77ee1b282..45991e93a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.log @@ -523,12 +523,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -1265,12 +1266,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1627,7 +1628,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1645,6 +1645,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -2877,13 +2878,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @30: scope:[] from @29 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@31 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -3006,7 +3007,7 @@ Eliminating unused variable - keeping the call (void~) main::$2 Eliminating unused variable - keeping the call (void~) main::$7 Eliminating unused variable - keeping the call (void~) main::$8 Eliminating unused variable - keeping the call (void~) main::$6 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) main::str " @" Creating constant string variable for inline (const string) main::str1 " @" Removing empty block @1 @@ -3050,7 +3051,6 @@ Removing empty block @26 Removing empty block @27 Removing empty block @28 Removing empty block @29 -Removing empty block @30 Removing empty block @31 Removing empty block @32 Removing empty block @33 @@ -3254,7 +3254,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 return to:@return @12: scope:[] from @2 - (word) rem16u#38 ← phi( @2/(word) rem16u#0 ) + (word) rem16u#40 ← phi( @2/(word) rem16u#0 ) (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 @@ -3636,11 +3636,11 @@ sin16sb::@return: scope:[sin16sb] from sin16sb::@3 return to:@return @20: scope:[] from @12 - (word) rem16u#37 ← phi( @12/(word) rem16u#38 ) + (word) rem16u#38 ← phi( @12/(word) rem16u#40 ) (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@35 + to:@30 print_str: scope:[print_str] from main::@3 main::@8 (byte*) print_char_cursor#51 ← phi( main::@3/(byte*) print_char_cursor#49 main::@8/(byte*) print_char_cursor#17 ) (byte*) print_str::str#5 ← phi( main::@3/(byte*) print_str::str#2 main::@8/(byte*) print_str::str#1 ) @@ -3723,12 +3723,18 @@ print_word::@return: scope:[print_word] from print_word::@2 (byte*) print_char_cursor#8 ← (byte*) print_char_cursor#29 return to:@return +@30: scope:[] from @20 + (byte*) print_screen#8 ← phi( @20/(byte*) print_screen#0 ) + (byte*) print_char_cursor#55 ← phi( @20/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#15 ← phi( @20/(byte*) print_line_cursor#0 ) + (word) rem16u#37 ← phi( @20/(word) rem16u#38 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@35 print_byte: scope:[print_byte] from print_word print_word::@1 (byte*) print_char_cursor#46 ← phi( print_word/(byte*) print_char_cursor#45 print_word::@1/(byte*) print_char_cursor#6 ) (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#1 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -3736,7 +3742,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#30 ← phi( print_byte/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#30 (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#2 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -3785,8 +3791,8 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 return to:@return main: scope:[main] from @35 - (byte*) print_char_cursor#55 ← phi( @35/(byte*) print_char_cursor#50 ) - (byte*) print_line_cursor#15 ← phi( @35/(byte*) print_line_cursor#12 ) + (byte*) print_char_cursor#56 ← phi( @35/(byte*) print_char_cursor#50 ) + (byte*) print_line_cursor#16 ← phi( @35/(byte*) print_line_cursor#12 ) (byte*) print_screen#6 ← phi( @35/(byte*) print_screen#7 ) (word) rem16u#31 ← phi( @35/(word) rem16u#33 ) (word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) 120 @@ -3797,8 +3803,8 @@ main: scope:[main] from @35 call sin16s_gen param-assignment to:main::@5 main::@5: scope:[main] from main - (byte*) print_char_cursor#53 ← phi( main/(byte*) print_char_cursor#55 ) - (byte*) print_line_cursor#13 ← phi( main/(byte*) print_line_cursor#15 ) + (byte*) print_char_cursor#53 ← phi( main/(byte*) print_char_cursor#56 ) + (byte*) print_line_cursor#13 ← phi( main/(byte*) print_line_cursor#16 ) (byte*) print_screen#5 ← phi( main/(byte*) print_screen#6 ) (word) main::wavelength#1 ← phi( main/(word) main::wavelength#0 ) (word) rem16u#22 ← phi( main/(word) rem16u#7 ) @@ -3816,7 +3822,7 @@ main::@6: scope:[main] from main::@5 call print_cls param-assignment to:main::@7 main::@7: scope:[main] from main::@6 - (word) rem16u#42 ← phi( main::@6/(word) rem16u#11 ) + (word) rem16u#43 ← phi( main::@6/(word) rem16u#11 ) (byte*) print_char_cursor#36 ← phi( main::@6/(byte*) print_char_cursor#15 ) (byte*) print_line_cursor#7 ← phi( main::@6/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#3 ← (byte*) print_line_cursor#7 @@ -3826,8 +3832,8 @@ main::@7: scope:[main] from main::@6 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main::@7 main::@9 - (byte*) print_line_cursor#17 ← phi( main::@7/(byte*) print_line_cursor#3 main::@9/(byte*) print_line_cursor#11 ) - (word) rem16u#40 ← phi( main::@7/(word) rem16u#42 main::@9/(word) rem16u#32 ) + (byte*) print_line_cursor#18 ← phi( main::@7/(byte*) print_line_cursor#3 main::@9/(byte*) print_line_cursor#11 ) + (word) rem16u#41 ← phi( main::@7/(word) rem16u#43 main::@9/(word) rem16u#32 ) (byte) main::i#5 ← phi( main::@7/(byte) main::i#0 main::@9/(byte) main::i#1 ) (byte*) print_char_cursor#54 ← phi( main::@7/(byte*) print_char_cursor#16 main::@9/(byte*) print_char_cursor#18 ) (signed word*) main::st2#2 ← phi( main::@7/(signed word*) main::st2#0 main::@9/(signed word*) main::st2#1 ) @@ -3839,8 +3845,8 @@ main::@1: scope:[main] from main::@7 main::@9 if((boolean~) main::$5) goto main::@2 to:main::@3 main::@2: scope:[main] from main::@1 main::@10 - (byte*) print_line_cursor#16 ← phi( main::@1/(byte*) print_line_cursor#17 main::@10/(byte*) print_line_cursor#18 ) - (word) rem16u#39 ← phi( main::@1/(word) rem16u#40 main::@10/(word) rem16u#41 ) + (byte*) print_line_cursor#17 ← phi( main::@1/(byte*) print_line_cursor#18 main::@10/(byte*) print_line_cursor#19 ) + (word) rem16u#39 ← phi( main::@1/(word) rem16u#41 main::@10/(word) rem16u#42 ) (byte) main::i#4 ← phi( main::@1/(byte) main::i#5 main::@10/(byte) main::i#6 ) (signed word*) main::st2#5 ← phi( main::@1/(signed word*) main::st2#2 main::@10/(signed word*) main::st2#6 ) (signed word*) main::st1#5 ← phi( main::@1/(signed word*) main::st1#2 main::@10/(signed word*) main::st1#6 ) @@ -3850,7 +3856,7 @@ main::@2: scope:[main] from main::@1 main::@10 call print_sword param-assignment to:main::@8 main::@8: scope:[main] from main::@2 - (byte*) print_line_cursor#14 ← phi( main::@2/(byte*) print_line_cursor#16 ) + (byte*) print_line_cursor#14 ← phi( main::@2/(byte*) print_line_cursor#17 ) (word) rem16u#36 ← phi( main::@2/(word) rem16u#39 ) (byte) main::i#3 ← phi( main::@2/(byte) main::i#4 ) (signed word*) main::st2#4 ← phi( main::@2/(signed word*) main::st2#5 ) @@ -3877,8 +3883,8 @@ main::@9: scope:[main] from main::@8 if((boolean~) main::$11) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 - (byte*) print_line_cursor#19 ← phi( main::@1/(byte*) print_line_cursor#17 ) - (word) rem16u#43 ← phi( main::@1/(word) rem16u#40 ) + (byte*) print_line_cursor#20 ← phi( main::@1/(byte*) print_line_cursor#18 ) + (word) rem16u#44 ← phi( main::@1/(word) rem16u#41 ) (byte) main::i#7 ← phi( main::@1/(byte) main::i#5 ) (signed word*) main::st2#7 ← phi( main::@1/(signed word*) main::st2#2 ) (signed word*) main::st1#7 ← phi( main::@1/(signed word*) main::st1#2 ) @@ -3888,8 +3894,8 @@ main::@3: scope:[main] from main::@1 call print_str param-assignment to:main::@10 main::@10: scope:[main] from main::@3 - (byte*) print_line_cursor#18 ← phi( main::@3/(byte*) print_line_cursor#19 ) - (word) rem16u#41 ← phi( main::@3/(word) rem16u#43 ) + (byte*) print_line_cursor#19 ← phi( main::@3/(byte*) print_line_cursor#20 ) + (word) rem16u#42 ← phi( main::@3/(word) rem16u#44 ) (byte) main::i#6 ← phi( main::@3/(byte) main::i#7 ) (signed word*) main::st2#6 ← phi( main::@3/(signed word*) main::st2#7 ) (signed word*) main::st1#6 ← phi( main::@3/(signed word*) main::st1#7 ) @@ -3906,11 +3912,11 @@ main::@return: scope:[main] from main::@9 (byte*) print_char_cursor#20 ← (byte*) print_char_cursor#40 return to:@return -@35: scope:[] from @20 - (byte*) print_screen#7 ← phi( @20/(byte*) print_screen#0 ) - (byte*) print_char_cursor#50 ← phi( @20/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#12 ← phi( @20/(byte*) print_line_cursor#0 ) - (word) rem16u#33 ← phi( @20/(word) rem16u#37 ) +@35: scope:[] from @30 + (byte*) print_screen#7 ← phi( @30/(byte*) print_screen#8 ) + (byte*) print_char_cursor#50 ← phi( @30/(byte*) print_char_cursor#55 ) + (byte*) print_line_cursor#12 ← phi( @30/(byte*) print_line_cursor#15 ) + (word) rem16u#33 ← phi( @30/(word) rem16u#37 ) call main param-assignment to:@36 @36: scope:[] from @35 @@ -3924,9 +3930,11 @@ main::@return: scope:[main] from main::@9 @end: scope:[] from @36 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" (label) @12 (label) @2 (label) @20 +(label) @30 (label) @35 (label) @36 (label) @begin @@ -4226,7 +4234,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -4235,8 +4242,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#1 (byte) print_byte::b#2 (byte) print_byte::b#3 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -4297,6 +4302,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#53 (byte*) print_char_cursor#54 (byte*) print_char_cursor#55 +(byte*) print_char_cursor#56 (byte*) print_char_cursor#6 (byte*) print_char_cursor#7 (byte*) print_char_cursor#8 @@ -4311,6 +4317,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -4325,6 +4333,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#18 (byte*) print_line_cursor#19 (byte*) print_line_cursor#2 +(byte*) print_line_cursor#20 (byte*) print_line_cursor#3 (byte*) print_line_cursor#4 (byte*) print_line_cursor#5 @@ -4341,6 +4350,7 @@ SYMBOL TABLE SSA (byte*) print_screen#5 (byte*) print_screen#6 (byte*) print_screen#7 +(byte*) print_screen#8 (void()) print_str((byte*) print_str::str) (boolean~) print_str::$0 (label) print_str::@1 @@ -4420,6 +4430,7 @@ SYMBOL TABLE SSA (word) rem16u#41 (word) rem16u#42 (word) rem16u#43 +(word) rem16u#44 (word) rem16u#5 (word) rem16u#6 (word) rem16u#7 @@ -4799,8 +4810,8 @@ Not aliassing across scopes: print_screen#1 print_screen#4 Not aliassing across scopes: print_cls::sc#0 print_screen#1 Not aliassing across scopes: rem16u#31 rem16u#33 Not aliassing across scopes: print_screen#6 print_screen#7 -Not aliassing across scopes: print_line_cursor#15 print_line_cursor#12 -Not aliassing across scopes: print_char_cursor#55 print_char_cursor#50 +Not aliassing across scopes: print_line_cursor#16 print_line_cursor#12 +Not aliassing across scopes: print_char_cursor#56 print_char_cursor#50 Not aliassing across scopes: sin16s_gen::sintab#1 main::sintab1#0 Not aliassing across scopes: sin16s_gen::wavelength#0 main::wavelength#0 Not aliassing across scopes: rem16u#22 rem16u#7 @@ -4848,7 +4859,7 @@ Alias (dword) mul16u::res#2 = (dword) mul16u::res#5 (dword) mul16u::res#4 (dword Alias (word) mul16u::a#0 = (word~) mul16u::$5 Alias (dword) mul16u::mb#1 = (dword~) mul16u::$6 Alias (dword) mul16u::res#1 = (dword~) mul16u::$4 -Alias (word) rem16u#0 = (word) rem16u#38 (word) rem16u#37 (word) rem16u#33 +Alias (word) rem16u#0 = (word) rem16u#40 (word) rem16u#38 (word) rem16u#37 (word) rem16u#33 Alias (dword) div32u16u::return#2 = (dword) div32u16u::return#5 Alias (signed word*) sin16s_gen::sintab#4 = (signed word*) sin16s_gen::sintab#5 Alias (word) sin16s_gen::wavelength#1 = (word) sin16s_gen::wavelength#4 @@ -4929,7 +4940,7 @@ Alias (byte) sin16sb::isUpper#8 = (byte) sin16sb::isUpper#9 Alias (word) sin16sb::x#2 = (word~) sin16sb::$5 Alias (signed word) sin16sb::return#1 = (signed word) sin16sb::sinx#2 (signed word) sin16sb::return#4 (signed word) sin16sb::return#2 Alias (signed word) sin16sb::sinx#1 = (signed word~) sin16sb::$20 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#12 (byte*) print_char_cursor#50 (byte*) print_screen#7 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#15 (byte*) print_char_cursor#55 (byte*) print_screen#8 (byte*) print_line_cursor#12 (byte*) print_char_cursor#50 (byte*) print_screen#7 Alias (byte*) print_str::str#3 = (byte*) print_str::str#4 Alias (byte*) print_char_cursor#2 = (byte*) print_char_cursor#22 (byte*) print_char_cursor#42 (byte*) print_char_cursor#23 Alias (word) print_word::w#0 = (word~) print_sword::$4 @@ -4950,10 +4961,10 @@ Alias (byte*) print_char_cursor#12 = (byte*) print_char_cursor#34 (byte*) print_ Alias (byte*) print_line_cursor#1 = (byte*) print_screen#3 (byte*) print_screen#2 (byte*) print_char_cursor#14 (byte*) print_line_cursor#6 (byte*) print_char_cursor#35 (byte*) print_line_cursor#2 (byte*) print_char_cursor#15 Alias (word) main::wavelength#0 = (word) main::wavelength#1 Alias (byte*) print_screen#4 = (byte*) print_screen#5 (byte*) print_screen#6 -Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#13 (byte*) print_line_cursor#15 -Alias (byte*) print_char_cursor#47 = (byte*) print_char_cursor#53 (byte*) print_char_cursor#55 +Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#13 (byte*) print_line_cursor#16 +Alias (byte*) print_char_cursor#47 = (byte*) print_char_cursor#53 (byte*) print_char_cursor#56 Alias (word) rem16u#10 = (word) rem16u#22 -Alias (word) rem16u#11 = (word) rem16u#23 (word) rem16u#42 +Alias (word) rem16u#11 = (word) rem16u#23 (word) rem16u#43 Alias (byte*) print_line_cursor#3 = (byte*) print_line_cursor#7 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#36 Alias (signed word[120]) main::sintab1#0 = (signed word*) main::st1#0 @@ -4963,7 +4974,7 @@ Alias (signed word*) main::st1#3 = (signed word*) main::st1#4 (signed word*) mai Alias (signed word*) main::st2#3 = (signed word*) main::st2#4 (signed word*) main::st2#5 Alias (byte) main::i#2 = (byte) main::i#3 (byte) main::i#4 Alias (word) rem16u#12 = (word) rem16u#36 (word) rem16u#39 (word) rem16u#32 (word) rem16u#24 -Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#14 (byte*) print_line_cursor#16 (byte*) print_line_cursor#8 (byte*) print_line_cursor#4 +Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#14 (byte*) print_line_cursor#17 (byte*) print_line_cursor#8 (byte*) print_line_cursor#4 Alias (byte*) print_char_cursor#17 = (byte*) print_char_cursor#37 Alias (byte*) print_char_cursor#18 = (byte*) print_char_cursor#38 (byte*) print_char_cursor#40 (byte*) print_char_cursor#20 Alias (signed word*) main::st1#1 = (signed word*~) main::$9 @@ -4972,8 +4983,8 @@ Alias (byte*) print_char_cursor#49 = (byte*) print_char_cursor#54 Alias (signed word*) main::st1#2 = (signed word*) main::st1#7 (signed word*) main::st1#6 Alias (signed word*) main::st2#2 = (signed word*) main::st2#7 (signed word*) main::st2#6 Alias (byte) main::i#5 = (byte) main::i#7 (byte) main::i#6 -Alias (word) rem16u#40 = (word) rem16u#43 (word) rem16u#41 -Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 (byte*) print_line_cursor#18 +Alias (word) rem16u#41 = (word) rem16u#44 (word) rem16u#42 +Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#20 (byte*) print_line_cursor#19 Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#39 Alias (word) rem16u#13 = (word) rem16u#25 Alias (byte*) print_line_cursor#5 = (byte*) print_line_cursor#9 @@ -5115,8 +5126,8 @@ Alias (signed word) main::sw#0 = (signed word) main::sw#1 Alias (signed word*) main::st1#2 = (signed word*) main::st1#3 Alias (signed word*) main::st2#2 = (signed word*) main::st2#3 Alias (byte) main::i#2 = (byte) main::i#5 -Alias (word) rem16u#12 = (word) rem16u#40 -Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#17 +Alias (word) rem16u#12 = (word) rem16u#41 +Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#18 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: divr16u::rem#10 divr16u::rem#3 Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1 @@ -5353,7 +5364,7 @@ Constant (const byte) mulu16_sel::select#8 = 0 Constant (const byte) mulu16_sel::select#9 = 0 Constant (const byte*) print_line_cursor#0 = ((byte*))1024 Constant (const byte) print_char::ch#0 = '-' -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const word) main::wavelength#0 = 120 Constant (const signed word[120]) main::sintab1#0 = { fill( 120, 0) } Constant (const signed word[120]) main::sintab2#0 = { fill( 120, 0) } @@ -5393,6 +5404,7 @@ Culled Empty Block (label) @12 Culled Empty Block (label) @20 Culled Empty Block (label) print_sword::@3 Culled Empty Block (label) print_word::@2 +Culled Empty Block (label) @30 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@7 @@ -5767,6 +5779,7 @@ Constant inlined sin16s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0 Constant inlined sin16s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulu16_sel::v2#7 = (dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined mulu16_sel::select#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mulu16_sel::select#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -5797,7 +5810,6 @@ Constant inlined div32u16u::divisor#1 = (const word) main::wavelength#0 Constant inlined print_str::str#2 = (const string) main::str1 Constant inlined div32u16u::divisor#0 = (const word) main::wavelength#0 Constant inlined print_str::str#1 = (const string) main::str -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Succesful SSA optimization Pass2ConstantInlining Block Sequence Planned @begin @35 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_genb sin16s_genb::@3 sin16s_genb::@1 sin16s_genb::@4 sin16s_genb::@return sin16sb sin16sb::@4 sin16sb::@1 sin16sb::@5 sin16sb::@2 sin16sb::@8 sin16sb::@9 sin16sb::@10 sin16sb::@11 sin16sb::@12 sin16sb::@6 sin16sb::@3 sin16sb::@return mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return Added new block during phi lifting main::@11(between main::@9 and main::@1) @@ -5884,31 +5896,31 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 49 initial phi equivalence classes -Coalesced [13] print_char_cursor#59 ← print_char_cursor#49 -Coalesced [15] print_char_cursor#58 ← print_char_cursor#2 -Coalesced [19] print_char_cursor#60 ← print_char_cursor#12 +Coalesced [13] print_char_cursor#60 ← print_char_cursor#49 +Coalesced [15] print_char_cursor#59 ← print_char_cursor#2 +Coalesced [19] print_char_cursor#61 ← print_char_cursor#12 Coalesced [26] main::st1#8 ← main::st1#1 Coalesced [27] main::st2#8 ← main::st2#1 -Coalesced [28] print_char_cursor#56 ← print_char_cursor#2 +Coalesced [28] print_char_cursor#57 ← print_char_cursor#2 Coalesced [29] main::i#8 ← main::i#1 -Coalesced (already) [30] print_char_cursor#57 ← print_char_cursor#49 +Coalesced (already) [30] print_char_cursor#58 ← print_char_cursor#49 Coalesced [32] print_str::str#6 ← print_str::str#5 -Coalesced (already) [33] print_char_cursor#61 ← print_char_cursor#51 +Coalesced (already) [33] print_char_cursor#62 ← print_char_cursor#51 Coalesced [40] print_str::str#7 ← print_str::str#0 -Coalesced [41] print_char_cursor#62 ← print_char_cursor#1 -Coalesced [43] print_char_cursor#69 ← print_char_cursor#48 +Coalesced [41] print_char_cursor#63 ← print_char_cursor#1 +Coalesced [43] print_char_cursor#70 ← print_char_cursor#48 Coalesced [46] print_sword::w#7 ← print_sword::w#0 -Coalesced [47] print_char_cursor#64 ← print_char_cursor#12 +Coalesced [47] print_char_cursor#65 ← print_char_cursor#12 Coalesced [51] print_sword::w#6 ← print_sword::w#1 -Coalesced (already) [52] print_char_cursor#63 ← print_char_cursor#48 +Coalesced (already) [52] print_char_cursor#64 ← print_char_cursor#48 Coalesced [54] print_byte::b#4 ← print_byte::b#0 -Coalesced [55] print_char_cursor#65 ← print_char_cursor#43 +Coalesced [55] print_char_cursor#66 ← print_char_cursor#43 Coalesced [58] print_byte::b#5 ← print_byte::b#1 -Coalesced (already) [59] print_char_cursor#66 ← print_char_cursor#12 +Coalesced (already) [59] print_char_cursor#67 ← print_char_cursor#12 Coalesced [65] print_char::ch#4 ← print_char::ch#1 -Coalesced (already) [66] print_char_cursor#67 ← print_char_cursor#46 +Coalesced (already) [66] print_char_cursor#68 ← print_char_cursor#46 Coalesced [70] print_char::ch#5 ← print_char::ch#2 -Coalesced (already) [71] print_char_cursor#68 ← print_char_cursor#12 +Coalesced (already) [71] print_char_cursor#69 ← print_char_cursor#12 Coalesced [84] print_cls::sc#3 ← print_cls::sc#1 Coalesced [100] sin16s_genb::x#4 ← sin16s_genb::x#1 Coalesced [101] sin16s_genb::sintab#6 ← sin16s_genb::sintab#0 @@ -6132,12 +6144,12 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [44] (byte*) print_char_cursor#46 ← phi( print_word/(byte*) print_char_cursor#43 print_word::@1/(byte*) print_char_cursor#12 ) [ print_byte::b#2 print_char_cursor#46 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 ] ) [44] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 print_char_cursor#46 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 ] ) [45] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_byte::$0 ] ) - [46] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) + [46] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) [47] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::$2 ] ) - [49] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) + [49] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) [50] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -6741,7 +6753,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#0 4.0 (byte) print_byte::b#1 4.0 (byte) print_byte::b#2 2.0 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#1 4.0 @@ -6761,6 +6772,7 @@ VARIABLE REGISTER WEIGHTS (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_screen (void()) print_str((byte*) print_str::str) @@ -7448,9 +7460,9 @@ print_byte: { lsr lsr sta _0 - //SEG102 [46] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG102 [46] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG103 [47] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::b#2 ] ) //SEG104 [52] phi from print_byte to print_char [phi:print_byte->print_char] @@ -7465,9 +7477,9 @@ print_byte: { lda #$f and b sta _2 - //SEG109 [49] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG109 [49] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG110 [50] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 ] ) //SEG111 [52] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -7480,7 +7492,6 @@ print_byte: { breturn: //SEG115 [51] return [ print_char_cursor#12 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG116 print_char print_char: { @@ -8880,6 +8891,7 @@ sin16s: { sta return_5+1 jmp b3_from_b15 } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Statement [11] (signed word) main::sw#0 ← *((signed word*) main::st1#2) - *((signed word*) main::st2#2) [ main::st1#2 main::st2#2 print_char_cursor#49 main::i#2 main::sw#0 ] ( main:2 [ main::st1#2 main::st2#2 print_char_cursor#49 main::i#2 main::sw#0 ] ) always clobbers reg byte a reg byte y @@ -9634,9 +9646,9 @@ print_byte: { lsr lsr lsr - //SEG102 [46] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG102 [46] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG103 [47] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::b#2 ] ) //SEG104 [52] phi from print_byte to print_char [phi:print_byte->print_char] print_char_from_print_byte: @@ -9649,9 +9661,9 @@ print_byte: { //SEG108 [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and b - //SEG109 [49] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG109 [49] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG110 [50] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 ] ) //SEG111 [52] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -9663,7 +9675,6 @@ print_byte: { breturn: //SEG115 [51] return [ print_char_cursor#12 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG116 print_char print_char: { @@ -10848,6 +10859,7 @@ sin16s: { // (signed word~) sin16s::return#5 = (signed word)(word) sin16s::usinx#1 // register copy zp ZP_WORD:6 jmp b3_from_b15 } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b35 @@ -11271,8 +11283,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#0 b zp ZP_BYTE:10 4.0 (byte) print_byte::b#1 b zp ZP_BYTE:10 4.0 (byte) print_byte::b#2 b zp ZP_BYTE:10 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -11295,6 +11305,8 @@ FINAL SYMBOL TABLE (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 (byte*) print_screen @@ -11714,9 +11726,9 @@ print_byte: { lsr lsr lsr - //SEG102 [46] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG102 [46] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_byte::b#2 print_char_cursor#46 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG103 [47] call print_char param-assignment [ print_char_cursor#12 print_byte::b#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::b#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::b#2 ] ) //SEG104 [52] phi from print_byte to print_char [phi:print_byte->print_char] //SEG105 [52] phi (byte*) print_char_cursor#33 = (byte*) print_char_cursor#46 [phi:print_byte->print_char#0] -- register_copy @@ -11726,9 +11738,9 @@ print_byte: { //SEG108 [48] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_byte::$2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and b - //SEG109 [49] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG109 [49] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#2 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 print_char::ch#2 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG110 [50] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 ] ) //SEG111 [52] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG112 [52] phi (byte*) print_char_cursor#33 = (byte*) print_char_cursor#12 [phi:print_byte::@1->print_char#0] -- register_copy @@ -11737,7 +11749,6 @@ print_byte: { //SEG114 print_byte::@return //SEG115 [51] return [ print_char_cursor#12 ] ( main:2::print_sword:17::print_word:37::print_byte:40 [ main::st1#2 main::st2#2 main::i#2 print_sword::w#3 print_char_cursor#12 ] main:2::print_sword:17::print_word:37::print_byte:42 [ main::st1#2 main::st2#2 main::i#2 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG116 print_char print_char: { @@ -12778,4 +12789,5 @@ sin16s: { //SEG447 [221] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen:5::sin16s:173 [ sin16s_gen::step#0 sin16s_gen::x#2 sin16s_gen::sintab#2 sin16s_gen::i#2 sin16s::return#5 ] ) // (signed word~) sin16s::return#5 = (signed word)(word) sin16s::usinx#1 // register copy zp ZP_WORD:6 } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.sym b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.sym index a212af18c..39d251dfe 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.sym @@ -169,8 +169,6 @@ (byte) print_byte::b#0 b zp ZP_BYTE:10 4.0 (byte) print_byte::b#1 b zp ZP_BYTE:10 4.0 (byte) print_byte::b#2 b zp ZP_BYTE:10 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -193,6 +191,8 @@ (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 (byte*) print_screen diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.asm b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.asm index 3d280267a..534f5fe03 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.asm @@ -89,15 +89,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char lda #$f and print_sbyte.b tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -397,3 +396,4 @@ divr16u: { bne b1 rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.cfg b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.cfg index b741ecb66..88173ef3c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.cfg @@ -78,12 +78,12 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1 to:@return print_byte: scope:[print_byte] from print_sbyte::@1 [35] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte::b#3 print_char_cursor#37 print_byte::$0 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_byte::$0 ] ) - [36] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) + [36] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) [37] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [38] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) - [39] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) + [39] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) [40] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log index 50464b6f9..98be58b4c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log @@ -473,12 +473,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -1147,12 +1148,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1499,7 +1500,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1517,6 +1517,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -2610,13 +2611,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @28: scope:[] from @27 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@29 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -2733,7 +2734,7 @@ Eliminating unused variable - keeping the call (void~) main::$1 Eliminating unused variable - keeping the call (void~) main::$7 Eliminating unused variable - keeping the call (void~) main::$8 Eliminating unused variable - keeping the call (void~) main::$6 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) main::str " @" Creating constant string variable for inline (const string) main::str1 " @" Removing empty block @1 @@ -2773,7 +2774,6 @@ Removing empty block @24 Removing empty block @25 Removing empty block @26 Removing empty block @27 -Removing empty block @28 Removing empty block @29 Removing empty block @30 Removing empty block @31 @@ -2957,7 +2957,7 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 return to:@return @12: scope:[] from @2 - (word) rem16u#27 ← phi( @2/(word) rem16u#0 ) + (word) rem16u#29 ← phi( @2/(word) rem16u#0 ) (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 @@ -3172,11 +3172,11 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2 return to:@return @18: scope:[] from @12 - (word) rem16u#26 ← phi( @12/(word) rem16u#27 ) + (word) rem16u#27 ← phi( @12/(word) rem16u#29 ) (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@33 + to:@28 print_str: scope:[print_str] from main::@3 main::@7 (byte*) print_char_cursor#44 ← phi( main::@3/(byte*) print_char_cursor#42 main::@7/(byte*) print_char_cursor#14 ) (byte*) print_str::str#5 ← phi( main::@3/(byte*) print_str::str#2 main::@7/(byte*) print_str::str#1 ) @@ -3235,12 +3235,18 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@3 (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#23 return to:@return +@28: scope:[] from @18 + (byte*) print_screen#7 ← phi( @18/(byte*) print_screen#0 ) + (byte*) print_char_cursor#48 ← phi( @18/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#15 ← phi( @18/(byte*) print_line_cursor#0 ) + (word) rem16u#26 ← phi( @18/(word) rem16u#27 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@33 print_byte: scope:[print_byte] from print_sbyte::@1 (byte*) print_char_cursor#39 ← phi( print_sbyte::@1/(byte*) print_char_cursor#37 ) (byte) print_byte::b#1 ← phi( print_sbyte::@1/(byte) print_byte::b#0 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#1 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -3248,7 +3254,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#24 ← phi( print_byte/(byte*) print_char_cursor#10 ) (byte*) print_char_cursor#6 ← (byte*) print_char_cursor#24 (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#2 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -3317,7 +3323,7 @@ main::@5: scope:[main] from main call print_cls param-assignment to:main::@6 main::@6: scope:[main] from main::@5 - (word) rem16u#31 ← phi( main::@5/(word) rem16u#7 ) + (word) rem16u#32 ← phi( main::@5/(word) rem16u#7 ) (byte*) print_char_cursor#30 ← phi( main::@5/(byte*) print_char_cursor#12 ) (byte*) print_line_cursor#7 ← phi( main::@5/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#3 ← (byte*) print_line_cursor#7 @@ -3325,8 +3331,8 @@ main::@6: scope:[main] from main::@5 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main::@6 main::@8 - (byte*) print_line_cursor#16 ← phi( main::@6/(byte*) print_line_cursor#3 main::@8/(byte*) print_line_cursor#11 ) - (word) rem16u#29 ← phi( main::@6/(word) rem16u#31 main::@8/(word) rem16u#22 ) + (byte*) print_line_cursor#17 ← phi( main::@6/(byte*) print_line_cursor#3 main::@8/(byte*) print_line_cursor#11 ) + (word) rem16u#30 ← phi( main::@6/(word) rem16u#32 main::@8/(word) rem16u#22 ) (byte*) print_char_cursor#47 ← phi( main::@6/(byte*) print_char_cursor#13 main::@8/(byte*) print_char_cursor#15 ) (byte) main::i#2 ← phi( main::@6/(byte) main::i#0 main::@8/(byte) main::i#1 ) (signed byte~) main::$2 ← ((signed byte)) *((byte[]) main::sintabref#0 + (byte) main::i#2) @@ -3337,8 +3343,8 @@ main::@1: scope:[main] from main::@6 main::@8 if((boolean~) main::$5) goto main::@2 to:main::@3 main::@2: scope:[main] from main::@1 main::@9 - (byte*) print_line_cursor#15 ← phi( main::@1/(byte*) print_line_cursor#16 main::@9/(byte*) print_line_cursor#17 ) - (word) rem16u#28 ← phi( main::@1/(word) rem16u#29 main::@9/(word) rem16u#30 ) + (byte*) print_line_cursor#16 ← phi( main::@1/(byte*) print_line_cursor#17 main::@9/(byte*) print_line_cursor#18 ) + (word) rem16u#28 ← phi( main::@1/(word) rem16u#30 main::@9/(word) rem16u#31 ) (byte) main::i#5 ← phi( main::@1/(byte) main::i#2 main::@9/(byte) main::i#6 ) (byte*) print_char_cursor#41 ← phi( main::@1/(byte*) print_char_cursor#47 main::@9/(byte*) print_char_cursor#16 ) (signed byte) main::sb#1 ← phi( main::@1/(signed byte) main::sb#0 main::@9/(signed byte) main::sb#2 ) @@ -3346,7 +3352,7 @@ main::@2: scope:[main] from main::@1 main::@9 call print_sbyte param-assignment to:main::@7 main::@7: scope:[main] from main::@2 - (byte*) print_line_cursor#14 ← phi( main::@2/(byte*) print_line_cursor#15 ) + (byte*) print_line_cursor#14 ← phi( main::@2/(byte*) print_line_cursor#16 ) (word) rem16u#25 ← phi( main::@2/(word) rem16u#28 ) (byte) main::i#4 ← phi( main::@2/(byte) main::i#5 ) (byte*) print_char_cursor#31 ← phi( main::@2/(byte*) print_char_cursor#5 ) @@ -3365,8 +3371,8 @@ main::@8: scope:[main] from main::@7 if((boolean~) main::$9) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 - (byte*) print_line_cursor#18 ← phi( main::@1/(byte*) print_line_cursor#16 ) - (word) rem16u#32 ← phi( main::@1/(word) rem16u#29 ) + (byte*) print_line_cursor#19 ← phi( main::@1/(byte*) print_line_cursor#17 ) + (word) rem16u#33 ← phi( main::@1/(word) rem16u#30 ) (byte) main::i#7 ← phi( main::@1/(byte) main::i#2 ) (signed byte) main::sb#3 ← phi( main::@1/(signed byte) main::sb#0 ) (byte*) print_char_cursor#42 ← phi( main::@1/(byte*) print_char_cursor#47 ) @@ -3374,8 +3380,8 @@ main::@3: scope:[main] from main::@1 call print_str param-assignment to:main::@9 main::@9: scope:[main] from main::@3 - (byte*) print_line_cursor#17 ← phi( main::@3/(byte*) print_line_cursor#18 ) - (word) rem16u#30 ← phi( main::@3/(word) rem16u#32 ) + (byte*) print_line_cursor#18 ← phi( main::@3/(byte*) print_line_cursor#19 ) + (word) rem16u#31 ← phi( main::@3/(word) rem16u#33 ) (byte) main::i#6 ← phi( main::@3/(byte) main::i#7 ) (signed byte) main::sb#2 ← phi( main::@3/(signed byte) main::sb#3 ) (byte*) print_char_cursor#33 ← phi( main::@3/(byte*) print_char_cursor#2 ) @@ -3390,11 +3396,11 @@ main::@return: scope:[main] from main::@8 (byte*) print_char_cursor#17 ← (byte*) print_char_cursor#34 return to:@return -@33: scope:[] from @18 - (byte*) print_screen#6 ← phi( @18/(byte*) print_screen#0 ) - (byte*) print_char_cursor#43 ← phi( @18/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#12 ← phi( @18/(byte*) print_line_cursor#0 ) - (word) rem16u#23 ← phi( @18/(word) rem16u#26 ) +@33: scope:[] from @28 + (byte*) print_screen#6 ← phi( @28/(byte*) print_screen#7 ) + (byte*) print_char_cursor#43 ← phi( @28/(byte*) print_char_cursor#48 ) + (byte*) print_line_cursor#12 ← phi( @28/(byte*) print_line_cursor#15 ) + (word) rem16u#23 ← phi( @28/(word) rem16u#26 ) call main param-assignment to:@34 @34: scope:[] from @33 @@ -3408,9 +3414,11 @@ main::@return: scope:[main] from main::@8 @end: scope:[] from @34 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" (label) @12 (label) @18 (label) @2 +(label) @28 (label) @33 (label) @34 (label) @begin @@ -3638,7 +3646,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -3646,8 +3653,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#0 (byte) print_byte::b#1 (byte) print_byte::b#2 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -3699,6 +3704,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#45 (byte*) print_char_cursor#46 (byte*) print_char_cursor#47 +(byte*) print_char_cursor#48 (byte*) print_char_cursor#5 (byte*) print_char_cursor#6 (byte*) print_char_cursor#7 @@ -3714,6 +3720,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -3726,6 +3734,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#16 (byte*) print_line_cursor#17 (byte*) print_line_cursor#18 +(byte*) print_line_cursor#19 (byte*) print_line_cursor#2 (byte*) print_line_cursor#3 (byte*) print_line_cursor#4 @@ -3759,6 +3768,7 @@ SYMBOL TABLE SSA (byte*) print_screen#4 (byte*) print_screen#5 (byte*) print_screen#6 +(byte*) print_screen#7 (void()) print_str((byte*) print_str::str) (boolean~) print_str::$0 (label) print_str::@1 @@ -3799,6 +3809,7 @@ SYMBOL TABLE SSA (word) rem16u#30 (word) rem16u#31 (word) rem16u#32 +(word) rem16u#33 (word) rem16u#4 (word) rem16u#5 (word) rem16u#6 @@ -4060,7 +4071,7 @@ Alias (word) mul8u::res#2 = (word) mul8u::res#5 (word) mul8u::res#4 (word) mul8u Alias (byte) mul8u::a#0 = (byte~) mul8u::$5 Alias (word) mul8u::mb#1 = (word~) mul8u::$6 Alias (word) mul8u::res#1 = (word~) mul8u::$4 -Alias (word) rem16u#0 = (word) rem16u#27 (word) rem16u#26 (word) rem16u#23 +Alias (word) rem16u#0 = (word) rem16u#29 (word) rem16u#27 (word) rem16u#26 (word) rem16u#23 Alias (word) div16u::return#2 = (word) div16u::return#4 Alias (signed byte*) sin8s_gen::sintab#4 = (signed byte*) sin8s_gen::sintab#5 Alias (word) sin8s_gen::wavelength#1 = (word) sin8s_gen::wavelength#4 @@ -4101,7 +4112,7 @@ Alias (signed byte) sin8s::sinx#1 = (signed byte~) sin8s::$22 Alias (word) mul8u::return#2 = (word) mul8u::return#4 Alias (byte) mulu8_sel::select#5 = (byte) mulu8_sel::select#6 Alias (byte) mulu8_sel::return#12 = (byte) mulu8_sel::return#5 (byte~) mulu8_sel::$2 (byte) mulu8_sel::return#6 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#12 (byte*) print_char_cursor#43 (byte*) print_screen#6 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#15 (byte*) print_char_cursor#48 (byte*) print_screen#7 (byte*) print_line_cursor#12 (byte*) print_char_cursor#43 (byte*) print_screen#6 Alias (byte*) print_str::str#3 = (byte*) print_str::str#4 Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#36 (byte*) print_char_cursor#20 (byte*) print_char_cursor#2 Alias (byte) print_byte::b#0 = (byte~) print_sbyte::$4 @@ -4118,19 +4129,19 @@ Alias (byte*) print_line_cursor#1 = (byte*) print_screen#3 (byte*) print_screen# Alias (byte*) print_screen#4 = (byte*) print_screen#5 Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#13 Alias (byte*) print_char_cursor#40 = (byte*) print_char_cursor#46 -Alias (word) rem16u#15 = (word) rem16u#7 (word) rem16u#31 +Alias (word) rem16u#15 = (word) rem16u#7 (word) rem16u#32 Alias (byte*) print_line_cursor#3 = (byte*) print_line_cursor#7 Alias (byte*) print_char_cursor#13 = (byte*) print_char_cursor#30 Alias (signed byte) main::sb#0 = (signed byte~) main::$3 (signed byte) main::sb#3 (signed byte) main::sb#2 Alias (byte) main::i#3 = (byte) main::i#4 (byte) main::i#5 Alias (word) rem16u#16 = (word) rem16u#25 (word) rem16u#28 (word) rem16u#22 (word) rem16u#8 -Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#14 (byte*) print_line_cursor#15 (byte*) print_line_cursor#8 (byte*) print_line_cursor#4 +Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#14 (byte*) print_line_cursor#16 (byte*) print_line_cursor#8 (byte*) print_line_cursor#4 Alias (byte*) print_char_cursor#14 = (byte*) print_char_cursor#31 Alias (byte*) print_char_cursor#15 = (byte*) print_char_cursor#32 (byte*) print_char_cursor#34 (byte*) print_char_cursor#17 Alias (byte*) print_char_cursor#42 = (byte*) print_char_cursor#47 Alias (byte) main::i#2 = (byte) main::i#7 (byte) main::i#6 -Alias (word) rem16u#29 = (word) rem16u#32 (word) rem16u#30 -Alias (byte*) print_line_cursor#16 = (byte*) print_line_cursor#18 (byte*) print_line_cursor#17 +Alias (word) rem16u#30 = (word) rem16u#33 (word) rem16u#31 +Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 (byte*) print_line_cursor#18 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#33 Alias (word) rem16u#17 = (word) rem16u#9 Alias (byte*) print_line_cursor#5 = (byte*) print_line_cursor#9 @@ -4229,8 +4240,8 @@ Alias (word) mul8u::mb#2 = (word) mul8u::mb#3 Alias (byte) sin8s::isUpper#10 = (byte) sin8s::isUpper#3 (byte) sin8s::isUpper#2 Alias (signed byte) main::sb#0 = (signed byte) main::sb#1 Alias (byte) main::i#2 = (byte) main::i#3 -Alias (word) rem16u#16 = (word) rem16u#29 -Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#16 +Alias (word) rem16u#16 = (word) rem16u#30 +Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#17 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: divr16u::rem#9 divr16u::rem#3 Not aliassing across scopes: divr16u::dividend#4 divr16u::dividend#1 @@ -4403,7 +4414,7 @@ Constant (const byte) mulu8_sel::select#3 = 0 Constant (const byte) mulu8_sel::select#4 = 0 Constant (const byte*) print_line_cursor#0 = ((byte*))1024 Constant (const byte) print_char::ch#0 = '-' -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const word) main::wavelength#0 = 192 Constant (const signed byte[192]) main::sintab2#0 = { fill( 192, 0) } Constant (const byte[]) main::sintabref#0 = { 0, 4, 8, 12, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 56, 60, 64, 67, 71, 74, 78, 81, 84, 87, 90, 93, 96, 99, 101, 104, 106, 108, 110, 112, 114, 116, 118, 119, 121, 122, 123, 124, 125, 126, 126, 127, 127, 127, 128, 127, 127, 127, 126, 126, 125, 124, 123, 122, 121, 119, 118, 116, 114, 112, 110, 108, 106, 104, 101, 99, 96, 93, 90, 87, 84, 81, 78, 74, 71, 67, 64, 60, 56, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 12, 8, 4, 0, 252, 248, 244, 239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 200, 196, 192, 189, 185, 182, 178, 175, 172, 169, 166, 163, 160, 157, 155, 152, 150, 148, 146, 144, 142, 140, 138, 137, 135, 134, 133, 132, 131, 130, 130, 129, 129, 129, 129, 129, 129, 129, 130, 130, 131, 132, 133, 134, 135, 137, 138, 140, 142, 144, 146, 148, 150, 152, 155, 157, 160, 163, 166, 169, 172, 175, 178, 182, 185, 189, 192, 196, 200, 203, 207, 211, 215, 219, 223, 227, 231, 235, 239, 244, 248, 252 } @@ -4437,6 +4448,7 @@ Culled Empty Block (label) mul8u::@3 Culled Empty Block (label) @12 Culled Empty Block (label) @18 Culled Empty Block (label) print_sbyte::@3 +Culled Empty Block (label) @28 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@6 @@ -4588,6 +4600,7 @@ Inlining constant with var siblings (const byte) main::i#0 Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_cls::$0 = (const byte*) print_line_cursor#0+(word/signed word/dword/signed dword) 1000 Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined sin8s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined sin8s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin8s_gen::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4610,7 +4623,6 @@ Constant inlined sin8s_gen::sintab#1 = (const signed byte[192]) main::sintab2#0 Constant inlined sin8s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined print_str::str#2 = (const string) main::str1 Constant inlined print_str::str#1 = (const string) main::str -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Constant inlined sin8s_gen::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Succesful SSA optimization Pass2ConstantInlining Block Sequence Planned @begin @33 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s sin8s::@5 sin8s::@1 sin8s::@6 sin8s::@2 sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@14 sin8s::@7 sin8s::@3 sin8s::@8 sin8s::@4 sin8s::@return mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 div16u div16u::@2 div16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return @@ -4693,25 +4705,25 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 34 initial phi equivalence classes -Coalesced [11] print_char_cursor#51 ← print_char_cursor#42 -Coalesced [13] print_char_cursor#50 ← print_char_cursor#19 -Coalesced [17] print_char_cursor#52 ← print_char_cursor#10 +Coalesced [11] print_char_cursor#52 ← print_char_cursor#42 +Coalesced [13] print_char_cursor#51 ← print_char_cursor#19 +Coalesced [17] print_char_cursor#53 ← print_char_cursor#10 Coalesced [22] main::i#8 ← main::i#1 -Coalesced [23] print_char_cursor#48 ← print_char_cursor#19 -Coalesced (already) [24] print_char_cursor#49 ← print_char_cursor#42 +Coalesced [23] print_char_cursor#49 ← print_char_cursor#19 +Coalesced (already) [24] print_char_cursor#50 ← print_char_cursor#42 Coalesced [26] print_str::str#6 ← print_str::str#5 -Coalesced (already) [27] print_char_cursor#53 ← print_char_cursor#44 +Coalesced (already) [27] print_char_cursor#54 ← print_char_cursor#44 Coalesced [34] print_str::str#7 ← print_str::str#0 -Coalesced [35] print_char_cursor#54 ← print_char_cursor#1 -Coalesced [37] print_char_cursor#59 ← print_char_cursor#41 +Coalesced [35] print_char_cursor#55 ← print_char_cursor#1 +Coalesced [37] print_char_cursor#60 ← print_char_cursor#41 Coalesced [40] print_sbyte::b#7 ← print_sbyte::b#0 -Coalesced [41] print_char_cursor#56 ← print_char_cursor#10 +Coalesced [41] print_char_cursor#57 ← print_char_cursor#10 Coalesced [45] print_sbyte::b#6 ← print_sbyte::b#1 -Coalesced (already) [46] print_char_cursor#55 ← print_char_cursor#41 +Coalesced (already) [46] print_char_cursor#56 ← print_char_cursor#41 Coalesced [49] print_char::ch#4 ← print_char::ch#1 -Coalesced (already) [50] print_char_cursor#57 ← print_char_cursor#37 +Coalesced (already) [50] print_char_cursor#58 ← print_char_cursor#37 Coalesced [54] print_char::ch#5 ← print_char::ch#2 -Coalesced (already) [55] print_char_cursor#58 ← print_char_cursor#10 +Coalesced (already) [55] print_char_cursor#59 ← print_char_cursor#10 Coalesced [68] print_cls::sc#3 ← print_cls::sc#1 Coalesced [84] sin8s_gen::x#4 ← sin8s_gen::x#1 Coalesced [85] sin8s_gen::sintab#6 ← sin8s_gen::sintab#0 @@ -4892,12 +4904,12 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1 to:@return print_byte: scope:[print_byte] from print_sbyte::@1 [35] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte::b#3 print_char_cursor#37 print_byte::$0 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_byte::$0 ] ) - [36] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) + [36] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) [37] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [38] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) - [39] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) + [39] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) [40] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -5323,7 +5335,6 @@ VARIABLE REGISTER WEIGHTS (byte~) print_byte::$0 4.0 (byte~) print_byte::$2 4.0 (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#1 4.0 @@ -5342,6 +5353,7 @@ VARIABLE REGISTER WEIGHTS (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_sbyte((signed byte) print_sbyte::b) (signed byte) print_sbyte::b @@ -5800,9 +5812,9 @@ print_byte: { lsr lsr sta _0 - //SEG78 [36] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG78 [36] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG79 [37] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) //SEG80 [42] phi from print_byte to print_char [phi:print_byte->print_char] @@ -5817,9 +5829,9 @@ print_byte: { lda #$f and print_sbyte.b sta _2 - //SEG85 [39] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG85 [39] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG86 [40] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 ] ) //SEG87 [42] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -5832,7 +5844,6 @@ print_byte: { breturn: //SEG91 [41] return [ print_char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG92 print_char print_char: { @@ -6548,6 +6559,7 @@ divr16u: { //SEG299 [150] return [ divr16u::return#0 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:130 [ divr16u::return#0 ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Statement [9] (signed byte) main::sb#0 ← *((const signed byte[192]) main::sintab2#0 + (byte) main::i#2) - (signed byte)*((const byte[]) main::sintabref#0 + (byte) main::i#2) [ main::i#2 print_char_cursor#42 main::sb#0 ] ( main:2 [ main::i#2 print_char_cursor#42 main::sb#0 ] ) always clobbers reg byte a @@ -7000,9 +7012,9 @@ print_byte: { lsr lsr lsr - //SEG78 [36] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG78 [36] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG79 [37] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) //SEG80 [42] phi from print_byte to print_char [phi:print_byte->print_char] print_char_from_print_byte: @@ -7015,9 +7027,9 @@ print_byte: { //SEG84 [38] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and print_sbyte.b - //SEG85 [39] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG85 [39] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG86 [40] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 ] ) //SEG87 [42] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -7029,7 +7041,6 @@ print_byte: { breturn: //SEG91 [41] return [ print_char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG92 print_char print_char: { @@ -7651,6 +7662,7 @@ divr16u: { //SEG299 [150] return [ divr16u::return#0 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:130 [ divr16u::return#0 ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b33 @@ -7961,8 +7973,6 @@ FINAL SYMBOL TABLE (label) print_byte::@1 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -7984,6 +7994,8 @@ FINAL SYMBOL TABLE (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 (void()) print_sbyte((signed byte) print_sbyte::b) @@ -8288,9 +8300,9 @@ print_byte: { lsr lsr lsr - //SEG78 [36] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG78 [36] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG79 [37] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) //SEG80 [42] phi from print_byte to print_char [phi:print_byte->print_char] //SEG81 [42] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#37 [phi:print_byte->print_char#0] -- register_copy @@ -8300,9 +8312,9 @@ print_byte: { //SEG84 [38] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and print_sbyte.b - //SEG85 [39] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG85 [39] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG86 [40] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 ] ) //SEG87 [42] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG88 [42] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#10 [phi:print_byte::@1->print_char#0] -- register_copy @@ -8311,7 +8323,6 @@ print_byte: { //SEG90 print_byte::@return //SEG91 [41] return [ print_char_cursor#10 ] ( main:2::print_sbyte:15::print_byte:33 [ main::i#2 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG92 print_char print_char: { @@ -8837,4 +8848,5 @@ divr16u: { //SEG299 [150] return [ divr16u::return#0 ] ( main:2::sin8s_gen:5::div16u:53::divr16u:130 [ divr16u::return#0 ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.sym b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.sym index 949e18b07..7ae26e15a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.sym @@ -122,8 +122,6 @@ (label) print_byte::@1 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -145,6 +143,8 @@ (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 (void()) print_sbyte((signed byte) print_sbyte::b) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.asm b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.asm index e1364dad4..116b6acc8 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.asm @@ -120,15 +120,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char lda #$f and print_sbyte.b tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -793,3 +792,4 @@ div16u: { jsr divr16u rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.cfg b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.cfg index be6567e85..a0a56f36a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.cfg @@ -88,12 +88,12 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1 to:@return print_byte: scope:[print_byte] from print_sbyte::@1 [43] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte::b#3 print_char_cursor#37 print_byte::$0 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_byte::$0 ] ) - [44] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) + [44] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) [45] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [46] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) - [47] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) + [47] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) [48] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.log index 65bbd170e..9bb9ddb08 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.log @@ -462,12 +462,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -1136,12 +1137,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1502,7 +1503,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1520,6 +1520,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -2613,13 +2614,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @28: scope:[] from @27 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@29 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -2736,7 +2737,7 @@ Eliminating unused variable - keeping the call (void~) main::$2 Eliminating unused variable - keeping the call (void~) main::$12 Eliminating unused variable - keeping the call (void~) main::$13 Eliminating unused variable - keeping the call (void~) main::$11 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) main::str " @" Creating constant string variable for inline (const string) main::str1 " @" Removing empty block @1 @@ -2784,7 +2785,6 @@ Removing empty block @24 Removing empty block @25 Removing empty block @26 Removing empty block @27 -Removing empty block @28 Removing empty block @29 Removing empty block @30 Removing empty block @31 @@ -3060,7 +3060,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 return to:@return @12: scope:[] from @2 - (word) rem16u#43 ← phi( @2/(word) rem16u#0 ) + (word) rem16u#45 ← phi( @2/(word) rem16u#0 ) (dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713 (dword) PI_u4f28#0 ← (dword/signed dword) 843314857 (dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428 @@ -3476,11 +3476,11 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2 return to:@return @18: scope:[] from @12 - (word) rem16u#42 ← phi( @12/(word) rem16u#43 ) + (word) rem16u#43 ← phi( @12/(word) rem16u#45 ) (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@33 + to:@28 print_str: scope:[print_str] from main::@3 main::@8 (byte*) print_char_cursor#44 ← phi( main::@3/(byte*) print_char_cursor#42 main::@8/(byte*) print_char_cursor#14 ) (byte*) print_str::str#5 ← phi( main::@3/(byte*) print_str::str#2 main::@8/(byte*) print_str::str#1 ) @@ -3539,12 +3539,18 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@3 (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#23 return to:@return +@28: scope:[] from @18 + (byte*) print_screen#8 ← phi( @18/(byte*) print_screen#0 ) + (byte*) print_char_cursor#48 ← phi( @18/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#15 ← phi( @18/(byte*) print_line_cursor#0 ) + (word) rem16u#42 ← phi( @18/(word) rem16u#43 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@33 print_byte: scope:[print_byte] from print_sbyte::@1 (byte*) print_char_cursor#39 ← phi( print_sbyte::@1/(byte*) print_char_cursor#37 ) (byte) print_byte::b#1 ← phi( print_sbyte::@1/(byte) print_byte::b#0 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#1 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -3552,7 +3558,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#24 ← phi( print_byte/(byte*) print_char_cursor#10 ) (byte*) print_char_cursor#6 ← (byte*) print_char_cursor#24 (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#2 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -3601,8 +3607,8 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 return to:@return main: scope:[main] from @33 - (byte*) print_char_cursor#48 ← phi( @33/(byte*) print_char_cursor#43 ) - (byte*) print_line_cursor#15 ← phi( @33/(byte*) print_line_cursor#12 ) + (byte*) print_char_cursor#49 ← phi( @33/(byte*) print_char_cursor#43 ) + (byte*) print_line_cursor#16 ← phi( @33/(byte*) print_line_cursor#12 ) (byte*) print_screen#6 ← phi( @33/(byte*) print_screen#7 ) (word) rem16u#36 ← phi( @33/(word) rem16u#38 ) (word) main::wavelength#0 ← (byte/word/signed word/dword/signed dword) 192 @@ -3612,8 +3618,8 @@ main: scope:[main] from @33 call sin8s_gen param-assignment to:main::@5 main::@5: scope:[main] from main - (byte*) print_char_cursor#46 ← phi( main/(byte*) print_char_cursor#48 ) - (byte*) print_line_cursor#13 ← phi( main/(byte*) print_line_cursor#15 ) + (byte*) print_char_cursor#46 ← phi( main/(byte*) print_char_cursor#49 ) + (byte*) print_line_cursor#13 ← phi( main/(byte*) print_line_cursor#16 ) (byte*) print_screen#5 ← phi( main/(byte*) print_screen#6 ) (word) main::wavelength#1 ← phi( main/(word) main::wavelength#0 ) (word) rem16u#26 ← phi( main/(word) rem16u#11 ) @@ -3632,7 +3638,7 @@ main::@6: scope:[main] from main::@5 call print_cls param-assignment to:main::@7 main::@7: scope:[main] from main::@6 - (word) rem16u#47 ← phi( main::@6/(word) rem16u#13 ) + (word) rem16u#48 ← phi( main::@6/(word) rem16u#13 ) (byte*) print_char_cursor#30 ← phi( main::@6/(byte*) print_char_cursor#12 ) (byte*) print_line_cursor#7 ← phi( main::@6/(byte*) print_line_cursor#2 ) (byte*) print_line_cursor#3 ← (byte*) print_line_cursor#7 @@ -3640,8 +3646,8 @@ main::@7: scope:[main] from main::@6 (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main::@7 main::@9 - (byte*) print_line_cursor#17 ← phi( main::@7/(byte*) print_line_cursor#3 main::@9/(byte*) print_line_cursor#11 ) - (word) rem16u#45 ← phi( main::@7/(word) rem16u#47 main::@9/(word) rem16u#37 ) + (byte*) print_line_cursor#18 ← phi( main::@7/(byte*) print_line_cursor#3 main::@9/(byte*) print_line_cursor#11 ) + (word) rem16u#46 ← phi( main::@7/(word) rem16u#48 main::@9/(word) rem16u#37 ) (byte*) print_char_cursor#47 ← phi( main::@7/(byte*) print_char_cursor#13 main::@9/(byte*) print_char_cursor#15 ) (byte) main::i#2 ← phi( main::@7/(byte) main::i#0 main::@9/(byte) main::i#1 ) (signed byte) main::sb#0 ← *((signed byte[192]) main::sintabb#0 + (byte) main::i#2) @@ -3658,8 +3664,8 @@ main::@1: scope:[main] from main::@7 main::@9 if((boolean~) main::$10) goto main::@2 to:main::@3 main::@2: scope:[main] from main::@1 main::@10 - (byte*) print_line_cursor#16 ← phi( main::@1/(byte*) print_line_cursor#17 main::@10/(byte*) print_line_cursor#18 ) - (word) rem16u#44 ← phi( main::@1/(word) rem16u#45 main::@10/(word) rem16u#46 ) + (byte*) print_line_cursor#17 ← phi( main::@1/(byte*) print_line_cursor#18 main::@10/(byte*) print_line_cursor#19 ) + (word) rem16u#44 ← phi( main::@1/(word) rem16u#46 main::@10/(word) rem16u#47 ) (byte) main::i#5 ← phi( main::@1/(byte) main::i#2 main::@10/(byte) main::i#6 ) (byte*) print_char_cursor#41 ← phi( main::@1/(byte*) print_char_cursor#47 main::@10/(byte*) print_char_cursor#16 ) (signed byte) main::sd#1 ← phi( main::@1/(signed byte) main::sd#0 main::@10/(signed byte) main::sd#2 ) @@ -3667,7 +3673,7 @@ main::@2: scope:[main] from main::@1 main::@10 call print_sbyte param-assignment to:main::@8 main::@8: scope:[main] from main::@2 - (byte*) print_line_cursor#14 ← phi( main::@2/(byte*) print_line_cursor#16 ) + (byte*) print_line_cursor#14 ← phi( main::@2/(byte*) print_line_cursor#17 ) (word) rem16u#41 ← phi( main::@2/(word) rem16u#44 ) (byte) main::i#4 ← phi( main::@2/(byte) main::i#5 ) (byte*) print_char_cursor#31 ← phi( main::@2/(byte*) print_char_cursor#5 ) @@ -3686,8 +3692,8 @@ main::@9: scope:[main] from main::@8 if((boolean~) main::$14) goto main::@1 to:main::@return main::@3: scope:[main] from main::@1 - (byte*) print_line_cursor#19 ← phi( main::@1/(byte*) print_line_cursor#17 ) - (word) rem16u#48 ← phi( main::@1/(word) rem16u#45 ) + (byte*) print_line_cursor#20 ← phi( main::@1/(byte*) print_line_cursor#18 ) + (word) rem16u#49 ← phi( main::@1/(word) rem16u#46 ) (byte) main::i#7 ← phi( main::@1/(byte) main::i#2 ) (signed byte) main::sd#3 ← phi( main::@1/(signed byte) main::sd#0 ) (byte*) print_char_cursor#42 ← phi( main::@1/(byte*) print_char_cursor#47 ) @@ -3695,8 +3701,8 @@ main::@3: scope:[main] from main::@1 call print_str param-assignment to:main::@10 main::@10: scope:[main] from main::@3 - (byte*) print_line_cursor#18 ← phi( main::@3/(byte*) print_line_cursor#19 ) - (word) rem16u#46 ← phi( main::@3/(word) rem16u#48 ) + (byte*) print_line_cursor#19 ← phi( main::@3/(byte*) print_line_cursor#20 ) + (word) rem16u#47 ← phi( main::@3/(word) rem16u#49 ) (byte) main::i#6 ← phi( main::@3/(byte) main::i#7 ) (signed byte) main::sd#2 ← phi( main::@3/(signed byte) main::sd#3 ) (byte*) print_char_cursor#33 ← phi( main::@3/(byte*) print_char_cursor#2 ) @@ -3711,11 +3717,11 @@ main::@return: scope:[main] from main::@9 (byte*) print_char_cursor#17 ← (byte*) print_char_cursor#34 return to:@return -@33: scope:[] from @18 - (byte*) print_screen#7 ← phi( @18/(byte*) print_screen#0 ) - (byte*) print_char_cursor#43 ← phi( @18/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#12 ← phi( @18/(byte*) print_line_cursor#0 ) - (word) rem16u#38 ← phi( @18/(word) rem16u#42 ) +@33: scope:[] from @28 + (byte*) print_screen#7 ← phi( @28/(byte*) print_screen#8 ) + (byte*) print_char_cursor#43 ← phi( @28/(byte*) print_char_cursor#48 ) + (byte*) print_line_cursor#12 ← phi( @28/(byte*) print_line_cursor#15 ) + (word) rem16u#38 ← phi( @28/(word) rem16u#42 ) call main param-assignment to:@34 @34: scope:[] from @33 @@ -3729,9 +3735,11 @@ main::@return: scope:[main] from main::@9 @end: scope:[] from @34 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" (label) @12 (label) @18 (label) @2 +(label) @28 (label) @33 (label) @34 (label) @begin @@ -4102,7 +4110,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -4110,8 +4117,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#0 (byte) print_byte::b#1 (byte) print_byte::b#2 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -4164,6 +4169,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#46 (byte*) print_char_cursor#47 (byte*) print_char_cursor#48 +(byte*) print_char_cursor#49 (byte*) print_char_cursor#5 (byte*) print_char_cursor#6 (byte*) print_char_cursor#7 @@ -4179,6 +4185,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -4193,6 +4201,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#18 (byte*) print_line_cursor#19 (byte*) print_line_cursor#2 +(byte*) print_line_cursor#20 (byte*) print_line_cursor#3 (byte*) print_line_cursor#4 (byte*) print_line_cursor#5 @@ -4226,6 +4235,7 @@ SYMBOL TABLE SSA (byte*) print_screen#5 (byte*) print_screen#6 (byte*) print_screen#7 +(byte*) print_screen#8 (void()) print_str((byte*) print_str::str) (boolean~) print_str::$0 (label) print_str::@1 @@ -4283,6 +4293,7 @@ SYMBOL TABLE SSA (word) rem16u#46 (word) rem16u#47 (word) rem16u#48 +(word) rem16u#49 (word) rem16u#5 (word) rem16u#6 (word) rem16u#7 @@ -4688,8 +4699,8 @@ Not aliassing across scopes: print_screen#1 print_screen#4 Not aliassing across scopes: print_cls::sc#0 print_screen#1 Not aliassing across scopes: rem16u#36 rem16u#38 Not aliassing across scopes: print_screen#6 print_screen#7 -Not aliassing across scopes: print_line_cursor#15 print_line_cursor#12 -Not aliassing across scopes: print_char_cursor#48 print_char_cursor#43 +Not aliassing across scopes: print_line_cursor#16 print_line_cursor#12 +Not aliassing across scopes: print_char_cursor#49 print_char_cursor#43 Not aliassing across scopes: sin8s_gen::sintab#1 main::sintabb#0 Not aliassing across scopes: sin8s_gen::wavelength#0 main::wavelength#0 Not aliassing across scopes: rem16u#26 rem16u#11 @@ -4746,7 +4757,7 @@ Alias (dword) mul16u::res#2 = (dword) mul16u::res#5 (dword) mul16u::res#4 (dword Alias (word) mul16u::a#0 = (word~) mul16u::$5 Alias (dword) mul16u::mb#1 = (dword~) mul16u::$6 Alias (dword) mul16u::res#1 = (dword~) mul16u::$4 -Alias (word) rem16u#0 = (word) rem16u#43 (word) rem16u#42 (word) rem16u#38 +Alias (word) rem16u#0 = (word) rem16u#45 (word) rem16u#43 (word) rem16u#42 (word) rem16u#38 Alias (dword) div32u16u::return#2 = (dword) div32u16u::return#4 Alias (signed word*) sin16s_gen::sintab#4 = (signed word*) sin16s_gen::sintab#5 Alias (word) sin16s_gen::wavelength#1 = (word) sin16s_gen::wavelength#4 @@ -4828,7 +4839,7 @@ Alias (word) mulu16_sel::return#12 = (word) mulu16_sel::return#5 (word~) mulu16_ Alias (word) mul8u::return#2 = (word) mul8u::return#4 Alias (byte) mulu8_sel::select#5 = (byte) mulu8_sel::select#6 Alias (byte) mulu8_sel::return#12 = (byte) mulu8_sel::return#5 (byte~) mulu8_sel::$2 (byte) mulu8_sel::return#6 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#12 (byte*) print_char_cursor#43 (byte*) print_screen#7 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#15 (byte*) print_char_cursor#48 (byte*) print_screen#8 (byte*) print_line_cursor#12 (byte*) print_char_cursor#43 (byte*) print_screen#7 Alias (byte*) print_str::str#3 = (byte*) print_str::str#4 Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#36 (byte*) print_char_cursor#20 (byte*) print_char_cursor#2 Alias (byte) print_byte::b#0 = (byte~) print_sbyte::$4 @@ -4844,22 +4855,22 @@ Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#28 (byte*) print_ Alias (byte*) print_line_cursor#1 = (byte*) print_screen#3 (byte*) print_screen#2 (byte*) print_char_cursor#11 (byte*) print_line_cursor#6 (byte*) print_char_cursor#29 (byte*) print_line_cursor#2 (byte*) print_char_cursor#12 Alias (word) main::wavelength#0 = (word) main::wavelength#1 Alias (byte*) print_screen#4 = (byte*) print_screen#5 (byte*) print_screen#6 -Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#13 (byte*) print_line_cursor#15 -Alias (byte*) print_char_cursor#40 = (byte*) print_char_cursor#46 (byte*) print_char_cursor#48 +Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#13 (byte*) print_line_cursor#16 +Alias (byte*) print_char_cursor#40 = (byte*) print_char_cursor#46 (byte*) print_char_cursor#49 Alias (word) rem16u#12 = (word) rem16u#26 -Alias (word) rem16u#13 = (word) rem16u#27 (word) rem16u#47 +Alias (word) rem16u#13 = (word) rem16u#27 (word) rem16u#48 Alias (byte*) print_line_cursor#3 = (byte*) print_line_cursor#7 Alias (byte*) print_char_cursor#13 = (byte*) print_char_cursor#30 Alias (signed byte) main::sd#0 = (signed byte~) main::$8 (signed byte) main::sd#3 (signed byte) main::sd#2 Alias (byte) main::i#3 = (byte) main::i#4 (byte) main::i#5 Alias (word) rem16u#14 = (word) rem16u#41 (word) rem16u#44 (word) rem16u#37 (word) rem16u#28 -Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#14 (byte*) print_line_cursor#16 (byte*) print_line_cursor#8 (byte*) print_line_cursor#4 +Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#14 (byte*) print_line_cursor#17 (byte*) print_line_cursor#8 (byte*) print_line_cursor#4 Alias (byte*) print_char_cursor#14 = (byte*) print_char_cursor#31 Alias (byte*) print_char_cursor#15 = (byte*) print_char_cursor#32 (byte*) print_char_cursor#34 (byte*) print_char_cursor#17 Alias (byte*) print_char_cursor#42 = (byte*) print_char_cursor#47 Alias (byte) main::i#2 = (byte) main::i#7 (byte) main::i#6 -Alias (word) rem16u#45 = (word) rem16u#48 (word) rem16u#46 -Alias (byte*) print_line_cursor#17 = (byte*) print_line_cursor#19 (byte*) print_line_cursor#18 +Alias (word) rem16u#46 = (word) rem16u#49 (word) rem16u#47 +Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#20 (byte*) print_line_cursor#19 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#33 Alias (word) rem16u#15 = (word) rem16u#29 Alias (byte*) print_line_cursor#5 = (byte*) print_line_cursor#9 @@ -5016,8 +5027,8 @@ Alias (byte) sin16s::isUpper#2 = (byte) sin16s::isUpper#8 Alias (byte) sin8s::isUpper#10 = (byte) sin8s::isUpper#3 (byte) sin8s::isUpper#2 Alias (signed byte) main::sd#0 = (signed byte) main::sd#1 Alias (byte) main::i#2 = (byte) main::i#3 -Alias (word) rem16u#14 = (word) rem16u#45 -Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#17 +Alias (word) rem16u#14 = (word) rem16u#46 +Alias (byte*) print_line_cursor#11 = (byte*) print_line_cursor#18 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: divr16u::rem#11 divr16u::rem#3 Not aliassing across scopes: divr16u::dividend#6 divr16u::dividend#1 @@ -5282,7 +5293,7 @@ Constant (const byte) mulu8_sel::select#3 = 0 Constant (const byte) mulu8_sel::select#4 = 0 Constant (const byte*) print_line_cursor#0 = ((byte*))1024 Constant (const byte) print_char::ch#0 = '-' -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const word) main::wavelength#0 = 192 Constant (const signed byte[192]) main::sintabb#0 = { fill( 192, 0) } Constant (const signed word[192]) main::sintabw#0 = { fill( 192, 0) } @@ -5328,6 +5339,7 @@ Culled Empty Block (label) mul16u::@3 Culled Empty Block (label) @12 Culled Empty Block (label) @18 Culled Empty Block (label) print_sbyte::@3 +Culled Empty Block (label) @28 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@7 @@ -5700,6 +5712,7 @@ Constant inlined divr16u::rem#4 = (byte/signed byte/word/signed word/dword/signe Constant inlined sin16s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined div32u16u::dividend#0 = (const dword) PI2_u4f28#0 Constant inlined sin16s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined sin8s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined sin8s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin8s_gen::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -5738,7 +5751,6 @@ Constant inlined sin8s_gen::wavelength#0 = (const word) main::wavelength#0 Constant inlined print_str::str#2 = (const string) main::str1 Constant inlined div32u16u::divisor#0 = (const word) main::wavelength#0 Constant inlined print_str::str#1 = (const string) main::str -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Constant inlined sin8s_gen::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Succesful SSA optimization Pass2ConstantInlining Block Sequence Planned @begin @33 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s sin8s::@5 sin8s::@1 sin8s::@6 sin8s::@2 sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@14 sin8s::@7 sin8s::@3 sin8s::@8 sin8s::@4 sin8s::@return mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 div16u div16u::@2 div16u::@return @@ -5833,25 +5845,25 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 51 initial phi equivalence classes -Coalesced [19] print_char_cursor#52 ← print_char_cursor#42 -Coalesced [21] print_char_cursor#51 ← print_char_cursor#19 -Coalesced [25] print_char_cursor#53 ← print_char_cursor#10 +Coalesced [19] print_char_cursor#53 ← print_char_cursor#42 +Coalesced [21] print_char_cursor#52 ← print_char_cursor#19 +Coalesced [25] print_char_cursor#54 ← print_char_cursor#10 Coalesced [30] main::i#8 ← main::i#1 -Coalesced [31] print_char_cursor#49 ← print_char_cursor#19 -Coalesced (already) [32] print_char_cursor#50 ← print_char_cursor#42 +Coalesced [31] print_char_cursor#50 ← print_char_cursor#19 +Coalesced (already) [32] print_char_cursor#51 ← print_char_cursor#42 Coalesced [34] print_str::str#6 ← print_str::str#5 -Coalesced (already) [35] print_char_cursor#54 ← print_char_cursor#44 +Coalesced (already) [35] print_char_cursor#55 ← print_char_cursor#44 Coalesced [42] print_str::str#7 ← print_str::str#0 -Coalesced [43] print_char_cursor#55 ← print_char_cursor#1 -Coalesced [45] print_char_cursor#60 ← print_char_cursor#41 +Coalesced [43] print_char_cursor#56 ← print_char_cursor#1 +Coalesced [45] print_char_cursor#61 ← print_char_cursor#41 Coalesced [48] print_sbyte::b#7 ← print_sbyte::b#0 -Coalesced [49] print_char_cursor#57 ← print_char_cursor#10 +Coalesced [49] print_char_cursor#58 ← print_char_cursor#10 Coalesced [53] print_sbyte::b#6 ← print_sbyte::b#1 -Coalesced (already) [54] print_char_cursor#56 ← print_char_cursor#41 +Coalesced (already) [54] print_char_cursor#57 ← print_char_cursor#41 Coalesced [57] print_char::ch#4 ← print_char::ch#1 -Coalesced (already) [58] print_char_cursor#58 ← print_char_cursor#37 +Coalesced (already) [58] print_char_cursor#59 ← print_char_cursor#37 Coalesced [62] print_char::ch#5 ← print_char::ch#2 -Coalesced (already) [63] print_char_cursor#59 ← print_char_cursor#10 +Coalesced (already) [63] print_char_cursor#60 ← print_char_cursor#10 Coalesced [76] print_cls::sc#3 ← print_cls::sc#1 Coalesced [92] sin16s_gen::x#4 ← sin16s_gen::x#1 Coalesced [93] sin16s_gen::sintab#6 ← sin16s_gen::sintab#0 @@ -6075,12 +6087,12 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1 to:@return print_byte: scope:[print_byte] from print_sbyte::@1 [43] (byte~) print_byte::$0 ← (byte)(signed byte) print_sbyte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_sbyte::b#3 print_char_cursor#37 print_byte::$0 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_byte::$0 ] ) - [44] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) + [44] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) [45] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [46] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) - [47] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) + [47] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) [48] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -6786,7 +6798,6 @@ VARIABLE REGISTER WEIGHTS (byte~) print_byte::$0 4.0 (byte~) print_byte::$2 4.0 (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#1 4.0 @@ -6805,6 +6816,7 @@ VARIABLE REGISTER WEIGHTS (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_sbyte((signed byte) print_sbyte::b) (signed byte) print_sbyte::b @@ -7513,9 +7525,9 @@ print_byte: { lsr lsr sta _0 - //SEG88 [44] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG88 [44] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG89 [45] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) //SEG90 [50] phi from print_byte to print_char [phi:print_byte->print_char] @@ -7530,9 +7542,9 @@ print_byte: { lda #$f and print_sbyte.b sta _2 - //SEG95 [47] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG95 [47] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG96 [48] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 ] ) //SEG97 [50] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -7545,7 +7557,6 @@ print_byte: { breturn: //SEG101 [49] return [ print_char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG102 print_char print_char: { @@ -9017,6 +9028,7 @@ div16u: { //SEG478 [243] return [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:163 [ div16u::return#0 ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Statement [12] (word~) main::$3 ← ((word)) (byte) main::i#2 [ main::i#2 print_char_cursor#42 main::sb#0 main::$3 ] ( main:2 [ main::i#2 print_char_cursor#42 main::sb#0 main::$3 ] ) always clobbers reg byte a @@ -9754,9 +9766,9 @@ print_byte: { lsr lsr lsr - //SEG88 [44] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG88 [44] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG89 [45] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) //SEG90 [50] phi from print_byte to print_char [phi:print_byte->print_char] print_char_from_print_byte: @@ -9769,9 +9781,9 @@ print_byte: { //SEG94 [46] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and print_sbyte.b - //SEG95 [47] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG95 [47] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG96 [48] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 ] ) //SEG97 [50] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -9783,7 +9795,6 @@ print_byte: { breturn: //SEG101 [49] return [ print_char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG102 print_char print_char: { @@ -11036,6 +11047,7 @@ div16u: { //SEG478 [243] return [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:163 [ div16u::return#0 ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b33 @@ -11522,8 +11534,6 @@ FINAL SYMBOL TABLE (label) print_byte::@1 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -11545,6 +11555,8 @@ FINAL SYMBOL TABLE (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 (void()) print_sbyte((signed byte) print_sbyte::b) @@ -11963,9 +11975,9 @@ print_byte: { lsr lsr lsr - //SEG88 [44] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG88 [44] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_sbyte::b#3 print_char_cursor#37 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG89 [45] call print_char param-assignment [ print_char_cursor#10 print_sbyte::b#3 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_sbyte::b#3 ] ) //SEG90 [50] phi from print_byte to print_char [phi:print_byte->print_char] //SEG91 [50] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#37 [phi:print_byte->print_char#0] -- register_copy @@ -11975,9 +11987,9 @@ print_byte: { //SEG94 [46] (byte~) print_byte::$2 ← (byte)(signed byte) print_sbyte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#10 print_byte::$2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and print_sbyte.b - //SEG95 [47] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG95 [47] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#10 print_char::ch#2 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG96 [48] call print_char param-assignment [ print_char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 ] ) //SEG97 [50] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG98 [50] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#10 [phi:print_byte::@1->print_char#0] -- register_copy @@ -11986,7 +11998,6 @@ print_byte: { //SEG100 print_byte::@return //SEG101 [49] return [ print_char_cursor#10 ] ( main:2::print_sbyte:23::print_byte:41 [ main::i#2 print_char_cursor#10 ] ) rts - hextab: .text "0123456789abcdef" } //SEG102 print_char print_char: { @@ -13070,4 +13081,5 @@ div16u: { //SEG478 [243] return [ div16u::return#0 ] ( main:2::sin8s_gen:5::div16u:163 [ div16u::return#0 ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.sym b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.sym index 57b8b63fe..208b80bc0 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.sym @@ -208,8 +208,6 @@ (label) print_byte::@1 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -231,6 +229,8 @@ (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (const byte*) print_line_cursor#0 print_line_cursor = ((byte*))(word/signed word/dword/signed dword) 1024 (void()) print_sbyte((signed byte) print_sbyte::b) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.asm b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.asm index 63162502f..6d47a1c27 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.asm @@ -209,15 +209,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char lda #$f and b tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -552,3 +551,4 @@ print_cls: { bne b1 rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.cfg b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.cfg index 1e93e9e08..5f4167a26 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.cfg @@ -87,7 +87,7 @@ sin8u_table::@16: scope:[sin8u_table] from sin8u_table::@15 [44] (byte) sin8u_table::sinx_tr#0 ← (const byte) sin8u_table::mid#0 + (byte~) sin8u_table::$21 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) [45] *((byte*) sin8u_table::sintab#2) ← (byte) sin8u_table::sinx_tr#0 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) [46] (byte*) sin8u_table::sintab#1 ← ++ (byte*) sin8u_table::sintab#2 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) - [47] (byte*~) print_char_cursor#121 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ) + [47] (byte*~) print_char_cursor#122 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ) [48] call print_str param-assignment [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ) to:sin8u_table::@17 sin8u_table::@17: scope:[sin8u_table] from sin8u_table::@16 @@ -145,12 +145,12 @@ print_byte: scope:[print_byte] from print_sbyte::@1 print_word print_word::@1 s [74] (byte*) print_char_cursor#97 ← phi( print_sbyte::@1/(byte*) print_char_cursor#94 print_word/(byte*) print_char_cursor#96 print_word::@1/(byte*) print_char_cursor#17 sin8u_table::@10/(byte*) print_char_cursor#2 sin8u_table::@12/(byte*) print_char_cursor#2 sin8u_table::@23/(byte*) print_char_cursor#2 sin8u_table::@6/(byte*) print_char_cursor#2 sin8u_table::@8/(byte*) print_char_cursor#2 ) [ print_byte::b#8 print_char_cursor#97 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] ) [74] (byte) print_byte::b#8 ← phi( print_sbyte::@1/(byte~) print_byte::b#10 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 sin8u_table::@10/(const byte) sin8u_table::amplitude#0 sin8u_table::@12/(const byte) sin8u_table::mid#0 sin8u_table::@23/(byte) print_byte::b#7 sin8u_table::@6/(const byte) sin8u_table::min#0 sin8u_table::@8/(const byte) sin8u_table::max#0 ) [ print_byte::b#8 print_char_cursor#97 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] ) [75] (byte~) print_byte::$0 ← (byte) print_byte::b#8 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#8 print_char_cursor#97 print_byte::$0 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] ) - [76] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] ) + [76] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] ) [77] call print_char param-assignment [ print_char_cursor#17 print_byte::b#8 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#8 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] ) - [79] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) + [79] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) [80] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -166,7 +166,7 @@ print_char::@return: scope:[print_char] from print_char [85] return [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103::print_char:77 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:19::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103::print_char:80 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_char:95 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_char:109 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sbyte::b#1 print_char_cursor#17 ] ) to:@return print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@16 sin8u_table::@18 sin8u_table::@20 sin8u_table::@22 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9 - [86] (byte*) print_char_cursor#102 ← phi( sin8u_table::@11/(byte*) print_char_cursor#17 sin8u_table::@16/(byte*~) print_char_cursor#121 sin8u_table::@18/(byte*) print_char_cursor#17 sin8u_table::@20/(byte*) print_char_cursor#17 sin8u_table::@22/(byte*) print_char_cursor#17 sin8u_table::@3/((byte*))(word/signed word/dword/signed dword) 1024 sin8u_table::@5/(byte*) print_char_cursor#17 sin8u_table::@7/(byte*) print_char_cursor#17 sin8u_table::@9/(byte*) print_char_cursor#17 ) [ print_str::str#12 print_char_cursor#102 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:48 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:52 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:56 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:60 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] ) + [86] (byte*) print_char_cursor#102 ← phi( sin8u_table::@11/(byte*) print_char_cursor#17 sin8u_table::@16/(byte*~) print_char_cursor#122 sin8u_table::@18/(byte*) print_char_cursor#17 sin8u_table::@20/(byte*) print_char_cursor#17 sin8u_table::@22/(byte*) print_char_cursor#17 sin8u_table::@3/((byte*))(word/signed word/dword/signed dword) 1024 sin8u_table::@5/(byte*) print_char_cursor#17 sin8u_table::@7/(byte*) print_char_cursor#17 sin8u_table::@9/(byte*) print_char_cursor#17 ) [ print_str::str#12 print_char_cursor#102 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:48 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:52 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:56 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:60 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] ) [86] (byte*) print_str::str#12 ← phi( sin8u_table::@11/(const string) sin8u_table::str4 sin8u_table::@16/(const string) sin8u_table::str5 sin8u_table::@18/(const string) sin8u_table::str6 sin8u_table::@20/(const string) sin8u_table::str7 sin8u_table::@22/(const string) sin8u_table::str8 sin8u_table::@3/(const string) sin8u_table::str sin8u_table::@5/(const string) sin8u_table::str1 sin8u_table::@7/(const string) sin8u_table::str2 sin8u_table::@9/(const string) sin8u_table::str3 ) [ print_str::str#12 print_char_cursor#102 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:48 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:52 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:56 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:60 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.log index 5c2d7e41a..5b0b6615b 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.log @@ -507,12 +507,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -1183,12 +1184,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1559,7 +1560,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1577,6 +1577,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -2720,13 +2721,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @28: scope:[] from @27 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@29 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -2899,7 +2900,7 @@ Eliminating unused variable - keeping the call (void~) sin8u_table::$28 Eliminating unused variable - keeping the call (void~) sin8u_table::$29 Eliminating unused variable - keeping the call (void~) sin8u_table::$30 Eliminating unused variable - keeping the call (void~) sin8u_table::$31 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) sin8u_table::str "step:@" Creating constant string variable for inline (const string) sin8u_table::str1 " min:@" Creating constant string variable for inline (const string) sin8u_table::str2 " max:@" @@ -2946,7 +2947,6 @@ Removing empty block @24 Removing empty block @25 Removing empty block @26 Removing empty block @27 -Removing empty block @28 Removing empty block @29 Removing empty block @30 Removing empty block @31 @@ -3192,7 +3192,7 @@ mul8su::@return: scope:[mul8su] from mul8su::@1 return to:@return @12: scope:[] from @2 - (word) rem16u#26 ← phi( @2/(word) rem16u#0 ) + (word) rem16u#28 ← phi( @2/(word) rem16u#0 ) (word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736 (word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868 (word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434 @@ -3354,11 +3354,11 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2 return to:@return @18: scope:[] from @12 - (word) rem16u#25 ← phi( @12/(word) rem16u#26 ) + (word) rem16u#26 ← phi( @12/(word) rem16u#28 ) (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@34 + to:@28 print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@16 sin8u_table::@18 sin8u_table::@20 sin8u_table::@22 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9 (byte*) print_char_cursor#102 ← phi( sin8u_table::@11/(byte*) print_char_cursor#31 sin8u_table::@16/(byte*) print_char_cursor#100 sin8u_table::@18/(byte*) print_char_cursor#36 sin8u_table::@20/(byte*) print_char_cursor#38 sin8u_table::@22/(byte*) print_char_cursor#40 sin8u_table::@3/(byte*) print_char_cursor#99 sin8u_table::@5/(byte*) print_char_cursor#25 sin8u_table::@7/(byte*) print_char_cursor#27 sin8u_table::@9/(byte*) print_char_cursor#29 ) (byte*) print_str::str#12 ← phi( sin8u_table::@11/(byte*) print_str::str#5 sin8u_table::@16/(byte*) print_str::str#6 sin8u_table::@18/(byte*) print_str::str#7 sin8u_table::@20/(byte*) print_str::str#8 sin8u_table::@22/(byte*) print_str::str#9 sin8u_table::@3/(byte*) print_str::str#1 sin8u_table::@5/(byte*) print_str::str#2 sin8u_table::@7/(byte*) print_str::str#3 sin8u_table::@9/(byte*) print_str::str#4 ) @@ -3500,12 +3500,18 @@ print_word::@return: scope:[print_word] from print_word::@2 (byte*) print_char_cursor#13 ← (byte*) print_char_cursor#58 return to:@return +@28: scope:[] from @18 + (byte*) print_screen#6 ← phi( @18/(byte*) print_screen#0 ) + (word) rem16u#25 ← phi( @18/(word) rem16u#26 ) + (byte*) print_char_cursor#107 ← phi( @18/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#30 ← phi( @18/(byte*) print_line_cursor#0 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@34 print_byte: scope:[print_byte] from print_sbyte::@1 print_word print_word::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@23 sin8u_table::@6 sin8u_table::@8 (byte*) print_char_cursor#97 ← phi( print_sbyte::@1/(byte*) print_char_cursor#94 print_word/(byte*) print_char_cursor#96 print_word::@1/(byte*) print_char_cursor#11 sin8u_table::@10/(byte*) print_char_cursor#30 sin8u_table::@12/(byte*) print_char_cursor#32 sin8u_table::@23/(byte*) print_char_cursor#41 sin8u_table::@6/(byte*) print_char_cursor#26 sin8u_table::@8/(byte*) print_char_cursor#28 ) (byte) print_byte::b#8 ← phi( print_sbyte::@1/(byte) print_byte::b#0 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 sin8u_table::@10/(byte) print_byte::b#5 sin8u_table::@12/(byte) print_byte::b#6 sin8u_table::@23/(byte) print_byte::b#7 sin8u_table::@6/(byte) print_byte::b#3 sin8u_table::@8/(byte) print_byte::b#4 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#8 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#2 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -3513,7 +3519,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#59 ← phi( print_byte/(byte*) print_char_cursor#18 ) (byte*) print_char_cursor#14 ← (byte*) print_char_cursor#59 (byte~) print_byte::$2 ← (byte) print_byte::b#9 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#3 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -3602,7 +3608,7 @@ main::@return: scope:[main] from main::@2 to:@return sin8u_table: scope:[sin8u_table] from main::@1 (byte*) sin8u_table::sintab#26 ← phi( main::@1/(byte*) sin8u_table::sintab#0 ) - (byte*) print_line_cursor#48 ← phi( main::@1/(byte*) print_line_cursor#5 ) + (byte*) print_line_cursor#49 ← phi( main::@1/(byte*) print_line_cursor#5 ) (byte*) print_char_cursor#105 ← phi( main::@1/(byte*) print_char_cursor#21 ) (word) rem16u#20 ← phi( main::@1/(word) rem16u#19 ) (word) sin8u_table::tabsize#1 ← phi( main::@1/(word) sin8u_table::tabsize#0 ) @@ -3625,7 +3631,7 @@ sin8u_table: scope:[sin8u_table] from main::@1 sin8u_table::@3: scope:[sin8u_table] from sin8u_table (word) sin8u_table::tabsize#25 ← phi( sin8u_table/(word) sin8u_table::tabsize#1 ) (byte*) sin8u_table::sintab#25 ← phi( sin8u_table/(byte*) sin8u_table::sintab#26 ) - (byte*) print_line_cursor#46 ← phi( sin8u_table/(byte*) print_line_cursor#48 ) + (byte*) print_line_cursor#47 ← phi( sin8u_table/(byte*) print_line_cursor#49 ) (byte) sin8u_table::mid#21 ← phi( sin8u_table/(byte) sin8u_table::mid#0 ) (byte) sin8u_table::amplitude#19 ← phi( sin8u_table/(byte) sin8u_table::amplitude#0 ) (byte) sin8u_table::max#7 ← phi( sin8u_table/(byte) sin8u_table::max#1 ) @@ -3640,10 +3646,10 @@ sin8u_table::@3: scope:[sin8u_table] from sin8u_table call print_str param-assignment to:sin8u_table::@4 sin8u_table::@4: scope:[sin8u_table] from sin8u_table::@3 - (word) rem16u#47 ← phi( sin8u_table::@3/(word) rem16u#7 ) + (word) rem16u#48 ← phi( sin8u_table::@3/(word) rem16u#7 ) (word) sin8u_table::tabsize#24 ← phi( sin8u_table::@3/(word) sin8u_table::tabsize#25 ) (byte*) sin8u_table::sintab#24 ← phi( sin8u_table::@3/(byte*) sin8u_table::sintab#25 ) - (byte*) print_line_cursor#44 ← phi( sin8u_table::@3/(byte*) print_line_cursor#46 ) + (byte*) print_line_cursor#45 ← phi( sin8u_table::@3/(byte*) print_line_cursor#47 ) (byte) sin8u_table::mid#19 ← phi( sin8u_table::@3/(byte) sin8u_table::mid#21 ) (byte) sin8u_table::amplitude#17 ← phi( sin8u_table::@3/(byte) sin8u_table::amplitude#19 ) (byte) sin8u_table::max#6 ← phi( sin8u_table::@3/(byte) sin8u_table::max#7 ) @@ -3655,11 +3661,11 @@ sin8u_table::@4: scope:[sin8u_table] from sin8u_table::@3 call print_word param-assignment to:sin8u_table::@5 sin8u_table::@5: scope:[sin8u_table] from sin8u_table::@4 - (word) rem16u#46 ← phi( sin8u_table::@4/(word) rem16u#47 ) + (word) rem16u#47 ← phi( sin8u_table::@4/(word) rem16u#48 ) (word) sin8u_table::tabsize#23 ← phi( sin8u_table::@4/(word) sin8u_table::tabsize#24 ) (word) sin8u_table::step#23 ← phi( sin8u_table::@4/(word) sin8u_table::step#1 ) (byte*) sin8u_table::sintab#23 ← phi( sin8u_table::@4/(byte*) sin8u_table::sintab#24 ) - (byte*) print_line_cursor#42 ← phi( sin8u_table::@4/(byte*) print_line_cursor#44 ) + (byte*) print_line_cursor#43 ← phi( sin8u_table::@4/(byte*) print_line_cursor#45 ) (byte) sin8u_table::mid#17 ← phi( sin8u_table::@4/(byte) sin8u_table::mid#19 ) (byte) sin8u_table::amplitude#14 ← phi( sin8u_table::@4/(byte) sin8u_table::amplitude#17 ) (byte) sin8u_table::max#5 ← phi( sin8u_table::@4/(byte) sin8u_table::max#6 ) @@ -3670,11 +3676,11 @@ sin8u_table::@5: scope:[sin8u_table] from sin8u_table::@4 call print_str param-assignment to:sin8u_table::@6 sin8u_table::@6: scope:[sin8u_table] from sin8u_table::@5 - (word) rem16u#45 ← phi( sin8u_table::@5/(word) rem16u#46 ) + (word) rem16u#46 ← phi( sin8u_table::@5/(word) rem16u#47 ) (word) sin8u_table::tabsize#22 ← phi( sin8u_table::@5/(word) sin8u_table::tabsize#23 ) (word) sin8u_table::step#22 ← phi( sin8u_table::@5/(word) sin8u_table::step#23 ) (byte*) sin8u_table::sintab#21 ← phi( sin8u_table::@5/(byte*) sin8u_table::sintab#23 ) - (byte*) print_line_cursor#40 ← phi( sin8u_table::@5/(byte*) print_line_cursor#42 ) + (byte*) print_line_cursor#41 ← phi( sin8u_table::@5/(byte*) print_line_cursor#43 ) (byte) sin8u_table::mid#15 ← phi( sin8u_table::@5/(byte) sin8u_table::mid#17 ) (byte) sin8u_table::amplitude#11 ← phi( sin8u_table::@5/(byte) sin8u_table::amplitude#14 ) (byte) sin8u_table::max#4 ← phi( sin8u_table::@5/(byte) sin8u_table::max#5 ) @@ -3685,11 +3691,11 @@ sin8u_table::@6: scope:[sin8u_table] from sin8u_table::@5 call print_byte param-assignment to:sin8u_table::@7 sin8u_table::@7: scope:[sin8u_table] from sin8u_table::@6 - (word) rem16u#44 ← phi( sin8u_table::@6/(word) rem16u#45 ) + (word) rem16u#45 ← phi( sin8u_table::@6/(word) rem16u#46 ) (word) sin8u_table::tabsize#21 ← phi( sin8u_table::@6/(word) sin8u_table::tabsize#22 ) (word) sin8u_table::step#21 ← phi( sin8u_table::@6/(word) sin8u_table::step#22 ) (byte*) sin8u_table::sintab#19 ← phi( sin8u_table::@6/(byte*) sin8u_table::sintab#21 ) - (byte*) print_line_cursor#38 ← phi( sin8u_table::@6/(byte*) print_line_cursor#40 ) + (byte*) print_line_cursor#39 ← phi( sin8u_table::@6/(byte*) print_line_cursor#41 ) (byte) sin8u_table::mid#13 ← phi( sin8u_table::@6/(byte) sin8u_table::mid#15 ) (byte) sin8u_table::amplitude#8 ← phi( sin8u_table::@6/(byte) sin8u_table::amplitude#11 ) (byte) sin8u_table::max#3 ← phi( sin8u_table::@6/(byte) sin8u_table::max#4 ) @@ -3699,11 +3705,11 @@ sin8u_table::@7: scope:[sin8u_table] from sin8u_table::@6 call print_str param-assignment to:sin8u_table::@8 sin8u_table::@8: scope:[sin8u_table] from sin8u_table::@7 - (word) rem16u#43 ← phi( sin8u_table::@7/(word) rem16u#44 ) + (word) rem16u#44 ← phi( sin8u_table::@7/(word) rem16u#45 ) (word) sin8u_table::tabsize#20 ← phi( sin8u_table::@7/(word) sin8u_table::tabsize#21 ) (word) sin8u_table::step#20 ← phi( sin8u_table::@7/(word) sin8u_table::step#21 ) (byte*) sin8u_table::sintab#17 ← phi( sin8u_table::@7/(byte*) sin8u_table::sintab#19 ) - (byte*) print_line_cursor#36 ← phi( sin8u_table::@7/(byte*) print_line_cursor#38 ) + (byte*) print_line_cursor#37 ← phi( sin8u_table::@7/(byte*) print_line_cursor#39 ) (byte) sin8u_table::mid#10 ← phi( sin8u_table::@7/(byte) sin8u_table::mid#13 ) (byte) sin8u_table::amplitude#5 ← phi( sin8u_table::@7/(byte) sin8u_table::amplitude#8 ) (byte) sin8u_table::max#2 ← phi( sin8u_table::@7/(byte) sin8u_table::max#3 ) @@ -3713,11 +3719,11 @@ sin8u_table::@8: scope:[sin8u_table] from sin8u_table::@7 call print_byte param-assignment to:sin8u_table::@9 sin8u_table::@9: scope:[sin8u_table] from sin8u_table::@8 - (word) rem16u#42 ← phi( sin8u_table::@8/(word) rem16u#43 ) + (word) rem16u#43 ← phi( sin8u_table::@8/(word) rem16u#44 ) (word) sin8u_table::tabsize#19 ← phi( sin8u_table::@8/(word) sin8u_table::tabsize#20 ) (word) sin8u_table::step#19 ← phi( sin8u_table::@8/(word) sin8u_table::step#20 ) (byte*) sin8u_table::sintab#15 ← phi( sin8u_table::@8/(byte*) sin8u_table::sintab#17 ) - (byte*) print_line_cursor#34 ← phi( sin8u_table::@8/(byte*) print_line_cursor#36 ) + (byte*) print_line_cursor#35 ← phi( sin8u_table::@8/(byte*) print_line_cursor#37 ) (byte) sin8u_table::mid#7 ← phi( sin8u_table::@8/(byte) sin8u_table::mid#10 ) (byte) sin8u_table::amplitude#3 ← phi( sin8u_table::@8/(byte) sin8u_table::amplitude#5 ) (byte*) print_char_cursor#73 ← phi( sin8u_table::@8/(byte*) print_char_cursor#16 ) @@ -3726,11 +3732,11 @@ sin8u_table::@9: scope:[sin8u_table] from sin8u_table::@8 call print_str param-assignment to:sin8u_table::@10 sin8u_table::@10: scope:[sin8u_table] from sin8u_table::@9 - (word) rem16u#41 ← phi( sin8u_table::@9/(word) rem16u#42 ) + (word) rem16u#42 ← phi( sin8u_table::@9/(word) rem16u#43 ) (word) sin8u_table::tabsize#18 ← phi( sin8u_table::@9/(word) sin8u_table::tabsize#19 ) (word) sin8u_table::step#18 ← phi( sin8u_table::@9/(word) sin8u_table::step#19 ) (byte*) sin8u_table::sintab#13 ← phi( sin8u_table::@9/(byte*) sin8u_table::sintab#15 ) - (byte*) print_line_cursor#32 ← phi( sin8u_table::@9/(byte*) print_line_cursor#34 ) + (byte*) print_line_cursor#33 ← phi( sin8u_table::@9/(byte*) print_line_cursor#35 ) (byte) sin8u_table::mid#5 ← phi( sin8u_table::@9/(byte) sin8u_table::mid#7 ) (byte) sin8u_table::amplitude#1 ← phi( sin8u_table::@9/(byte) sin8u_table::amplitude#3 ) (byte*) print_char_cursor#74 ← phi( sin8u_table::@9/(byte*) print_char_cursor#2 ) @@ -3739,12 +3745,12 @@ sin8u_table::@10: scope:[sin8u_table] from sin8u_table::@9 call print_byte param-assignment to:sin8u_table::@11 sin8u_table::@11: scope:[sin8u_table] from sin8u_table::@10 - (word) rem16u#40 ← phi( sin8u_table::@10/(word) rem16u#41 ) + (word) rem16u#41 ← phi( sin8u_table::@10/(word) rem16u#42 ) (word) sin8u_table::tabsize#17 ← phi( sin8u_table::@10/(word) sin8u_table::tabsize#18 ) (word) sin8u_table::step#17 ← phi( sin8u_table::@10/(word) sin8u_table::step#18 ) (byte*) sin8u_table::sintab#11 ← phi( sin8u_table::@10/(byte*) sin8u_table::sintab#13 ) (byte) sin8u_table::amplitude#15 ← phi( sin8u_table::@10/(byte) sin8u_table::amplitude#1 ) - (byte*) print_line_cursor#30 ← phi( sin8u_table::@10/(byte*) print_line_cursor#32 ) + (byte*) print_line_cursor#31 ← phi( sin8u_table::@10/(byte*) print_line_cursor#33 ) (byte) sin8u_table::mid#3 ← phi( sin8u_table::@10/(byte) sin8u_table::mid#5 ) (byte*) print_char_cursor#75 ← phi( sin8u_table::@10/(byte*) print_char_cursor#16 ) (byte*) print_char_cursor#31 ← (byte*) print_char_cursor#75 @@ -3752,12 +3758,12 @@ sin8u_table::@11: scope:[sin8u_table] from sin8u_table::@10 call print_str param-assignment to:sin8u_table::@12 sin8u_table::@12: scope:[sin8u_table] from sin8u_table::@11 - (word) rem16u#39 ← phi( sin8u_table::@11/(word) rem16u#40 ) + (word) rem16u#40 ← phi( sin8u_table::@11/(word) rem16u#41 ) (word) sin8u_table::tabsize#16 ← phi( sin8u_table::@11/(word) sin8u_table::tabsize#17 ) (word) sin8u_table::step#16 ← phi( sin8u_table::@11/(word) sin8u_table::step#17 ) (byte*) sin8u_table::sintab#9 ← phi( sin8u_table::@11/(byte*) sin8u_table::sintab#11 ) (byte) sin8u_table::amplitude#12 ← phi( sin8u_table::@11/(byte) sin8u_table::amplitude#15 ) - (byte*) print_line_cursor#28 ← phi( sin8u_table::@11/(byte*) print_line_cursor#30 ) + (byte*) print_line_cursor#28 ← phi( sin8u_table::@11/(byte*) print_line_cursor#31 ) (byte) sin8u_table::mid#1 ← phi( sin8u_table::@11/(byte) sin8u_table::mid#3 ) (byte*) print_char_cursor#76 ← phi( sin8u_table::@11/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#32 ← (byte*) print_char_cursor#76 @@ -3765,7 +3771,7 @@ sin8u_table::@12: scope:[sin8u_table] from sin8u_table::@11 call print_byte param-assignment to:sin8u_table::@13 sin8u_table::@13: scope:[sin8u_table] from sin8u_table::@12 - (word) rem16u#38 ← phi( sin8u_table::@12/(word) rem16u#39 ) + (word) rem16u#39 ← phi( sin8u_table::@12/(word) rem16u#40 ) (word) sin8u_table::tabsize#15 ← phi( sin8u_table::@12/(word) sin8u_table::tabsize#16 ) (word) sin8u_table::step#15 ← phi( sin8u_table::@12/(word) sin8u_table::step#16 ) (byte*) sin8u_table::sintab#7 ← phi( sin8u_table::@12/(byte*) sin8u_table::sintab#9 ) @@ -3777,7 +3783,7 @@ sin8u_table::@13: scope:[sin8u_table] from sin8u_table::@12 call print_ln param-assignment to:sin8u_table::@14 sin8u_table::@14: scope:[sin8u_table] from sin8u_table::@13 - (word) rem16u#37 ← phi( sin8u_table::@13/(word) rem16u#38 ) + (word) rem16u#38 ← phi( sin8u_table::@13/(word) rem16u#39 ) (word) sin8u_table::tabsize#14 ← phi( sin8u_table::@13/(word) sin8u_table::tabsize#15 ) (word) sin8u_table::step#14 ← phi( sin8u_table::@13/(word) sin8u_table::step#15 ) (byte*) sin8u_table::sintab#5 ← phi( sin8u_table::@13/(byte*) sin8u_table::sintab#7 ) @@ -3791,12 +3797,12 @@ sin8u_table::@14: scope:[sin8u_table] from sin8u_table::@13 (word) sin8u_table::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:sin8u_table::@1 sin8u_table::@1: scope:[sin8u_table] from sin8u_table::@14 sin8u_table::@25 - (word) rem16u#36 ← phi( sin8u_table::@14/(word) rem16u#37 sin8u_table::@25/(word) rem16u#21 ) + (word) rem16u#37 ← phi( sin8u_table::@14/(word) rem16u#38 sin8u_table::@25/(word) rem16u#21 ) (word) sin8u_table::tabsize#13 ← phi( sin8u_table::@14/(word) sin8u_table::tabsize#14 sin8u_table::@25/(word) sin8u_table::tabsize#2 ) (word) sin8u_table::i#13 ← phi( sin8u_table::@14/(word) sin8u_table::i#0 sin8u_table::@25/(word) sin8u_table::i#1 ) (word) sin8u_table::step#13 ← phi( sin8u_table::@14/(word) sin8u_table::step#14 sin8u_table::@25/(word) sin8u_table::step#2 ) - (byte*) print_line_cursor#47 ← phi( sin8u_table::@14/(byte*) print_line_cursor#8 sin8u_table::@25/(byte*) print_line_cursor#9 ) - (byte*) print_char_cursor#107 ← phi( sin8u_table::@14/(byte*) print_char_cursor#34 sin8u_table::@25/(byte*) print_char_cursor#43 ) + (byte*) print_line_cursor#48 ← phi( sin8u_table::@14/(byte*) print_line_cursor#8 sin8u_table::@25/(byte*) print_line_cursor#9 ) + (byte*) print_char_cursor#108 ← phi( sin8u_table::@14/(byte*) print_char_cursor#34 sin8u_table::@25/(byte*) print_char_cursor#43 ) (byte*) sin8u_table::sintab#4 ← phi( sin8u_table::@14/(byte*) sin8u_table::sintab#5 sin8u_table::@25/(byte*) sin8u_table::sintab#6 ) (byte) sin8u_table::mid#6 ← phi( sin8u_table::@14/(byte) sin8u_table::mid#8 sin8u_table::@25/(byte) sin8u_table::mid#9 ) (byte) sin8u_table::amplitude#4 ← phi( sin8u_table::@14/(byte) sin8u_table::amplitude#6 sin8u_table::@25/(byte) sin8u_table::amplitude#7 ) @@ -3806,13 +3812,13 @@ sin8u_table::@1: scope:[sin8u_table] from sin8u_table::@14 sin8u_table::@25 (signed byte) sin8s::return#2 ← (signed byte) sin8s::return#1 to:sin8u_table::@15 sin8u_table::@15: scope:[sin8u_table] from sin8u_table::@1 - (word) rem16u#35 ← phi( sin8u_table::@1/(word) rem16u#36 ) + (word) rem16u#36 ← phi( sin8u_table::@1/(word) rem16u#37 ) (word) sin8u_table::tabsize#12 ← phi( sin8u_table::@1/(word) sin8u_table::tabsize#13 ) (word) sin8u_table::i#12 ← phi( sin8u_table::@1/(word) sin8u_table::i#13 ) (word) sin8u_table::step#12 ← phi( sin8u_table::@1/(word) sin8u_table::step#13 ) - (byte*) print_line_cursor#45 ← phi( sin8u_table::@1/(byte*) print_line_cursor#47 ) + (byte*) print_line_cursor#46 ← phi( sin8u_table::@1/(byte*) print_line_cursor#48 ) (word) sin8u_table::x#7 ← phi( sin8u_table::@1/(word) sin8u_table::x#2 ) - (byte*) print_char_cursor#106 ← phi( sin8u_table::@1/(byte*) print_char_cursor#107 ) + (byte*) print_char_cursor#106 ← phi( sin8u_table::@1/(byte*) print_char_cursor#108 ) (byte*) sin8u_table::sintab#3 ← phi( sin8u_table::@1/(byte*) sin8u_table::sintab#4 ) (byte) sin8u_table::mid#4 ← phi( sin8u_table::@1/(byte) sin8u_table::mid#6 ) (byte) sin8u_table::amplitude#2 ← phi( sin8u_table::@1/(byte) sin8u_table::amplitude#4 ) @@ -3827,11 +3833,11 @@ sin8u_table::@15: scope:[sin8u_table] from sin8u_table::@1 to:sin8u_table::@16 sin8u_table::@16: scope:[sin8u_table] from sin8u_table::@15 (byte) sin8u_table::amplitude#24 ← phi( sin8u_table::@15/(byte) sin8u_table::amplitude#2 ) - (word) rem16u#34 ← phi( sin8u_table::@15/(word) rem16u#35 ) + (word) rem16u#35 ← phi( sin8u_table::@15/(word) rem16u#36 ) (word) sin8u_table::tabsize#11 ← phi( sin8u_table::@15/(word) sin8u_table::tabsize#12 ) (word) sin8u_table::i#11 ← phi( sin8u_table::@15/(word) sin8u_table::i#12 ) (word) sin8u_table::step#11 ← phi( sin8u_table::@15/(word) sin8u_table::step#12 ) - (byte*) print_line_cursor#43 ← phi( sin8u_table::@15/(byte*) print_line_cursor#45 ) + (byte*) print_line_cursor#44 ← phi( sin8u_table::@15/(byte*) print_line_cursor#46 ) (signed byte) sin8u_table::sinx#4 ← phi( sin8u_table::@15/(signed byte) sin8u_table::sinx#0 ) (word) sin8u_table::x#5 ← phi( sin8u_table::@15/(word) sin8u_table::x#7 ) (byte*) print_char_cursor#100 ← phi( sin8u_table::@15/(byte*) print_char_cursor#106 ) @@ -3852,11 +3858,11 @@ sin8u_table::@17: scope:[sin8u_table] from sin8u_table::@16 (byte*) sin8u_table::sintab#22 ← phi( sin8u_table::@16/(byte*) sin8u_table::sintab#1 ) (byte) sin8u_table::mid#24 ← phi( sin8u_table::@16/(byte) sin8u_table::mid#2 ) (byte) sin8u_table::amplitude#23 ← phi( sin8u_table::@16/(byte) sin8u_table::amplitude#24 ) - (word) rem16u#33 ← phi( sin8u_table::@16/(word) rem16u#34 ) + (word) rem16u#34 ← phi( sin8u_table::@16/(word) rem16u#35 ) (word) sin8u_table::tabsize#10 ← phi( sin8u_table::@16/(word) sin8u_table::tabsize#11 ) (word) sin8u_table::i#10 ← phi( sin8u_table::@16/(word) sin8u_table::i#11 ) (word) sin8u_table::step#10 ← phi( sin8u_table::@16/(word) sin8u_table::step#11 ) - (byte*) print_line_cursor#41 ← phi( sin8u_table::@16/(byte*) print_line_cursor#43 ) + (byte*) print_line_cursor#42 ← phi( sin8u_table::@16/(byte*) print_line_cursor#44 ) (byte) sin8u_table::sinx_tr#7 ← phi( sin8u_table::@16/(byte) sin8u_table::sinx_tr#0 ) (signed word) sin8u_table::sinx_sc#5 ← phi( sin8u_table::@16/(signed word) sin8u_table::sinx_sc#0 ) (signed byte) sin8u_table::sinx#3 ← phi( sin8u_table::@16/(signed byte) sin8u_table::sinx#4 ) @@ -3870,12 +3876,12 @@ sin8u_table::@18: scope:[sin8u_table] from sin8u_table::@17 (byte*) sin8u_table::sintab#20 ← phi( sin8u_table::@17/(byte*) sin8u_table::sintab#22 ) (byte) sin8u_table::mid#23 ← phi( sin8u_table::@17/(byte) sin8u_table::mid#24 ) (byte) sin8u_table::amplitude#22 ← phi( sin8u_table::@17/(byte) sin8u_table::amplitude#23 ) - (word) rem16u#32 ← phi( sin8u_table::@17/(word) rem16u#33 ) + (word) rem16u#33 ← phi( sin8u_table::@17/(word) rem16u#34 ) (word) sin8u_table::tabsize#9 ← phi( sin8u_table::@17/(word) sin8u_table::tabsize#10 ) (word) sin8u_table::i#9 ← phi( sin8u_table::@17/(word) sin8u_table::i#10 ) (word) sin8u_table::step#9 ← phi( sin8u_table::@17/(word) sin8u_table::step#10 ) (word) sin8u_table::x#13 ← phi( sin8u_table::@17/(word) sin8u_table::x#3 ) - (byte*) print_line_cursor#39 ← phi( sin8u_table::@17/(byte*) print_line_cursor#41 ) + (byte*) print_line_cursor#40 ← phi( sin8u_table::@17/(byte*) print_line_cursor#42 ) (byte) sin8u_table::sinx_tr#6 ← phi( sin8u_table::@17/(byte) sin8u_table::sinx_tr#7 ) (signed word) sin8u_table::sinx_sc#4 ← phi( sin8u_table::@17/(signed word) sin8u_table::sinx_sc#5 ) (signed byte) sin8u_table::sinx#2 ← phi( sin8u_table::@17/(signed byte) sin8u_table::sinx#3 ) @@ -3888,12 +3894,12 @@ sin8u_table::@19: scope:[sin8u_table] from sin8u_table::@18 (byte*) sin8u_table::sintab#18 ← phi( sin8u_table::@18/(byte*) sin8u_table::sintab#20 ) (byte) sin8u_table::mid#22 ← phi( sin8u_table::@18/(byte) sin8u_table::mid#23 ) (byte) sin8u_table::amplitude#21 ← phi( sin8u_table::@18/(byte) sin8u_table::amplitude#22 ) - (word) rem16u#31 ← phi( sin8u_table::@18/(word) rem16u#32 ) + (word) rem16u#32 ← phi( sin8u_table::@18/(word) rem16u#33 ) (word) sin8u_table::tabsize#8 ← phi( sin8u_table::@18/(word) sin8u_table::tabsize#9 ) (word) sin8u_table::i#8 ← phi( sin8u_table::@18/(word) sin8u_table::i#9 ) (word) sin8u_table::step#8 ← phi( sin8u_table::@18/(word) sin8u_table::step#9 ) (word) sin8u_table::x#12 ← phi( sin8u_table::@18/(word) sin8u_table::x#13 ) - (byte*) print_line_cursor#37 ← phi( sin8u_table::@18/(byte*) print_line_cursor#39 ) + (byte*) print_line_cursor#38 ← phi( sin8u_table::@18/(byte*) print_line_cursor#40 ) (byte) sin8u_table::sinx_tr#5 ← phi( sin8u_table::@18/(byte) sin8u_table::sinx_tr#6 ) (signed word) sin8u_table::sinx_sc#3 ← phi( sin8u_table::@18/(signed word) sin8u_table::sinx_sc#4 ) (signed byte) sin8u_table::sinx#1 ← phi( sin8u_table::@18/(signed byte) sin8u_table::sinx#2 ) @@ -3906,12 +3912,12 @@ sin8u_table::@20: scope:[sin8u_table] from sin8u_table::@19 (byte*) sin8u_table::sintab#16 ← phi( sin8u_table::@19/(byte*) sin8u_table::sintab#18 ) (byte) sin8u_table::mid#20 ← phi( sin8u_table::@19/(byte) sin8u_table::mid#22 ) (byte) sin8u_table::amplitude#20 ← phi( sin8u_table::@19/(byte) sin8u_table::amplitude#21 ) - (word) rem16u#30 ← phi( sin8u_table::@19/(word) rem16u#31 ) + (word) rem16u#31 ← phi( sin8u_table::@19/(word) rem16u#32 ) (word) sin8u_table::tabsize#7 ← phi( sin8u_table::@19/(word) sin8u_table::tabsize#8 ) (word) sin8u_table::i#7 ← phi( sin8u_table::@19/(word) sin8u_table::i#8 ) (word) sin8u_table::step#7 ← phi( sin8u_table::@19/(word) sin8u_table::step#8 ) (word) sin8u_table::x#11 ← phi( sin8u_table::@19/(word) sin8u_table::x#12 ) - (byte*) print_line_cursor#35 ← phi( sin8u_table::@19/(byte*) print_line_cursor#37 ) + (byte*) print_line_cursor#36 ← phi( sin8u_table::@19/(byte*) print_line_cursor#38 ) (byte) sin8u_table::sinx_tr#4 ← phi( sin8u_table::@19/(byte) sin8u_table::sinx_tr#5 ) (signed word) sin8u_table::sinx_sc#2 ← phi( sin8u_table::@19/(signed word) sin8u_table::sinx_sc#3 ) (byte*) print_char_cursor#82 ← phi( sin8u_table::@19/(byte*) print_char_cursor#10 ) @@ -3923,12 +3929,12 @@ sin8u_table::@21: scope:[sin8u_table] from sin8u_table::@20 (byte*) sin8u_table::sintab#14 ← phi( sin8u_table::@20/(byte*) sin8u_table::sintab#16 ) (byte) sin8u_table::mid#18 ← phi( sin8u_table::@20/(byte) sin8u_table::mid#20 ) (byte) sin8u_table::amplitude#18 ← phi( sin8u_table::@20/(byte) sin8u_table::amplitude#20 ) - (word) rem16u#29 ← phi( sin8u_table::@20/(word) rem16u#30 ) + (word) rem16u#30 ← phi( sin8u_table::@20/(word) rem16u#31 ) (word) sin8u_table::tabsize#6 ← phi( sin8u_table::@20/(word) sin8u_table::tabsize#7 ) (word) sin8u_table::i#6 ← phi( sin8u_table::@20/(word) sin8u_table::i#7 ) (word) sin8u_table::step#6 ← phi( sin8u_table::@20/(word) sin8u_table::step#7 ) (word) sin8u_table::x#10 ← phi( sin8u_table::@20/(word) sin8u_table::x#11 ) - (byte*) print_line_cursor#33 ← phi( sin8u_table::@20/(byte*) print_line_cursor#35 ) + (byte*) print_line_cursor#34 ← phi( sin8u_table::@20/(byte*) print_line_cursor#36 ) (byte) sin8u_table::sinx_tr#3 ← phi( sin8u_table::@20/(byte) sin8u_table::sinx_tr#4 ) (signed word) sin8u_table::sinx_sc#1 ← phi( sin8u_table::@20/(signed word) sin8u_table::sinx_sc#2 ) (byte*) print_char_cursor#83 ← phi( sin8u_table::@20/(byte*) print_char_cursor#2 ) @@ -3940,12 +3946,12 @@ sin8u_table::@22: scope:[sin8u_table] from sin8u_table::@21 (byte*) sin8u_table::sintab#12 ← phi( sin8u_table::@21/(byte*) sin8u_table::sintab#14 ) (byte) sin8u_table::mid#16 ← phi( sin8u_table::@21/(byte) sin8u_table::mid#18 ) (byte) sin8u_table::amplitude#16 ← phi( sin8u_table::@21/(byte) sin8u_table::amplitude#18 ) - (word) rem16u#28 ← phi( sin8u_table::@21/(word) rem16u#29 ) + (word) rem16u#29 ← phi( sin8u_table::@21/(word) rem16u#30 ) (word) sin8u_table::tabsize#5 ← phi( sin8u_table::@21/(word) sin8u_table::tabsize#6 ) (word) sin8u_table::i#5 ← phi( sin8u_table::@21/(word) sin8u_table::i#6 ) (word) sin8u_table::step#5 ← phi( sin8u_table::@21/(word) sin8u_table::step#6 ) (word) sin8u_table::x#9 ← phi( sin8u_table::@21/(word) sin8u_table::x#10 ) - (byte*) print_line_cursor#31 ← phi( sin8u_table::@21/(byte*) print_line_cursor#33 ) + (byte*) print_line_cursor#32 ← phi( sin8u_table::@21/(byte*) print_line_cursor#34 ) (byte) sin8u_table::sinx_tr#2 ← phi( sin8u_table::@21/(byte) sin8u_table::sinx_tr#3 ) (byte*) print_char_cursor#84 ← phi( sin8u_table::@21/(byte*) print_char_cursor#7 ) (byte*) print_char_cursor#40 ← (byte*) print_char_cursor#84 @@ -3956,12 +3962,12 @@ sin8u_table::@23: scope:[sin8u_table] from sin8u_table::@22 (byte*) sin8u_table::sintab#10 ← phi( sin8u_table::@22/(byte*) sin8u_table::sintab#12 ) (byte) sin8u_table::mid#14 ← phi( sin8u_table::@22/(byte) sin8u_table::mid#16 ) (byte) sin8u_table::amplitude#13 ← phi( sin8u_table::@22/(byte) sin8u_table::amplitude#16 ) - (word) rem16u#27 ← phi( sin8u_table::@22/(word) rem16u#28 ) + (word) rem16u#27 ← phi( sin8u_table::@22/(word) rem16u#29 ) (word) sin8u_table::tabsize#4 ← phi( sin8u_table::@22/(word) sin8u_table::tabsize#5 ) (word) sin8u_table::i#4 ← phi( sin8u_table::@22/(word) sin8u_table::i#5 ) (word) sin8u_table::step#4 ← phi( sin8u_table::@22/(word) sin8u_table::step#5 ) (word) sin8u_table::x#8 ← phi( sin8u_table::@22/(word) sin8u_table::x#9 ) - (byte*) print_line_cursor#29 ← phi( sin8u_table::@22/(byte*) print_line_cursor#31 ) + (byte*) print_line_cursor#29 ← phi( sin8u_table::@22/(byte*) print_line_cursor#32 ) (byte) sin8u_table::sinx_tr#1 ← phi( sin8u_table::@22/(byte) sin8u_table::sinx_tr#2 ) (byte*) print_char_cursor#85 ← phi( sin8u_table::@22/(byte*) print_char_cursor#2 ) (byte*) print_char_cursor#41 ← (byte*) print_char_cursor#85 @@ -4010,11 +4016,11 @@ sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@25 (byte*) print_line_cursor#10 ← (byte*) print_line_cursor#21 return to:@return -@34: scope:[] from @18 - (byte*) print_screen#5 ← phi( @18/(byte*) print_screen#0 ) - (word) rem16u#22 ← phi( @18/(word) rem16u#25 ) - (byte*) print_char_cursor#101 ← phi( @18/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#27 ← phi( @18/(byte*) print_line_cursor#0 ) +@34: scope:[] from @28 + (byte*) print_screen#5 ← phi( @28/(byte*) print_screen#6 ) + (word) rem16u#22 ← phi( @28/(word) rem16u#25 ) + (byte*) print_char_cursor#101 ← phi( @28/(byte*) print_char_cursor#107 ) + (byte*) print_line_cursor#27 ← phi( @28/(byte*) print_line_cursor#30 ) call main param-assignment to:@35 @35: scope:[] from @34 @@ -4028,9 +4034,11 @@ sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@25 @end: scope:[] from @35 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" (label) @12 (label) @18 (label) @2 +(label) @28 (label) @34 (label) @35 (label) @begin @@ -4269,7 +4277,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -4284,8 +4291,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#7 (byte) print_byte::b#8 (byte) print_byte::b#9 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -4306,6 +4311,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#105 (byte*) print_char_cursor#106 (byte*) print_char_cursor#107 +(byte*) print_char_cursor#108 (byte*) print_char_cursor#11 (byte*) print_char_cursor#12 (byte*) print_char_cursor#13 @@ -4413,6 +4419,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -4458,6 +4466,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#46 (byte*) print_line_cursor#47 (byte*) print_line_cursor#48 +(byte*) print_line_cursor#49 (byte*) print_line_cursor#5 (byte*) print_line_cursor#6 (byte*) print_line_cursor#7 @@ -4493,6 +4502,7 @@ SYMBOL TABLE SSA (byte*) print_screen#3 (byte*) print_screen#4 (byte*) print_screen#5 +(byte*) print_screen#6 (void()) print_str((byte*) print_str::str) (boolean~) print_str::$0 (label) print_str::@1 @@ -4585,6 +4595,7 @@ SYMBOL TABLE SSA (word) rem16u#45 (word) rem16u#46 (word) rem16u#47 +(word) rem16u#48 (word) rem16u#5 (word) rem16u#6 (word) rem16u#7 @@ -5040,7 +5051,7 @@ Not aliassing across scopes: sin8u_table::min#1 sin8u_table::min#0 Not aliassing across scopes: sin8u_table::tabsize#1 sin8u_table::tabsize#0 Not aliassing across scopes: rem16u#20 rem16u#19 Not aliassing across scopes: print_char_cursor#105 print_char_cursor#21 -Not aliassing across scopes: print_line_cursor#48 print_line_cursor#5 +Not aliassing across scopes: print_line_cursor#49 print_line_cursor#5 Not aliassing across scopes: sin8u_table::sintab#26 sin8u_table::sintab#0 Not aliassing across scopes: div16u::dividend#0 PI2_u4f12#0 Not aliassing across scopes: div16u::divisor#0 sin8u_table::tabsize#1 @@ -5119,7 +5130,7 @@ Alias (byte) mul8su::b#1 = (byte) mul8su::b#3 (byte) mul8su::b#2 Alias (word) mul8su::m#0 = (word~) mul8su::$2 (word) mul8su::m#3 Alias (signed word) mul8su::return#0 = (signed word~) mul8su::$9 (signed word) mul8su::return#3 (signed word) mul8su::return#1 Alias (byte~) mul8su::$10 = (byte~) mul8su::$8 -Alias (word) rem16u#0 = (word) rem16u#26 (word) rem16u#25 (word) rem16u#22 +Alias (word) rem16u#0 = (word) rem16u#28 (word) rem16u#26 (word) rem16u#25 (word) rem16u#22 Alias (word) sin8s::x#3 = (word) sin8s::x#5 Alias (word) sin8s::x#0 = (word~) sin8s::$2 Alias (byte) sin8s::x1#0 = (byte~) sin8s::$7 (byte) sin8s::x1#1 (byte) sin8s::x1#4 (byte) sin8s::x1#2 (byte) sin8s::x1#3 @@ -5147,7 +5158,7 @@ Alias (signed byte) sin8s::sinx#1 = (signed byte~) sin8s::$22 Alias (word) mul8u::return#3 = (word) mul8u::return#6 Alias (byte) mulu8_sel::select#5 = (byte) mulu8_sel::select#6 Alias (byte) mulu8_sel::return#12 = (byte) mulu8_sel::return#5 (byte~) mulu8_sel::$2 (byte) mulu8_sel::return#6 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#27 (byte*) print_char_cursor#101 (byte*) print_screen#5 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#30 (byte*) print_char_cursor#107 (byte*) print_screen#6 (byte*) print_line_cursor#27 (byte*) print_char_cursor#101 (byte*) print_screen#5 Alias (byte*) print_str::str#10 = (byte*) print_str::str#11 Alias (byte*) print_char_cursor#2 = (byte*) print_char_cursor#46 (byte*) print_char_cursor#90 (byte*) print_char_cursor#47 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#13 (byte*) print_char_cursor#3 (byte*) print_line_cursor#14 (byte*) print_char_cursor#49 (byte*) print_line_cursor#2 (byte*) print_char_cursor#4 @@ -5187,10 +5198,10 @@ Alias (word) div16u::return#2 = (word) div16u::return#4 Alias (byte*) print_char_cursor#105 = (byte*) print_char_cursor#99 Alias (byte) sin8u_table::min#1 = (byte) sin8u_table::min#5 (byte) sin8u_table::min#4 (byte) sin8u_table::min#3 (byte) sin8u_table::min#2 Alias (byte) sin8u_table::max#1 = (byte) sin8u_table::max#7 (byte) sin8u_table::max#6 (byte) sin8u_table::max#5 (byte) sin8u_table::max#4 (byte) sin8u_table::max#3 (byte) sin8u_table::max#2 -Alias (byte*) print_line_cursor#25 = (byte*) print_line_cursor#46 (byte*) print_line_cursor#48 (byte*) print_line_cursor#44 (byte*) print_line_cursor#42 (byte*) print_line_cursor#40 (byte*) print_line_cursor#38 (byte*) print_line_cursor#36 (byte*) print_line_cursor#34 (byte*) print_line_cursor#32 (byte*) print_line_cursor#30 (byte*) print_line_cursor#28 +Alias (byte*) print_line_cursor#25 = (byte*) print_line_cursor#47 (byte*) print_line_cursor#49 (byte*) print_line_cursor#45 (byte*) print_line_cursor#43 (byte*) print_line_cursor#41 (byte*) print_line_cursor#39 (byte*) print_line_cursor#37 (byte*) print_line_cursor#35 (byte*) print_line_cursor#33 (byte*) print_line_cursor#31 (byte*) print_line_cursor#28 Alias (byte*) sin8u_table::sintab#11 = (byte*) sin8u_table::sintab#25 (byte*) sin8u_table::sintab#26 (byte*) sin8u_table::sintab#24 (byte*) sin8u_table::sintab#23 (byte*) sin8u_table::sintab#21 (byte*) sin8u_table::sintab#19 (byte*) sin8u_table::sintab#17 (byte*) sin8u_table::sintab#15 (byte*) sin8u_table::sintab#13 (byte*) sin8u_table::sintab#9 (byte*) sin8u_table::sintab#7 (byte*) sin8u_table::sintab#5 Alias (word) sin8u_table::tabsize#1 = (word) sin8u_table::tabsize#25 (word) sin8u_table::tabsize#24 (word) sin8u_table::tabsize#23 (word) sin8u_table::tabsize#22 (word) sin8u_table::tabsize#21 (word) sin8u_table::tabsize#20 (word) sin8u_table::tabsize#19 (word) sin8u_table::tabsize#18 (word) sin8u_table::tabsize#17 (word) sin8u_table::tabsize#16 (word) sin8u_table::tabsize#15 (word) sin8u_table::tabsize#14 -Alias (word) rem16u#15 = (word) rem16u#7 (word) rem16u#47 (word) rem16u#46 (word) rem16u#45 (word) rem16u#44 (word) rem16u#43 (word) rem16u#42 (word) rem16u#41 (word) rem16u#40 (word) rem16u#39 (word) rem16u#38 (word) rem16u#37 +Alias (word) rem16u#15 = (word) rem16u#7 (word) rem16u#48 (word) rem16u#47 (word) rem16u#46 (word) rem16u#45 (word) rem16u#44 (word) rem16u#43 (word) rem16u#42 (word) rem16u#41 (word) rem16u#40 (word) rem16u#39 (word) rem16u#38 Alias (word) sin8u_table::step#0 = (word~) sin8u_table::$6 (word) sin8u_table::step#1 (word) sin8u_table::step#23 (word) sin8u_table::step#22 (word) sin8u_table::step#21 (word) sin8u_table::step#20 (word) sin8u_table::step#19 (word) sin8u_table::step#18 (word) sin8u_table::step#17 (word) sin8u_table::step#16 (word) sin8u_table::step#15 (word) sin8u_table::step#14 Alias (byte*) print_char_cursor#24 = (byte*) print_char_cursor#68 Alias (byte*) print_char_cursor#25 = (byte*) print_char_cursor#69 @@ -5208,13 +5219,13 @@ Alias (signed byte) sin8s::return#2 = (signed byte) sin8s::return#4 Alias (byte) sin8u_table::amplitude#10 = (byte) sin8u_table::amplitude#2 (byte) sin8u_table::amplitude#4 (byte) sin8u_table::amplitude#24 (byte) sin8u_table::amplitude#23 (byte) sin8u_table::amplitude#22 (byte) sin8u_table::amplitude#21 (byte) sin8u_table::amplitude#20 (byte) sin8u_table::amplitude#18 (byte) sin8u_table::amplitude#16 (byte) sin8u_table::amplitude#13 (byte) sin8u_table::amplitude#7 Alias (byte) sin8u_table::mid#12 = (byte) sin8u_table::mid#4 (byte) sin8u_table::mid#6 (byte) sin8u_table::mid#2 (byte) sin8u_table::mid#24 (byte) sin8u_table::mid#23 (byte) sin8u_table::mid#22 (byte) sin8u_table::mid#20 (byte) sin8u_table::mid#18 (byte) sin8u_table::mid#16 (byte) sin8u_table::mid#14 (byte) sin8u_table::mid#9 Alias (byte*) sin8u_table::sintab#2 = (byte*) sin8u_table::sintab#3 (byte*) sin8u_table::sintab#4 -Alias (byte*) print_char_cursor#100 = (byte*) print_char_cursor#106 (byte*) print_char_cursor#107 +Alias (byte*) print_char_cursor#100 = (byte*) print_char_cursor#106 (byte*) print_char_cursor#108 Alias (word) sin8u_table::x#10 = (word) sin8u_table::x#7 (word) sin8u_table::x#2 (word) sin8u_table::x#5 (word) sin8u_table::x#3 (word) sin8u_table::x#13 (word) sin8u_table::x#12 (word) sin8u_table::x#11 (word) sin8u_table::x#9 (word) sin8u_table::x#8 (word) sin8u_table::x#6 (word) sin8u_table::x#4 -Alias (byte*) print_line_cursor#26 = (byte*) print_line_cursor#45 (byte*) print_line_cursor#47 (byte*) print_line_cursor#43 (byte*) print_line_cursor#41 (byte*) print_line_cursor#39 (byte*) print_line_cursor#37 (byte*) print_line_cursor#35 (byte*) print_line_cursor#33 (byte*) print_line_cursor#31 (byte*) print_line_cursor#29 +Alias (byte*) print_line_cursor#26 = (byte*) print_line_cursor#46 (byte*) print_line_cursor#48 (byte*) print_line_cursor#44 (byte*) print_line_cursor#42 (byte*) print_line_cursor#40 (byte*) print_line_cursor#38 (byte*) print_line_cursor#36 (byte*) print_line_cursor#34 (byte*) print_line_cursor#32 (byte*) print_line_cursor#29 Alias (word) sin8u_table::step#10 = (word) sin8u_table::step#12 (word) sin8u_table::step#13 (word) sin8u_table::step#11 (word) sin8u_table::step#9 (word) sin8u_table::step#8 (word) sin8u_table::step#7 (word) sin8u_table::step#6 (word) sin8u_table::step#5 (word) sin8u_table::step#4 (word) sin8u_table::step#3 (word) sin8u_table::step#2 Alias (word) sin8u_table::i#10 = (word) sin8u_table::i#12 (word) sin8u_table::i#13 (word) sin8u_table::i#11 (word) sin8u_table::i#9 (word) sin8u_table::i#8 (word) sin8u_table::i#7 (word) sin8u_table::i#6 (word) sin8u_table::i#5 (word) sin8u_table::i#4 (word) sin8u_table::i#3 (word) sin8u_table::i#2 Alias (word) sin8u_table::tabsize#10 = (word) sin8u_table::tabsize#12 (word) sin8u_table::tabsize#13 (word) sin8u_table::tabsize#11 (word) sin8u_table::tabsize#9 (word) sin8u_table::tabsize#8 (word) sin8u_table::tabsize#7 (word) sin8u_table::tabsize#6 (word) sin8u_table::tabsize#5 (word) sin8u_table::tabsize#4 (word) sin8u_table::tabsize#3 (word) sin8u_table::tabsize#2 -Alias (word) rem16u#16 = (word) rem16u#35 (word) rem16u#36 (word) rem16u#34 (word) rem16u#33 (word) rem16u#32 (word) rem16u#31 (word) rem16u#30 (word) rem16u#29 (word) rem16u#28 (word) rem16u#27 (word) rem16u#24 (word) rem16u#21 (word) rem16u#8 +Alias (word) rem16u#16 = (word) rem16u#36 (word) rem16u#37 (word) rem16u#35 (word) rem16u#34 (word) rem16u#33 (word) rem16u#32 (word) rem16u#31 (word) rem16u#30 (word) rem16u#29 (word) rem16u#27 (word) rem16u#24 (word) rem16u#21 (word) rem16u#8 Alias (signed byte) sin8u_table::sinx#0 = (signed byte~) sin8u_table::$18 (signed byte) sin8u_table::sinx#4 (signed byte) sin8u_table::sinx#3 (signed byte) sin8u_table::sinx#2 (signed byte) sin8u_table::sinx#1 Alias (byte) mul8su::b#0 = (byte/signed word/word/dword/signed dword~) sin8u_table::$19 Alias (signed word) mul8su::return#2 = (signed word) mul8su::return#4 @@ -5634,7 +5645,7 @@ Constant (const byte) mulu8_sel::select#4 = 0 Constant (const byte*) print_line_cursor#0 = ((byte*))1024 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = '-' -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const word) main::tabsize#0 = 20 Constant (const byte[20]) main::sintab#0 = { fill( 20, 0) } Constant (const byte) sin8u_table::min#0 = 10 @@ -5698,6 +5709,7 @@ Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_sword::@3 Culled Empty Block (label) print_sbyte::@3 Culled Empty Block (label) print_word::@2 +Culled Empty Block (label) @28 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@2 @@ -5918,6 +5930,7 @@ Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin8u_table::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin8u_table::sintab#0 = (const byte[20]) main::sintab#0 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined sin8s::isUpper#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined sin8s::isUpper#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sin8u_table::$4 = (const word) sin8u_table::sum#0>>(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1 @@ -5951,7 +5964,6 @@ Constant inlined print_str::str#4 = (const string) sin8u_table::str3 Constant inlined print_str::str#3 = (const string) sin8u_table::str2 Constant inlined print_str::str#2 = (const string) sin8u_table::str1 Constant inlined print_str::str#1 = (const string) sin8u_table::str -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Constant inlined sin8u_table::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str::str#8 = (const string) sin8u_table::str7 Constant inlined print_str::str#7 = (const string) sin8u_table::str6 @@ -6058,53 +6070,53 @@ Propagating live ranges... Propagating live ranges... Created 42 initial phi equivalence classes Coalesced [15] print_word::w#7 ← print_word::w#1 -Coalesced [16] print_char_cursor#134 ← print_char_cursor#2 -Coalesced [18] print_char_cursor#125 ← print_char_cursor#17 -Coalesced [20] print_char_cursor#114 ← print_char_cursor#2 -Coalesced (already) [22] print_char_cursor#126 ← print_char_cursor#17 -Coalesced (already) [24] print_char_cursor#115 ← print_char_cursor#2 -Coalesced (already) [26] print_char_cursor#127 ← print_char_cursor#17 -Coalesced (already) [28] print_char_cursor#111 ← print_char_cursor#2 -Coalesced (already) [30] print_char_cursor#120 ← print_char_cursor#17 -Coalesced (already) [32] print_char_cursor#112 ← print_char_cursor#2 -Not coalescing [49] print_char_cursor#121 ← print_line_cursor#1 +Coalesced [16] print_char_cursor#135 ← print_char_cursor#2 +Coalesced [18] print_char_cursor#126 ← print_char_cursor#17 +Coalesced [20] print_char_cursor#115 ← print_char_cursor#2 +Coalesced (already) [22] print_char_cursor#127 ← print_char_cursor#17 +Coalesced (already) [24] print_char_cursor#116 ← print_char_cursor#2 +Coalesced (already) [26] print_char_cursor#128 ← print_char_cursor#17 +Coalesced (already) [28] print_char_cursor#112 ← print_char_cursor#2 +Coalesced (already) [30] print_char_cursor#121 ← print_char_cursor#17 +Coalesced (already) [32] print_char_cursor#113 ← print_char_cursor#2 +Not coalescing [49] print_char_cursor#122 ← print_line_cursor#1 Coalesced [52] print_word::w#6 ← print_word::w#2 -Coalesced (already) [53] print_char_cursor#133 ← print_char_cursor#2 -Coalesced (already) [55] print_char_cursor#122 ← print_char_cursor#17 -Coalesced (already) [59] print_char_cursor#123 ← print_char_cursor#17 -Coalesced (already) [63] print_char_cursor#124 ← print_char_cursor#17 +Coalesced (already) [53] print_char_cursor#134 ← print_char_cursor#2 +Coalesced (already) [55] print_char_cursor#123 ← print_char_cursor#17 +Coalesced (already) [59] print_char_cursor#124 ← print_char_cursor#17 +Coalesced (already) [63] print_char_cursor#125 ← print_char_cursor#17 Coalesced [66] print_byte::b#13 ← print_byte::b#7 -Coalesced (already) [67] print_char_cursor#113 ← print_char_cursor#2 -Coalesced [69] print_line_cursor#49 ← print_line_cursor#1 +Coalesced (already) [67] print_char_cursor#114 ← print_char_cursor#2 +Coalesced [69] print_line_cursor#50 ← print_line_cursor#1 Coalesced [75] sin8u_table::x#14 ← sin8u_table::x#1 Coalesced [76] sin8u_table::sintab#27 ← sin8u_table::sintab#1 Coalesced [77] sin8u_table::i#14 ← sin8u_table::i#1 -Coalesced [79] print_line_cursor#50 ← print_line_cursor#23 -Coalesced (already) [84] print_line_cursor#51 ← print_line_cursor#1 +Coalesced [79] print_line_cursor#51 ← print_line_cursor#23 +Coalesced (already) [84] print_line_cursor#52 ← print_line_cursor#1 Coalesced [88] print_char::ch#5 ← print_char::ch#2 -Coalesced [89] print_char_cursor#116 ← print_char_cursor#97 +Coalesced [89] print_char_cursor#117 ← print_char_cursor#97 Coalesced [93] print_char::ch#6 ← print_char::ch#3 -Coalesced [94] print_char_cursor#117 ← print_char_cursor#17 +Coalesced [94] print_char_cursor#118 ← print_char_cursor#17 Coalesced [102] print_str::str#13 ← print_str::str#12 -Coalesced (already) [103] print_char_cursor#128 ← print_char_cursor#102 +Coalesced (already) [103] print_char_cursor#129 ← print_char_cursor#102 Coalesced [110] print_str::str#14 ← print_str::str#0 -Coalesced [111] print_char_cursor#129 ← print_char_cursor#1 -Coalesced (already) [113] print_char_cursor#119 ← print_char_cursor#2 +Coalesced [111] print_char_cursor#130 ← print_char_cursor#1 +Coalesced (already) [113] print_char_cursor#120 ← print_char_cursor#2 Coalesced [116] print_sword::w#7 ← print_sword::w#0 -Coalesced [117] print_char_cursor#131 ← print_char_cursor#17 -Coalesced (already) [120] print_char_cursor#132 ← print_char_cursor#92 +Coalesced [117] print_char_cursor#132 ← print_char_cursor#17 +Coalesced (already) [120] print_char_cursor#133 ← print_char_cursor#92 Coalesced [123] print_sword::w#6 ← print_sword::w#1 -Coalesced (already) [124] print_char_cursor#130 ← print_char_cursor#2 +Coalesced (already) [124] print_char_cursor#131 ← print_char_cursor#2 Coalesced [127] print_byte::b#11 ← print_byte::b#1 -Coalesced (already) [128] print_char_cursor#109 ← print_char_cursor#96 +Coalesced (already) [128] print_char_cursor#110 ← print_char_cursor#96 Coalesced [131] print_byte::b#12 ← print_byte::b#2 -Coalesced (already) [132] print_char_cursor#110 ← print_char_cursor#17 -Coalesced (already) [136] print_char_cursor#118 ← print_char_cursor#2 +Coalesced (already) [132] print_char_cursor#111 ← print_char_cursor#17 +Coalesced (already) [136] print_char_cursor#119 ← print_char_cursor#2 Coalesced [139] print_sbyte::b#7 ← print_sbyte::b#0 -Coalesced [140] print_char_cursor#136 ← print_char_cursor#17 -Coalesced (already) [143] print_char_cursor#108 ← print_char_cursor#94 +Coalesced [140] print_char_cursor#137 ← print_char_cursor#17 +Coalesced (already) [143] print_char_cursor#109 ← print_char_cursor#94 Coalesced [146] print_sbyte::b#6 ← print_sbyte::b#1 -Coalesced (already) [147] print_char_cursor#135 ← print_char_cursor#2 +Coalesced (already) [147] print_char_cursor#136 ← print_char_cursor#2 Coalesced [156] mul8su::m#4 ← mul8su::m#1 Coalesced [159] mul8su::m#5 ← mul8su::m#0 Coalesced [162] mul8u::a#10 ← mul8u::a#6 @@ -6325,7 +6337,7 @@ sin8u_table::@16: scope:[sin8u_table] from sin8u_table::@15 [44] (byte) sin8u_table::sinx_tr#0 ← (const byte) sin8u_table::mid#0 + (byte~) sin8u_table::$21 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) [45] *((byte*) sin8u_table::sintab#2) ← (byte) sin8u_table::sinx_tr#0 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) [46] (byte*) sin8u_table::sintab#1 ← ++ (byte*) sin8u_table::sintab#2 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) - [47] (byte*~) print_char_cursor#121 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ) + [47] (byte*~) print_char_cursor#122 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ) [48] call print_str param-assignment [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ) to:sin8u_table::@17 sin8u_table::@17: scope:[sin8u_table] from sin8u_table::@16 @@ -6383,12 +6395,12 @@ print_byte: scope:[print_byte] from print_sbyte::@1 print_word print_word::@1 s [74] (byte*) print_char_cursor#97 ← phi( print_sbyte::@1/(byte*) print_char_cursor#94 print_word/(byte*) print_char_cursor#96 print_word::@1/(byte*) print_char_cursor#17 sin8u_table::@10/(byte*) print_char_cursor#2 sin8u_table::@12/(byte*) print_char_cursor#2 sin8u_table::@23/(byte*) print_char_cursor#2 sin8u_table::@6/(byte*) print_char_cursor#2 sin8u_table::@8/(byte*) print_char_cursor#2 ) [ print_byte::b#8 print_char_cursor#97 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] ) [74] (byte) print_byte::b#8 ← phi( print_sbyte::@1/(byte~) print_byte::b#10 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 sin8u_table::@10/(const byte) sin8u_table::amplitude#0 sin8u_table::@12/(const byte) sin8u_table::mid#0 sin8u_table::@23/(byte) print_byte::b#7 sin8u_table::@6/(const byte) sin8u_table::min#0 sin8u_table::@8/(const byte) sin8u_table::max#0 ) [ print_byte::b#8 print_char_cursor#97 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 ] ) [75] (byte~) print_byte::$0 ← (byte) print_byte::b#8 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#8 print_char_cursor#97 print_byte::$0 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_byte::$0 ] ) - [76] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] ) + [76] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#97 print_char::ch#2 ] ) [77] call print_char param-assignment [ print_char_cursor#17 print_byte::b#8 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#8 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#8 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] ) - [79] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) + [79] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) [80] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -6404,7 +6416,7 @@ print_char::@return: scope:[print_char] from print_char [85] return [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103::print_char:77 [ sin8u_table::step#0 print_word::w#3 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105::print_char:77 [ sin8u_table::step#0 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113::print_char:77 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_byte::b#8 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:19::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103::print_char:80 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105::print_char:80 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113::print_char:80 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_char:95 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_char:109 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sbyte::b#1 print_char_cursor#17 ] ) to:@return print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@16 sin8u_table::@18 sin8u_table::@20 sin8u_table::@22 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9 - [86] (byte*) print_char_cursor#102 ← phi( sin8u_table::@11/(byte*) print_char_cursor#17 sin8u_table::@16/(byte*~) print_char_cursor#121 sin8u_table::@18/(byte*) print_char_cursor#17 sin8u_table::@20/(byte*) print_char_cursor#17 sin8u_table::@22/(byte*) print_char_cursor#17 sin8u_table::@3/((byte*))(word/signed word/dword/signed dword) 1024 sin8u_table::@5/(byte*) print_char_cursor#17 sin8u_table::@7/(byte*) print_char_cursor#17 sin8u_table::@9/(byte*) print_char_cursor#17 ) [ print_str::str#12 print_char_cursor#102 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:48 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:52 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:56 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:60 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] ) + [86] (byte*) print_char_cursor#102 ← phi( sin8u_table::@11/(byte*) print_char_cursor#17 sin8u_table::@16/(byte*~) print_char_cursor#122 sin8u_table::@18/(byte*) print_char_cursor#17 sin8u_table::@20/(byte*) print_char_cursor#17 sin8u_table::@22/(byte*) print_char_cursor#17 sin8u_table::@3/((byte*))(word/signed word/dword/signed dword) 1024 sin8u_table::@5/(byte*) print_char_cursor#17 sin8u_table::@7/(byte*) print_char_cursor#17 sin8u_table::@9/(byte*) print_char_cursor#17 ) [ print_str::str#12 print_char_cursor#102 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:48 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:52 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:56 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:60 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] ) [86] (byte*) print_str::str#12 ← phi( sin8u_table::@11/(const string) sin8u_table::str4 sin8u_table::@16/(const string) sin8u_table::str5 sin8u_table::@18/(const string) sin8u_table::str6 sin8u_table::@20/(const string) sin8u_table::str7 sin8u_table::@22/(const string) sin8u_table::str8 sin8u_table::@3/(const string) sin8u_table::str sin8u_table::@5/(const string) sin8u_table::str1 sin8u_table::@7/(const string) sin8u_table::str2 sin8u_table::@9/(const string) sin8u_table::str3 ) [ print_str::str#12 print_char_cursor#102 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:48 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:52 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:56 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] main:2::sin8u_table:7::print_str:60 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_str::str#12 print_char_cursor#102 ] ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -6927,7 +6939,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#2 4.0 (byte) print_byte::b#7 22.0 (byte) print_byte::b#8 5.25 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#2 4.0 @@ -6936,7 +6947,7 @@ VARIABLE REGISTER WEIGHTS (byte*) print_char_cursor (byte*) print_char_cursor#1 101.0 (byte*) print_char_cursor#102 54.0 -(byte*~) print_char_cursor#121 22.0 +(byte*~) print_char_cursor#122 22.0 (byte*) print_char_cursor#17 3.7073170731707323 (byte*) print_char_cursor#2 13.269230769230768 (byte*) print_char_cursor#62 6.0 @@ -6948,6 +6959,7 @@ VARIABLE REGISTER WEIGHTS (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_line_cursor#1 8.55263157894737 (byte*) print_line_cursor#12 204.0 @@ -7047,7 +7059,7 @@ Initial phi equivalence classes [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] [ print_str::str#10 print_str::str#12 print_str::str#0 ] [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] -[ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] +[ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] [ print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 ] [ print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#0 ] [ mul8su::m#2 mul8su::m#1 mul8su::m#0 ] @@ -7113,7 +7125,7 @@ Complete equivalence classes [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] [ print_str::str#10 print_str::str#12 print_str::str#0 ] [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] -[ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] +[ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] [ print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 ] [ print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#0 ] [ mul8su::m#2 mul8su::m#1 mul8su::m#0 ] @@ -7178,7 +7190,7 @@ Allocated zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print Allocated zp ZP_BYTE:11 [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] Allocated zp ZP_WORD:12 [ print_str::str#10 print_str::str#12 print_str::str#0 ] Allocated zp ZP_WORD:14 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] -Allocated zp ZP_WORD:16 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] +Allocated zp ZP_WORD:16 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] Allocated zp ZP_WORD:18 [ print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 ] Allocated zp ZP_BYTE:20 [ print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#0 ] Allocated zp ZP_WORD:21 [ mul8su::m#2 mul8su::m#1 mul8su::m#0 ] @@ -7549,7 +7561,7 @@ sin8u_table: { bne !+ inc sintab+1 !: - //SEG110 [47] (byte*~) print_char_cursor#121 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG110 [47] (byte*~) print_char_cursor#122 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -7557,7 +7569,7 @@ sin8u_table: { //SEG111 [48] call print_str param-assignment [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ) //SEG112 [86] phi from sin8u_table::@16 to print_str [phi:sin8u_table::@16->print_str] print_str_from_b16: - //SEG113 [86] phi (byte*) print_char_cursor#102 = (byte*~) print_char_cursor#121 [phi:sin8u_table::@16->print_str#0] -- register_copy + //SEG113 [86] phi (byte*) print_char_cursor#102 = (byte*~) print_char_cursor#122 [phi:sin8u_table::@16->print_str#0] -- register_copy //SEG114 [86] phi (byte*) print_str::str#12 = (const string) sin8u_table::str5 [phi:sin8u_table::@16->print_str#1] -- pbuz1=pbuc1 lda #print_char] @@ -7764,9 +7776,9 @@ print_byte: { lda #$f and b sta _2 - //SEG179 [79] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG179 [79] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG180 [80] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] ) //SEG181 [82] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -7779,7 +7791,6 @@ print_byte: { breturn: //SEG185 [81] return [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG186 print_char print_char: { @@ -8638,6 +8649,7 @@ print_cls: { //SEG456 [215] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp ZP_BYTE:57 [ sin8u_table::$21 ] has ALU potential. @@ -8652,7 +8664,7 @@ Statement [44] (byte) sin8u_table::sinx_tr#0 ← (const byte) sin8u_table::mid#0 Statement [45] *((byte*) sin8u_table::sintab#2) ← (byte) sin8u_table::sinx_tr#0 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:51 [ sin8u_table::sinx#0 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:58 [ sin8u_table::sinx_tr#0 ] -Statement [47] (byte*~) print_char_cursor#121 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [47] (byte*~) print_char_cursor#122 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:58 [ sin8u_table::sinx_tr#0 ] Statement [49] (word) print_word::w#2 ← (word) sin8u_table::x#10 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#2 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#2 print_char_cursor#2 ] ) always clobbers reg byte a Statement [57] (signed word) print_sword::w#1 ← (signed word) sin8u_table::sinx_sc#0 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#2 ] ) always clobbers reg byte a @@ -8717,7 +8729,7 @@ Statement [41] (signed word) mul8su::return#2 ← (signed word)(word) mul8su::m# Statement [42] (signed word) sin8u_table::sinx_sc#0 ← (signed word) mul8su::return#2 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [44] (byte) sin8u_table::sinx_tr#0 ← (const byte) sin8u_table::mid#0 + (byte~) sin8u_table::$21 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [45] *((byte*) sin8u_table::sintab#2) ← (byte) sin8u_table::sinx_tr#0 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::sintab#2 sin8u_table::i#10 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 ] ) always clobbers reg byte a reg byte y -Statement [47] (byte*~) print_char_cursor#121 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [47] (byte*~) print_char_cursor#122 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ) always clobbers reg byte a Statement [49] (word) print_word::w#2 ← (word) sin8u_table::x#10 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#2 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#2 print_char_cursor#2 ] ) always clobbers reg byte a Statement [57] (signed word) print_sword::w#1 ← (signed word) sin8u_table::sinx_sc#0 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_sword::w#1 print_char_cursor#2 ] ) always clobbers reg byte a Statement [65] (word) sin8u_table::x#1 ← (word) sin8u_table::x#10 + (word) sin8u_table::step#0 [ sin8u_table::step#0 sin8u_table::i#10 sin8u_table::x#1 sin8u_table::sintab#1 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::i#10 sin8u_table::x#1 sin8u_table::sintab#1 print_line_cursor#1 ] ) always clobbers reg byte a @@ -8771,7 +8783,7 @@ Potential registers zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte: Potential registers zp ZP_BYTE:11 [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] : zp ZP_BYTE:11 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_WORD:12 [ print_str::str#10 print_str::str#12 print_str::str#0 ] : zp ZP_WORD:12 , Potential registers zp ZP_WORD:14 [ print_sword::w#3 print_sword::w#1 print_sword::w#0 ] : zp ZP_WORD:14 , -Potential registers zp ZP_WORD:16 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] : zp ZP_WORD:16 , +Potential registers zp ZP_WORD:16 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] : zp ZP_WORD:16 , Potential registers zp ZP_WORD:18 [ print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 ] : zp ZP_WORD:18 , Potential registers zp ZP_BYTE:20 [ print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#0 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , Potential registers zp ZP_WORD:21 [ mul8su::m#2 mul8su::m#1 mul8su::m#0 ] : zp ZP_WORD:21 , @@ -8831,7 +8843,7 @@ Potential registers zp ZP_BYTE:93 [ divr16u::$2 ] : zp ZP_BYTE:93 , reg byte a , REGISTER UPLIFT SCOPES Uplift Scope [mul8u] 346.86: zp ZP_WORD:25 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] 249.57: zp ZP_WORD:27 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] 202: zp ZP_BYTE:65 [ mul8u::$1 ] 177.67: zp ZP_BYTE:24 [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] 8: zp ZP_BYTE:23 [ mul8u::b#2 mul8u::b#1 ] 4: zp ZP_WORD:61 [ mul8u::return#2 ] 4: zp ZP_WORD:81 [ mul8u::return#3 ] -Uplift Scope [] 225.55: zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] 223.48: zp ZP_WORD:16 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] +Uplift Scope [] 225.55: zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] 223.48: zp ZP_WORD:16 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] Uplift Scope [print_str] 305.5: zp ZP_WORD:12 [ print_str::str#10 print_str::str#12 print_str::str#0 ] Uplift Scope [divr16u] 96.25: zp ZP_WORD:37 [ divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] 37.25: zp ZP_WORD:41 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] 22: zp ZP_BYTE:92 [ divr16u::$1 ] 22: zp ZP_BYTE:93 [ divr16u::$2 ] 18.19: zp ZP_BYTE:43 [ divr16u::i#2 divr16u::i#1 ] 7.46: zp ZP_WORD:39 [ divr16u::dividend#2 divr16u::dividend#0 ] 4: zp ZP_WORD:88 [ divr16u::return#2 ] Uplift Scope [sin8s] 27.5: zp ZP_WORD:30 [ sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 ] 22: zp ZP_BYTE:50 [ sin8s::return#2 ] 13: zp ZP_BYTE:33 [ sin8s::return#0 sin8s::return#5 sin8s::sinx#1 ] 10: zp ZP_BYTE:32 [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] 4: zp ZP_WORD:66 [ sin8s::$6 ] 4: zp ZP_BYTE:70 [ sin8s::x2#0 ] 4: zp ZP_BYTE:74 [ sin8s::x3_6#0 ] 4: zp ZP_BYTE:77 [ sin8s::x4#0 ] 4: zp ZP_BYTE:79 [ sin8s::x5#0 ] 4: zp ZP_BYTE:80 [ sin8s::x5_128#0 ] 1: zp ZP_BYTE:72 [ sin8s::x3#0 ] 0.64: zp ZP_BYTE:68 [ sin8s::x1#0 ] 0.33: zp ZP_BYTE:75 [ sin8s::usinx#0 ] 0.06: zp ZP_BYTE:29 [ sin8s::isUpper#10 ] @@ -8849,7 +8861,7 @@ Uplift Scope [print_ln] Uplift Scope [main] Uplifting [mul8u] best 24241 combination zp ZP_WORD:25 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:27 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#1 ] zp ZP_WORD:61 [ mul8u::return#2 ] zp ZP_WORD:81 [ mul8u::return#3 ] -Uplifting [] best 24241 combination zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] zp ZP_WORD:16 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] +Uplifting [] best 24241 combination zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] zp ZP_WORD:16 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] Uplifting [print_str] best 24241 combination zp ZP_WORD:12 [ print_str::str#10 print_str::str#12 print_str::str#0 ] Uplifting [divr16u] best 24051 combination zp ZP_WORD:37 [ divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:41 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:39 [ divr16u::dividend#2 divr16u::dividend#0 ] zp ZP_WORD:88 [ divr16u::return#2 ] Uplifting [sin8s] best 23946 combination zp ZP_WORD:30 [ sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 ] reg byte a [ sin8s::return#2 ] reg byte a [ sin8s::return#0 sin8s::return#5 sin8s::sinx#1 ] reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ] zp ZP_WORD:66 [ sin8s::$6 ] zp ZP_BYTE:70 [ sin8s::x2#0 ] zp ZP_BYTE:74 [ sin8s::x3_6#0 ] zp ZP_BYTE:77 [ sin8s::x4#0 ] zp ZP_BYTE:79 [ sin8s::x5#0 ] zp ZP_BYTE:80 [ sin8s::x5_128#0 ] zp ZP_BYTE:72 [ sin8s::x3#0 ] zp ZP_BYTE:68 [ sin8s::x1#0 ] zp ZP_BYTE:75 [ sin8s::usinx#0 ] zp ZP_BYTE:29 [ sin8s::isUpper#10 ] @@ -8924,7 +8936,7 @@ Coalescing zero page register [ zp ZP_WORD:12 [ print_str::str#10 print_str::str Coalescing zero page register [ zp ZP_WORD:12 [ print_str::str#10 print_str::str#12 print_str::str#0 print_sword::w#3 print_sword::w#1 print_sword::w#0 print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] ] with [ zp ZP_WORD:30 [ sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 sin8s::$6 ] ] Coalescing zero page register [ zp ZP_BYTE:36 [ mulu8_sel::select#5 ] ] with [ zp ZP_BYTE:51 [ sin8u_table::sinx#0 ] ] Allocated (was zp ZP_WORD:12) zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 print_sword::w#3 print_sword::w#1 print_sword::w#0 print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 sin8s::$6 ] -Allocated (was zp ZP_WORD:16) zp ZP_WORD:13 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] +Allocated (was zp ZP_WORD:16) zp ZP_WORD:13 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] Allocated (was zp ZP_WORD:21) zp ZP_WORD:15 [ mul8su::m#2 mul8su::m#1 mul8su::m#0 mul8su::return#2 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 sin8u_table::sinx_sc#0 mulu8_sel::$0 mulu8_sel::$1 ] Allocated (was zp ZP_BYTE:36) zp ZP_BYTE:17 [ mulu8_sel::select#5 sin8u_table::sinx#0 ] Allocated (was zp ZP_WORD:41) zp ZP_WORD:18 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#2 sin8u_table::step#0 div16u::return#0 ] @@ -9226,7 +9238,7 @@ sin8u_table: { bne !+ inc sintab+1 !: - //SEG110 [47] (byte*~) print_char_cursor#121 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG110 [47] (byte*~) print_char_cursor#122 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -9234,7 +9246,7 @@ sin8u_table: { //SEG111 [48] call print_str param-assignment [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ) //SEG112 [86] phi from sin8u_table::@16 to print_str [phi:sin8u_table::@16->print_str] print_str_from_b16: - //SEG113 [86] phi (byte*) print_char_cursor#102 = (byte*~) print_char_cursor#121 [phi:sin8u_table::@16->print_str#0] -- register_copy + //SEG113 [86] phi (byte*) print_char_cursor#102 = (byte*~) print_char_cursor#122 [phi:sin8u_table::@16->print_str#0] -- register_copy //SEG114 [86] phi (byte*) print_str::str#12 = (const string) sin8u_table::str5 [phi:sin8u_table::@16->print_str#1] -- pbuz1=pbuc1 lda #print_char] print_char_from_print_byte: @@ -9435,9 +9447,9 @@ print_byte: { //SEG178 [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and b - //SEG179 [79] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG179 [79] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG180 [80] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] ) //SEG181 [82] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -9449,7 +9461,6 @@ print_byte: { breturn: //SEG185 [81] return [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG186 print_char print_char: { @@ -10203,6 +10214,7 @@ print_cls: { //SEG456 [215] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b34 @@ -10618,8 +10630,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#2 b zp ZP_BYTE:10 4.0 (byte) print_byte::b#7 b zp ZP_BYTE:10 22.0 (byte) print_byte::b#8 b zp ZP_BYTE:10 5.25 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -10629,7 +10639,7 @@ FINAL SYMBOL TABLE (byte*) print_char_cursor (byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:13 101.0 (byte*) print_char_cursor#102 print_char_cursor zp ZP_WORD:13 54.0 -(byte*~) print_char_cursor#121 print_char_cursor zp ZP_WORD:13 22.0 +(byte*~) print_char_cursor#122 print_char_cursor zp ZP_WORD:13 22.0 (byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:13 3.7073170731707323 (byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:13 13.269230769230768 (byte*) print_char_cursor#62 print_char_cursor zp ZP_WORD:13 6.0 @@ -10643,6 +10653,8 @@ FINAL SYMBOL TABLE (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:8 8.55263157894737 (byte*) print_line_cursor#12 print_line_cursor zp ZP_WORD:8 204.0 @@ -10809,7 +10821,7 @@ zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#0 sin8s::isUpper#10 ] reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 print_sword::w#3 print_sword::w#1 print_sword::w#0 print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 sin8s::$6 ] -zp ZP_WORD:13 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] +zp ZP_WORD:13 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] zp ZP_WORD:15 [ mul8su::m#2 mul8su::m#1 mul8su::m#0 mul8su::return#2 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 sin8u_table::sinx_sc#0 mulu8_sel::$0 mulu8_sel::$1 ] reg byte a [ mul8u::b#2 mul8u::b#1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] @@ -11075,14 +11087,14 @@ sin8u_table: { bne !+ inc sintab+1 !: - //SEG110 [47] (byte*~) print_char_cursor#121 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#121 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG110 [47] (byte*~) print_char_cursor#122 ← (byte*) print_line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_char_cursor#122 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG111 [48] call print_str param-assignment [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#2 ] ) //SEG112 [86] phi from sin8u_table::@16 to print_str [phi:sin8u_table::@16->print_str] - //SEG113 [86] phi (byte*) print_char_cursor#102 = (byte*~) print_char_cursor#121 [phi:sin8u_table::@16->print_str#0] -- register_copy + //SEG113 [86] phi (byte*) print_char_cursor#102 = (byte*~) print_char_cursor#122 [phi:sin8u_table::@16->print_str#0] -- register_copy //SEG114 [86] phi (byte*) print_str::str#12 = (const string) sin8u_table::str5 [phi:sin8u_table::@16->print_str#1] -- pbuz1=pbuc1 lda #print_char] //SEG175 [82] phi (byte*) print_char_cursor#62 = (byte*) print_char_cursor#97 [phi:print_byte->print_char#0] -- register_copy @@ -11249,9 +11261,9 @@ print_byte: { //SEG178 [78] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and b - //SEG179 [79] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG179 [79] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG180 [80] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] ) //SEG181 [82] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG182 [82] phi (byte*) print_char_cursor#62 = (byte*) print_char_cursor#17 [phi:print_byte::@1->print_char#0] -- register_copy @@ -11260,7 +11272,6 @@ print_byte: { //SEG184 print_byte::@return //SEG185 [81] return [ print_char_cursor#17 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_byte:62 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:103 [ sin8u_table::step#0 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:103 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_word::w#3 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:15::print_byte:105 [ sin8u_table::step#0 print_char_cursor#17 ] main:2::sin8u_table:7::print_word:50::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx#0 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sword:58::print_word:99::print_byte:105 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] main:2::sin8u_table:7::print_sbyte:54::print_byte:113 [ sin8u_table::step#0 sin8u_table::x#10 sin8u_table::i#10 sin8u_table::sintab#1 sin8u_table::sinx_sc#0 sin8u_table::sinx_tr#0 print_line_cursor#1 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG186 print_char print_char: { @@ -11884,4 +11895,5 @@ print_cls: { //SEG456 [215] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.sym b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.sym index 055bb0eac..75d5488cd 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.sym @@ -134,8 +134,6 @@ (byte) print_byte::b#2 b zp ZP_BYTE:10 4.0 (byte) print_byte::b#7 b zp ZP_BYTE:10 22.0 (byte) print_byte::b#8 b zp ZP_BYTE:10 5.25 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -145,7 +143,7 @@ (byte*) print_char_cursor (byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:13 101.0 (byte*) print_char_cursor#102 print_char_cursor zp ZP_WORD:13 54.0 -(byte*~) print_char_cursor#121 print_char_cursor zp ZP_WORD:13 22.0 +(byte*~) print_char_cursor#122 print_char_cursor zp ZP_WORD:13 22.0 (byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:13 3.7073170731707323 (byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:13 13.269230769230768 (byte*) print_char_cursor#62 print_char_cursor zp ZP_WORD:13 6.0 @@ -159,6 +157,8 @@ (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:8 8.55263157894737 (byte*) print_line_cursor#12 print_line_cursor zp ZP_WORD:8 204.0 @@ -325,7 +325,7 @@ zp ZP_WORD:8 [ print_line_cursor#12 print_line_cursor#23 print_line_cursor#1 ] zp ZP_BYTE:10 [ print_byte::b#8 print_byte::b#10 print_byte::b#1 print_byte::b#2 print_byte::b#7 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#0 sin8s::isUpper#10 ] reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] zp ZP_WORD:11 [ print_str::str#10 print_str::str#12 print_str::str#0 print_sword::w#3 print_sword::w#1 print_sword::w#0 print_word::w#3 print_word::w#5 print_word::w#2 print_word::w#1 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 sin8s::$6 ] -zp ZP_WORD:13 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#121 print_char_cursor#1 ] +zp ZP_WORD:13 [ print_char_cursor#92 print_char_cursor#102 print_char_cursor#62 print_char_cursor#97 print_char_cursor#94 print_char_cursor#96 print_char_cursor#17 print_char_cursor#2 print_char_cursor#122 print_char_cursor#1 ] zp ZP_WORD:15 [ mul8su::m#2 mul8su::m#1 mul8su::m#0 mul8su::return#2 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 sin8u_table::sinx_sc#0 mulu8_sel::$0 mulu8_sel::$1 ] reg byte a [ mul8u::b#2 mul8u::b#1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.asm b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.asm index d82be04b5..0af990a13 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.asm @@ -452,15 +452,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char lda #$f and b tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_str: { .label str = 6 @@ -506,3 +505,4 @@ print_cls: { bne b1 rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.cfg index 527338a24..08ffe662f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.cfg @@ -14,7 +14,7 @@ main: scope:[main] from @16 main::@1: scope:[main] from main main::@71 [6] (byte*) print_line_cursor#27 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*) print_line_cursor#1 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) [6] (byte) main::i#10 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@71/(byte) main::i#1 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) - [6] (byte*) print_char_cursor#120 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*~) print_char_cursor#141 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) + [6] (byte*) print_char_cursor#120 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*~) print_char_cursor#142 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) [6] (byte) main::a#10 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 7 main::@71/(byte) main::a#1 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) [8] if((byte) main::a#10>=(byte) main::b#0) goto main::@2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) @@ -82,7 +82,7 @@ main::@6: scope:[main] from main::@27 main::@50 [40] (byte) printu::a#4 ← (byte) main::a#10 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#44 printu::a#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#44 printu::a#4 ] ) [41] (byte) printu::b#4 ← (byte) main::b#0 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#44 printu::a#4 printu::b#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#44 printu::a#4 printu::b#4 ] ) [42] (byte) printu::res#4 ← (byte) main::r#44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ) - [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ) + [43] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ) [44] call printu param-assignment [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) to:main::@51 main::@51: scope:[main] from main::@6 @@ -138,7 +138,7 @@ main::@10: scope:[main] from main::@31 main::@55 [70] (byte) printu::a#8 ← (byte) main::a#10 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#48 printu::a#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#48 printu::a#8 ] ) [71] (byte) printu::b#8 ← (byte) main::b#0 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#48 printu::a#8 printu::b#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#48 printu::a#8 printu::b#8 ] ) [72] (byte) printu::res#8 ← (byte) main::r#48 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ) - [73] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ) + [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) [74] call printu param-assignment [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) to:main::@56 main::@56: scope:[main] from main::@10 @@ -194,7 +194,7 @@ main::@14: scope:[main] from main::@35 main::@60 [100] (byte) printu::a#12 ← (byte) main::a#10 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#52 printu::a#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#52 printu::a#12 ] ) [101] (byte) printu::b#12 ← (byte) main::b#0 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#52 printu::a#12 printu::b#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#52 printu::a#12 printu::b#12 ] ) [102] (byte) printu::res#12 ← (byte) main::r#52 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ) - [103] (byte*~) print_char_cursor#146 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ) + [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) [104] call printu param-assignment [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) to:main::@61 main::@61: scope:[main] from main::@14 @@ -250,7 +250,7 @@ main::@18: scope:[main] from main::@39 main::@65 [130] (byte) printu::a#16 ← (byte) main::a#10 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#56 printu::a#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#56 printu::a#16 ] ) [131] (byte) printu::b#16 ← (byte) main::b#0 [ main::a#10 main::i#10 print_line_cursor#1 main::r#56 printu::a#16 printu::b#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::r#56 printu::a#16 printu::b#16 ] ) [132] (byte) printu::res#16 ← (byte) main::r#56 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ) - [133] (byte*~) print_char_cursor#150 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ) + [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) [134] call printu param-assignment [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) to:main::@66 main::@66: scope:[main] from main::@18 @@ -307,7 +307,7 @@ main::@return: scope:[main] from main::@22 [161] return [ ] ( main:2 [ ] ) to:@return main::@71: scope:[main] from main::@70 - [162] (byte*~) print_char_cursor#141 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ) + [162] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) to:main::@1 print_ln: scope:[print_ln] from main::@49 main::@54 main::@59 main::@64 main::@69 [163] (byte*) print_line_cursor#25 ← phi( main::@49/(byte*) print_line_cursor#27 main::@54/(byte*) print_line_cursor#1 main::@59/(byte*) print_line_cursor#1 main::@64/(byte*) print_line_cursor#1 main::@69/(byte*) print_line_cursor#1 ) [ print_line_cursor#25 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#25 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#25 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#25 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#25 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#25 print_char_cursor#55 ] ) @@ -325,7 +325,7 @@ printu: scope:[printu] from main::@10 main::@11 main::@12 main::@13 main::@14 m [168] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) [168] (byte[]) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op9 main::@12/(const string) main::op10 main::@13/(const string) main::op11 main::@14/(const string) main::op12 main::@15/(const string) main::op13 main::@16/(const string) main::op14 main::@17/(const string) main::op15 main::@18/(const string) main::op16 main::@19/(const string) main::op17 main::@2/(const string) main::op main::@20/(const string) main::op18 main::@21/(const string) main::op19 main::@3/(const string) main::op1 main::@4/(const string) main::op2 main::@5/(const string) main::op3 main::@6/(const string) main::op4 main::@7/(const string) main::op5 main::@8/(const string) main::op6 main::@9/(const string) main::op7 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) [168] (byte) printu::a#20 ← phi( main::@10/(byte) printu::a#8 main::@11/(byte) printu::a#9 main::@12/(byte) printu::a#10 main::@13/(byte) printu::a#11 main::@14/(byte) printu::a#12 main::@15/(byte) printu::a#13 main::@16/(byte) printu::a#14 main::@17/(byte) printu::a#15 main::@18/(byte) printu::a#16 main::@19/(byte) printu::a#17 main::@2/(byte) printu::a#0 main::@20/(byte) printu::a#18 main::@21/(byte) printu::a#19 main::@3/(byte) printu::a#1 main::@4/(byte) printu::a#2 main::@5/(byte) printu::a#3 main::@6/(byte) printu::a#4 main::@7/(byte) printu::a#5 main::@8/(byte) printu::a#6 main::@9/(byte) printu::a#7 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) - [168] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*~) print_char_cursor#142 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*~) print_char_cursor#146 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*~) print_char_cursor#150 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*~) print_char_cursor#158 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) + [168] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*~) print_char_cursor#143 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*~) print_char_cursor#147 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*~) print_char_cursor#151 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*~) print_char_cursor#159 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) [169] call print_char param-assignment [ print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) to:printu::@1 printu::@1: scope:[printu] from printu @@ -364,12 +364,12 @@ print_byte: scope:[print_byte] from printu::@1 printu::@3 [185] (byte*) print_char_cursor#94 ← phi( printu::@1/(byte*) print_char_cursor#55 printu::@3/(byte*) print_char_cursor#2 ) [ print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] ) [185] (byte) print_byte::b#2 ← phi( printu::@1/(byte) print_byte::b#0 printu::@3/(byte) print_byte::b#1 ) [ print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] ) [186] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ) - [187] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) + [187] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) [188] call print_char param-assignment [ print_char_cursor#55 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [189] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) - [190] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) + [190] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) [191] call print_char param-assignment [ print_char_cursor#55 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log index 99da538f7..e0057a94d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log @@ -138,12 +138,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -302,12 +303,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -618,7 +619,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -636,6 +636,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -927,13 +928,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -1269,7 +1270,7 @@ Eliminating unused variable - keeping the call (void~) printu::$2 Eliminating unused variable - keeping the call (void~) printu::$3 Eliminating unused variable - keeping the call (void~) printu::$4 Eliminating unused variable - keeping the call (void~) printu::$5 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) main::op "< @" Creating constant string variable for inline (const string) main::op1 "< @" Creating constant string variable for inline (const string) main::op2 "< @" @@ -1303,7 +1304,6 @@ Removing empty block @6 Removing empty block @7 Removing empty block @8 Removing empty block @9 -Removing empty block @10 Removing empty block @11 Removing empty block @12 Removing empty block @13 @@ -1339,7 +1339,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@16 + to:@10 print_str: scope:[print_str] from printu::@2 (byte*) print_char_cursor#119 ← phi( printu::@2/(byte*) print_char_cursor#40 ) (byte*) print_str::str#4 ← phi( printu::@2/(byte*) print_str::str#1 ) @@ -1385,12 +1385,17 @@ print_ln::@return: scope:[print_ln] from print_ln::@2 (byte*) print_char_cursor#4 ← (byte*) print_char_cursor#50 return to:@return +@10: scope:[] from @begin + (byte*) print_screen#6 ← phi( @begin/(byte*) print_screen#0 ) + (byte*) print_char_cursor#141 ← phi( @begin/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#39 ← phi( @begin/(byte*) print_line_cursor#0 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@16 print_byte: scope:[print_byte] from printu::@1 printu::@3 (byte*) print_char_cursor#94 ← phi( printu::@1/(byte*) print_char_cursor#39 printu::@3/(byte*) print_char_cursor#41 ) (byte) print_byte::b#2 ← phi( printu::@1/(byte) print_byte::b#0 printu::@3/(byte) print_byte::b#1 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#0 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#0 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -1398,7 +1403,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#51 ← phi( print_byte/(byte*) print_char_cursor#9 ) (byte*) print_char_cursor#5 ← (byte*) print_char_cursor#51 (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#1 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -1461,7 +1466,7 @@ main::@45: scope:[main] from main (byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:main::@1 main::@1: scope:[main] from main::@45 main::@70 - (byte*) print_line_cursor#84 ← phi( main::@45/(byte*) print_line_cursor#5 main::@70/(byte*) print_line_cursor#10 ) + (byte*) print_line_cursor#85 ← phi( main::@45/(byte*) print_line_cursor#5 main::@70/(byte*) print_line_cursor#10 ) (byte) main::i#42 ← phi( main::@45/(byte) main::i#0 main::@70/(byte) main::i#1 ) (byte*) print_char_cursor#120 ← phi( main::@45/(byte*) print_char_cursor#12 main::@70/(byte*) print_char_cursor#37 ) (byte) main::a#2 ← phi( main::@45/(byte) main::a#0 main::@70/(byte) main::a#1 ) @@ -1474,7 +1479,7 @@ main::@1: scope:[main] from main::@45 main::@70 if((boolean~) main::$3) goto main::@2 to:main::@23 main::@2: scope:[main] from main::@1 main::@23 - (byte*) print_line_cursor#79 ← phi( main::@1/(byte*) print_line_cursor#84 main::@23/(byte*) print_line_cursor#85 ) + (byte*) print_line_cursor#80 ← phi( main::@1/(byte*) print_line_cursor#85 main::@23/(byte*) print_line_cursor#86 ) (byte) main::i#35 ← phi( main::@1/(byte) main::i#42 main::@23/(byte) main::i#43 ) (byte*) print_char_cursor#97 ← phi( main::@1/(byte*) print_char_cursor#120 main::@23/(byte*) print_char_cursor#121 ) (byte) main::r#40 ← phi( main::@1/(byte) main::r#0 main::@23/(byte) main::r#2 ) @@ -1488,7 +1493,7 @@ main::@2: scope:[main] from main::@1 main::@23 to:main::@46 main::@46: scope:[main] from main::@2 (byte) main::b#48 ← phi( main::@2/(byte) main::b#1 ) - (byte*) print_line_cursor#70 ← phi( main::@2/(byte*) print_line_cursor#79 ) + (byte*) print_line_cursor#71 ← phi( main::@2/(byte*) print_line_cursor#80 ) (byte) main::i#25 ← phi( main::@2/(byte) main::i#35 ) (byte) main::a#4 ← phi( main::@2/(byte) main::a#3 ) (byte*) print_char_cursor#58 ← phi( main::@2/(byte*) print_char_cursor#45 ) @@ -1499,7 +1504,7 @@ main::@46: scope:[main] from main::@2 if((boolean~) main::$6) goto main::@3 to:main::@24 main::@23: scope:[main] from main::@1 - (byte*) print_line_cursor#85 ← phi( main::@1/(byte*) print_line_cursor#84 ) + (byte*) print_line_cursor#86 ← phi( main::@1/(byte*) print_line_cursor#85 ) (byte) main::i#43 ← phi( main::@1/(byte) main::i#42 ) (byte*) print_char_cursor#121 ← phi( main::@1/(byte*) print_char_cursor#120 ) (byte) main::b#10 ← phi( main::@1/(byte) main::b#0 ) @@ -1508,7 +1513,7 @@ main::@23: scope:[main] from main::@1 to:main::@2 main::@3: scope:[main] from main::@24 main::@46 (byte) main::b#43 ← phi( main::@24/(byte) main::b#47 main::@46/(byte) main::b#48 ) - (byte*) print_line_cursor#64 ← phi( main::@24/(byte*) print_line_cursor#69 main::@46/(byte*) print_line_cursor#70 ) + (byte*) print_line_cursor#65 ← phi( main::@24/(byte*) print_line_cursor#70 main::@46/(byte*) print_line_cursor#71 ) (byte) main::i#13 ← phi( main::@24/(byte) main::i#24 main::@46/(byte) main::i#25 ) (byte*) print_char_cursor#98 ← phi( main::@24/(byte*) print_char_cursor#122 main::@46/(byte*) print_char_cursor#13 ) (byte) main::r#41 ← phi( main::@24/(byte) main::r#4 main::@46/(byte) main::r#1 ) @@ -1521,7 +1526,7 @@ main::@3: scope:[main] from main::@24 main::@46 to:main::@47 main::@47: scope:[main] from main::@3 (byte) main::b#36 ← phi( main::@3/(byte) main::b#43 ) - (byte*) print_line_cursor#55 ← phi( main::@3/(byte*) print_line_cursor#64 ) + (byte*) print_line_cursor#56 ← phi( main::@3/(byte*) print_line_cursor#65 ) (byte) main::i#2 ← phi( main::@3/(byte) main::i#13 ) (byte) main::a#6 ← phi( main::@3/(byte) main::a#5 ) (byte*) print_char_cursor#59 ← phi( main::@3/(byte*) print_char_cursor#45 ) @@ -1533,7 +1538,7 @@ main::@47: scope:[main] from main::@3 to:main::@25 main::@24: scope:[main] from main::@46 (byte) main::b#47 ← phi( main::@46/(byte) main::b#48 ) - (byte*) print_line_cursor#69 ← phi( main::@46/(byte*) print_line_cursor#70 ) + (byte*) print_line_cursor#70 ← phi( main::@46/(byte*) print_line_cursor#71 ) (byte) main::i#24 ← phi( main::@46/(byte) main::i#25 ) (byte*) print_char_cursor#122 ← phi( main::@46/(byte*) print_char_cursor#13 ) (byte) main::a#44 ← phi( main::@46/(byte) main::a#4 ) @@ -1541,7 +1546,7 @@ main::@24: scope:[main] from main::@46 to:main::@3 main::@4: scope:[main] from main::@25 main::@47 (byte) main::b#31 ← phi( main::@25/(byte) main::b#35 main::@47/(byte) main::b#36 ) - (byte*) print_line_cursor#49 ← phi( main::@25/(byte*) print_line_cursor#54 main::@47/(byte*) print_line_cursor#55 ) + (byte*) print_line_cursor#50 ← phi( main::@25/(byte*) print_line_cursor#55 main::@47/(byte*) print_line_cursor#56 ) (byte*) print_char_cursor#99 ← phi( main::@25/(byte*) print_char_cursor#123 main::@47/(byte*) print_char_cursor#14 ) (byte) main::r#42 ← phi( main::@25/(byte) main::r#6 main::@47/(byte) main::r#3 ) (byte) main::i#3 ← phi( main::@25/(byte) main::i#14 main::@47/(byte) main::i#2 ) @@ -1555,7 +1560,7 @@ main::@4: scope:[main] from main::@25 main::@47 main::@48: scope:[main] from main::@4 (byte) main::i#61 ← phi( main::@4/(byte) main::i#3 ) (byte) main::b#24 ← phi( main::@4/(byte) main::b#31 ) - (byte*) print_line_cursor#40 ← phi( main::@4/(byte*) print_line_cursor#49 ) + (byte*) print_line_cursor#41 ← phi( main::@4/(byte*) print_line_cursor#50 ) (byte) main::a#8 ← phi( main::@4/(byte) main::a#7 ) (byte*) print_char_cursor#60 ← phi( main::@4/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#15 ← (byte*) print_char_cursor#60 @@ -1566,7 +1571,7 @@ main::@48: scope:[main] from main::@4 to:main::@26 main::@25: scope:[main] from main::@47 (byte) main::b#35 ← phi( main::@47/(byte) main::b#36 ) - (byte*) print_line_cursor#54 ← phi( main::@47/(byte*) print_line_cursor#55 ) + (byte*) print_line_cursor#55 ← phi( main::@47/(byte*) print_line_cursor#56 ) (byte*) print_char_cursor#123 ← phi( main::@47/(byte*) print_char_cursor#14 ) (byte) main::i#14 ← phi( main::@47/(byte) main::i#2 ) (byte) main::a#45 ← phi( main::@47/(byte) main::a#6 ) @@ -1575,7 +1580,7 @@ main::@25: scope:[main] from main::@47 main::@5: scope:[main] from main::@26 main::@48 (byte) main::i#56 ← phi( main::@26/(byte) main::i#60 main::@48/(byte) main::i#61 ) (byte) main::b#19 ← phi( main::@26/(byte) main::b#23 main::@48/(byte) main::b#24 ) - (byte*) print_line_cursor#34 ← phi( main::@26/(byte*) print_line_cursor#39 main::@48/(byte*) print_line_cursor#40 ) + (byte*) print_line_cursor#34 ← phi( main::@26/(byte*) print_line_cursor#40 main::@48/(byte*) print_line_cursor#41 ) (byte*) print_char_cursor#100 ← phi( main::@26/(byte*) print_char_cursor#124 main::@48/(byte*) print_char_cursor#15 ) (byte) main::r#43 ← phi( main::@26/(byte) main::r#8 main::@48/(byte) main::r#5 ) (byte) main::a#9 ← phi( main::@26/(byte) main::a#46 main::@48/(byte) main::a#8 ) @@ -1610,13 +1615,13 @@ main::@50: scope:[main] from main::@49 main::@26: scope:[main] from main::@48 (byte) main::i#60 ← phi( main::@48/(byte) main::i#61 ) (byte) main::b#23 ← phi( main::@48/(byte) main::b#24 ) - (byte*) print_line_cursor#39 ← phi( main::@48/(byte*) print_line_cursor#40 ) + (byte*) print_line_cursor#40 ← phi( main::@48/(byte*) print_line_cursor#41 ) (byte*) print_char_cursor#124 ← phi( main::@48/(byte*) print_char_cursor#15 ) (byte) main::a#46 ← phi( main::@48/(byte) main::a#8 ) (byte) main::r#8 ← (byte) '+' to:main::@5 main::@6: scope:[main] from main::@27 main::@50 - (byte*) print_line_cursor#80 ← phi( main::@27/(byte*) print_line_cursor#86 main::@50/(byte*) print_line_cursor#6 ) + (byte*) print_line_cursor#81 ← phi( main::@27/(byte*) print_line_cursor#87 main::@50/(byte*) print_line_cursor#6 ) (byte) main::i#36 ← phi( main::@27/(byte) main::i#44 main::@50/(byte) main::i#45 ) (byte*) print_char_cursor#101 ← phi( main::@27/(byte*) print_char_cursor#125 main::@50/(byte*) print_char_cursor#17 ) (byte) main::r#44 ← phi( main::@27/(byte) main::r#10 main::@50/(byte) main::r#7 ) @@ -1630,7 +1635,7 @@ main::@6: scope:[main] from main::@27 main::@50 to:main::@51 main::@51: scope:[main] from main::@6 (byte) main::b#50 ← phi( main::@6/(byte) main::b#3 ) - (byte*) print_line_cursor#72 ← phi( main::@6/(byte*) print_line_cursor#80 ) + (byte*) print_line_cursor#73 ← phi( main::@6/(byte*) print_line_cursor#81 ) (byte) main::i#27 ← phi( main::@6/(byte) main::i#36 ) (byte) main::a#12 ← phi( main::@6/(byte) main::a#11 ) (byte*) print_char_cursor#63 ← phi( main::@6/(byte*) print_char_cursor#45 ) @@ -1641,7 +1646,7 @@ main::@51: scope:[main] from main::@6 if((boolean~) main::$19) goto main::@7 to:main::@28 main::@27: scope:[main] from main::@50 - (byte*) print_line_cursor#86 ← phi( main::@50/(byte*) print_line_cursor#6 ) + (byte*) print_line_cursor#87 ← phi( main::@50/(byte*) print_line_cursor#6 ) (byte) main::i#44 ← phi( main::@50/(byte) main::i#45 ) (byte*) print_char_cursor#125 ← phi( main::@50/(byte*) print_char_cursor#17 ) (byte) main::b#12 ← phi( main::@50/(byte) main::b#2 ) @@ -1650,7 +1655,7 @@ main::@27: scope:[main] from main::@50 to:main::@6 main::@7: scope:[main] from main::@28 main::@51 (byte) main::b#44 ← phi( main::@28/(byte) main::b#49 main::@51/(byte) main::b#50 ) - (byte*) print_line_cursor#65 ← phi( main::@28/(byte*) print_line_cursor#71 main::@51/(byte*) print_line_cursor#72 ) + (byte*) print_line_cursor#66 ← phi( main::@28/(byte*) print_line_cursor#72 main::@51/(byte*) print_line_cursor#73 ) (byte) main::i#15 ← phi( main::@28/(byte) main::i#26 main::@51/(byte) main::i#27 ) (byte*) print_char_cursor#102 ← phi( main::@28/(byte*) print_char_cursor#126 main::@51/(byte*) print_char_cursor#18 ) (byte) main::r#45 ← phi( main::@28/(byte) main::r#12 main::@51/(byte) main::r#9 ) @@ -1663,7 +1668,7 @@ main::@7: scope:[main] from main::@28 main::@51 to:main::@52 main::@52: scope:[main] from main::@7 (byte) main::b#38 ← phi( main::@7/(byte) main::b#44 ) - (byte*) print_line_cursor#57 ← phi( main::@7/(byte*) print_line_cursor#65 ) + (byte*) print_line_cursor#58 ← phi( main::@7/(byte*) print_line_cursor#66 ) (byte) main::i#4 ← phi( main::@7/(byte) main::i#15 ) (byte) main::a#14 ← phi( main::@7/(byte) main::a#13 ) (byte*) print_char_cursor#64 ← phi( main::@7/(byte*) print_char_cursor#45 ) @@ -1675,7 +1680,7 @@ main::@52: scope:[main] from main::@7 to:main::@29 main::@28: scope:[main] from main::@51 (byte) main::b#49 ← phi( main::@51/(byte) main::b#50 ) - (byte*) print_line_cursor#71 ← phi( main::@51/(byte*) print_line_cursor#72 ) + (byte*) print_line_cursor#72 ← phi( main::@51/(byte*) print_line_cursor#73 ) (byte) main::i#26 ← phi( main::@51/(byte) main::i#27 ) (byte*) print_char_cursor#126 ← phi( main::@51/(byte*) print_char_cursor#18 ) (byte) main::a#49 ← phi( main::@51/(byte) main::a#12 ) @@ -1683,7 +1688,7 @@ main::@28: scope:[main] from main::@51 to:main::@7 main::@8: scope:[main] from main::@29 main::@52 (byte) main::b#32 ← phi( main::@29/(byte) main::b#37 main::@52/(byte) main::b#38 ) - (byte*) print_line_cursor#50 ← phi( main::@29/(byte*) print_line_cursor#56 main::@52/(byte*) print_line_cursor#57 ) + (byte*) print_line_cursor#51 ← phi( main::@29/(byte*) print_line_cursor#57 main::@52/(byte*) print_line_cursor#58 ) (byte*) print_char_cursor#103 ← phi( main::@29/(byte*) print_char_cursor#127 main::@52/(byte*) print_char_cursor#19 ) (byte) main::r#46 ← phi( main::@29/(byte) main::r#14 main::@52/(byte) main::r#11 ) (byte) main::i#5 ← phi( main::@29/(byte) main::i#16 main::@52/(byte) main::i#4 ) @@ -1697,7 +1702,7 @@ main::@8: scope:[main] from main::@29 main::@52 main::@53: scope:[main] from main::@8 (byte) main::i#63 ← phi( main::@8/(byte) main::i#5 ) (byte) main::b#26 ← phi( main::@8/(byte) main::b#32 ) - (byte*) print_line_cursor#42 ← phi( main::@8/(byte*) print_line_cursor#50 ) + (byte*) print_line_cursor#43 ← phi( main::@8/(byte*) print_line_cursor#51 ) (byte) main::a#16 ← phi( main::@8/(byte) main::a#15 ) (byte*) print_char_cursor#65 ← phi( main::@8/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#20 ← (byte*) print_char_cursor#65 @@ -1708,7 +1713,7 @@ main::@53: scope:[main] from main::@8 to:main::@30 main::@29: scope:[main] from main::@52 (byte) main::b#37 ← phi( main::@52/(byte) main::b#38 ) - (byte*) print_line_cursor#56 ← phi( main::@52/(byte*) print_line_cursor#57 ) + (byte*) print_line_cursor#57 ← phi( main::@52/(byte*) print_line_cursor#58 ) (byte*) print_char_cursor#127 ← phi( main::@52/(byte*) print_char_cursor#19 ) (byte) main::i#16 ← phi( main::@52/(byte) main::i#4 ) (byte) main::a#50 ← phi( main::@52/(byte) main::a#14 ) @@ -1717,7 +1722,7 @@ main::@29: scope:[main] from main::@52 main::@9: scope:[main] from main::@30 main::@53 (byte) main::i#57 ← phi( main::@30/(byte) main::i#62 main::@53/(byte) main::i#63 ) (byte) main::b#20 ← phi( main::@30/(byte) main::b#25 main::@53/(byte) main::b#26 ) - (byte*) print_line_cursor#35 ← phi( main::@30/(byte*) print_line_cursor#41 main::@53/(byte*) print_line_cursor#42 ) + (byte*) print_line_cursor#35 ← phi( main::@30/(byte*) print_line_cursor#42 main::@53/(byte*) print_line_cursor#43 ) (byte*) print_char_cursor#104 ← phi( main::@30/(byte*) print_char_cursor#128 main::@53/(byte*) print_char_cursor#20 ) (byte) main::r#47 ← phi( main::@30/(byte) main::r#16 main::@53/(byte) main::r#13 ) (byte) main::a#17 ← phi( main::@30/(byte) main::a#51 main::@53/(byte) main::a#16 ) @@ -1752,13 +1757,13 @@ main::@55: scope:[main] from main::@54 main::@30: scope:[main] from main::@53 (byte) main::i#62 ← phi( main::@53/(byte) main::i#63 ) (byte) main::b#25 ← phi( main::@53/(byte) main::b#26 ) - (byte*) print_line_cursor#41 ← phi( main::@53/(byte*) print_line_cursor#42 ) + (byte*) print_line_cursor#42 ← phi( main::@53/(byte*) print_line_cursor#43 ) (byte*) print_char_cursor#128 ← phi( main::@53/(byte*) print_char_cursor#20 ) (byte) main::a#51 ← phi( main::@53/(byte) main::a#16 ) (byte) main::r#16 ← (byte) '+' to:main::@9 main::@10: scope:[main] from main::@31 main::@55 - (byte*) print_line_cursor#81 ← phi( main::@31/(byte*) print_line_cursor#87 main::@55/(byte*) print_line_cursor#7 ) + (byte*) print_line_cursor#82 ← phi( main::@31/(byte*) print_line_cursor#88 main::@55/(byte*) print_line_cursor#7 ) (byte) main::i#37 ← phi( main::@31/(byte) main::i#46 main::@55/(byte) main::i#47 ) (byte*) print_char_cursor#105 ← phi( main::@31/(byte*) print_char_cursor#129 main::@55/(byte*) print_char_cursor#22 ) (byte) main::r#48 ← phi( main::@31/(byte) main::r#18 main::@55/(byte) main::r#15 ) @@ -1772,7 +1777,7 @@ main::@10: scope:[main] from main::@31 main::@55 to:main::@56 main::@56: scope:[main] from main::@10 (byte) main::b#52 ← phi( main::@10/(byte) main::b#5 ) - (byte*) print_line_cursor#74 ← phi( main::@10/(byte*) print_line_cursor#81 ) + (byte*) print_line_cursor#75 ← phi( main::@10/(byte*) print_line_cursor#82 ) (byte) main::i#29 ← phi( main::@10/(byte) main::i#37 ) (byte) main::a#20 ← phi( main::@10/(byte) main::a#19 ) (byte*) print_char_cursor#68 ← phi( main::@10/(byte*) print_char_cursor#45 ) @@ -1783,7 +1788,7 @@ main::@56: scope:[main] from main::@10 if((boolean~) main::$32) goto main::@11 to:main::@32 main::@31: scope:[main] from main::@55 - (byte*) print_line_cursor#87 ← phi( main::@55/(byte*) print_line_cursor#7 ) + (byte*) print_line_cursor#88 ← phi( main::@55/(byte*) print_line_cursor#7 ) (byte) main::i#46 ← phi( main::@55/(byte) main::i#47 ) (byte*) print_char_cursor#129 ← phi( main::@55/(byte*) print_char_cursor#22 ) (byte) main::b#14 ← phi( main::@55/(byte) main::b#4 ) @@ -1792,7 +1797,7 @@ main::@31: scope:[main] from main::@55 to:main::@10 main::@11: scope:[main] from main::@32 main::@56 (byte) main::b#45 ← phi( main::@32/(byte) main::b#51 main::@56/(byte) main::b#52 ) - (byte*) print_line_cursor#66 ← phi( main::@32/(byte*) print_line_cursor#73 main::@56/(byte*) print_line_cursor#74 ) + (byte*) print_line_cursor#67 ← phi( main::@32/(byte*) print_line_cursor#74 main::@56/(byte*) print_line_cursor#75 ) (byte) main::i#17 ← phi( main::@32/(byte) main::i#28 main::@56/(byte) main::i#29 ) (byte*) print_char_cursor#106 ← phi( main::@32/(byte*) print_char_cursor#130 main::@56/(byte*) print_char_cursor#23 ) (byte) main::r#49 ← phi( main::@32/(byte) main::r#20 main::@56/(byte) main::r#17 ) @@ -1805,7 +1810,7 @@ main::@11: scope:[main] from main::@32 main::@56 to:main::@57 main::@57: scope:[main] from main::@11 (byte) main::b#40 ← phi( main::@11/(byte) main::b#45 ) - (byte*) print_line_cursor#59 ← phi( main::@11/(byte*) print_line_cursor#66 ) + (byte*) print_line_cursor#60 ← phi( main::@11/(byte*) print_line_cursor#67 ) (byte) main::i#6 ← phi( main::@11/(byte) main::i#17 ) (byte) main::a#22 ← phi( main::@11/(byte) main::a#21 ) (byte*) print_char_cursor#69 ← phi( main::@11/(byte*) print_char_cursor#45 ) @@ -1817,7 +1822,7 @@ main::@57: scope:[main] from main::@11 to:main::@33 main::@32: scope:[main] from main::@56 (byte) main::b#51 ← phi( main::@56/(byte) main::b#52 ) - (byte*) print_line_cursor#73 ← phi( main::@56/(byte*) print_line_cursor#74 ) + (byte*) print_line_cursor#74 ← phi( main::@56/(byte*) print_line_cursor#75 ) (byte) main::i#28 ← phi( main::@56/(byte) main::i#29 ) (byte*) print_char_cursor#130 ← phi( main::@56/(byte*) print_char_cursor#23 ) (byte) main::a#54 ← phi( main::@56/(byte) main::a#20 ) @@ -1825,7 +1830,7 @@ main::@32: scope:[main] from main::@56 to:main::@11 main::@12: scope:[main] from main::@33 main::@57 (byte) main::b#33 ← phi( main::@33/(byte) main::b#39 main::@57/(byte) main::b#40 ) - (byte*) print_line_cursor#51 ← phi( main::@33/(byte*) print_line_cursor#58 main::@57/(byte*) print_line_cursor#59 ) + (byte*) print_line_cursor#52 ← phi( main::@33/(byte*) print_line_cursor#59 main::@57/(byte*) print_line_cursor#60 ) (byte*) print_char_cursor#107 ← phi( main::@33/(byte*) print_char_cursor#131 main::@57/(byte*) print_char_cursor#24 ) (byte) main::r#50 ← phi( main::@33/(byte) main::r#22 main::@57/(byte) main::r#19 ) (byte) main::i#7 ← phi( main::@33/(byte) main::i#18 main::@57/(byte) main::i#6 ) @@ -1839,7 +1844,7 @@ main::@12: scope:[main] from main::@33 main::@57 main::@58: scope:[main] from main::@12 (byte) main::i#65 ← phi( main::@12/(byte) main::i#7 ) (byte) main::b#28 ← phi( main::@12/(byte) main::b#33 ) - (byte*) print_line_cursor#44 ← phi( main::@12/(byte*) print_line_cursor#51 ) + (byte*) print_line_cursor#45 ← phi( main::@12/(byte*) print_line_cursor#52 ) (byte) main::a#24 ← phi( main::@12/(byte) main::a#23 ) (byte*) print_char_cursor#70 ← phi( main::@12/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#25 ← (byte*) print_char_cursor#70 @@ -1850,7 +1855,7 @@ main::@58: scope:[main] from main::@12 to:main::@34 main::@33: scope:[main] from main::@57 (byte) main::b#39 ← phi( main::@57/(byte) main::b#40 ) - (byte*) print_line_cursor#58 ← phi( main::@57/(byte*) print_line_cursor#59 ) + (byte*) print_line_cursor#59 ← phi( main::@57/(byte*) print_line_cursor#60 ) (byte*) print_char_cursor#131 ← phi( main::@57/(byte*) print_char_cursor#24 ) (byte) main::i#18 ← phi( main::@57/(byte) main::i#6 ) (byte) main::a#55 ← phi( main::@57/(byte) main::a#22 ) @@ -1859,7 +1864,7 @@ main::@33: scope:[main] from main::@57 main::@13: scope:[main] from main::@34 main::@58 (byte) main::i#58 ← phi( main::@34/(byte) main::i#64 main::@58/(byte) main::i#65 ) (byte) main::b#21 ← phi( main::@34/(byte) main::b#27 main::@58/(byte) main::b#28 ) - (byte*) print_line_cursor#36 ← phi( main::@34/(byte*) print_line_cursor#43 main::@58/(byte*) print_line_cursor#44 ) + (byte*) print_line_cursor#36 ← phi( main::@34/(byte*) print_line_cursor#44 main::@58/(byte*) print_line_cursor#45 ) (byte*) print_char_cursor#108 ← phi( main::@34/(byte*) print_char_cursor#132 main::@58/(byte*) print_char_cursor#25 ) (byte) main::r#51 ← phi( main::@34/(byte) main::r#24 main::@58/(byte) main::r#21 ) (byte) main::a#25 ← phi( main::@34/(byte) main::a#56 main::@58/(byte) main::a#24 ) @@ -1894,13 +1899,13 @@ main::@60: scope:[main] from main::@59 main::@34: scope:[main] from main::@58 (byte) main::i#64 ← phi( main::@58/(byte) main::i#65 ) (byte) main::b#27 ← phi( main::@58/(byte) main::b#28 ) - (byte*) print_line_cursor#43 ← phi( main::@58/(byte*) print_line_cursor#44 ) + (byte*) print_line_cursor#44 ← phi( main::@58/(byte*) print_line_cursor#45 ) (byte*) print_char_cursor#132 ← phi( main::@58/(byte*) print_char_cursor#25 ) (byte) main::a#56 ← phi( main::@58/(byte) main::a#24 ) (byte) main::r#24 ← (byte) '+' to:main::@13 main::@14: scope:[main] from main::@35 main::@60 - (byte*) print_line_cursor#82 ← phi( main::@35/(byte*) print_line_cursor#88 main::@60/(byte*) print_line_cursor#8 ) + (byte*) print_line_cursor#83 ← phi( main::@35/(byte*) print_line_cursor#89 main::@60/(byte*) print_line_cursor#8 ) (byte) main::i#38 ← phi( main::@35/(byte) main::i#48 main::@60/(byte) main::i#49 ) (byte*) print_char_cursor#109 ← phi( main::@35/(byte*) print_char_cursor#133 main::@60/(byte*) print_char_cursor#27 ) (byte) main::r#52 ← phi( main::@35/(byte) main::r#26 main::@60/(byte) main::r#23 ) @@ -1914,7 +1919,7 @@ main::@14: scope:[main] from main::@35 main::@60 to:main::@61 main::@61: scope:[main] from main::@14 (byte) main::b#54 ← phi( main::@14/(byte) main::b#7 ) - (byte*) print_line_cursor#76 ← phi( main::@14/(byte*) print_line_cursor#82 ) + (byte*) print_line_cursor#77 ← phi( main::@14/(byte*) print_line_cursor#83 ) (byte) main::i#31 ← phi( main::@14/(byte) main::i#38 ) (byte) main::a#28 ← phi( main::@14/(byte) main::a#27 ) (byte*) print_char_cursor#73 ← phi( main::@14/(byte*) print_char_cursor#45 ) @@ -1925,7 +1930,7 @@ main::@61: scope:[main] from main::@14 if((boolean~) main::$45) goto main::@15 to:main::@36 main::@35: scope:[main] from main::@60 - (byte*) print_line_cursor#88 ← phi( main::@60/(byte*) print_line_cursor#8 ) + (byte*) print_line_cursor#89 ← phi( main::@60/(byte*) print_line_cursor#8 ) (byte) main::i#48 ← phi( main::@60/(byte) main::i#49 ) (byte*) print_char_cursor#133 ← phi( main::@60/(byte*) print_char_cursor#27 ) (byte) main::b#16 ← phi( main::@60/(byte) main::b#6 ) @@ -1934,7 +1939,7 @@ main::@35: scope:[main] from main::@60 to:main::@14 main::@15: scope:[main] from main::@36 main::@61 (byte) main::b#46 ← phi( main::@36/(byte) main::b#53 main::@61/(byte) main::b#54 ) - (byte*) print_line_cursor#67 ← phi( main::@36/(byte*) print_line_cursor#75 main::@61/(byte*) print_line_cursor#76 ) + (byte*) print_line_cursor#68 ← phi( main::@36/(byte*) print_line_cursor#76 main::@61/(byte*) print_line_cursor#77 ) (byte) main::i#19 ← phi( main::@36/(byte) main::i#30 main::@61/(byte) main::i#31 ) (byte*) print_char_cursor#110 ← phi( main::@36/(byte*) print_char_cursor#134 main::@61/(byte*) print_char_cursor#28 ) (byte) main::r#53 ← phi( main::@36/(byte) main::r#28 main::@61/(byte) main::r#25 ) @@ -1947,7 +1952,7 @@ main::@15: scope:[main] from main::@36 main::@61 to:main::@62 main::@62: scope:[main] from main::@15 (byte) main::b#42 ← phi( main::@15/(byte) main::b#46 ) - (byte*) print_line_cursor#61 ← phi( main::@15/(byte*) print_line_cursor#67 ) + (byte*) print_line_cursor#62 ← phi( main::@15/(byte*) print_line_cursor#68 ) (byte) main::i#8 ← phi( main::@15/(byte) main::i#19 ) (byte) main::a#30 ← phi( main::@15/(byte) main::a#29 ) (byte*) print_char_cursor#74 ← phi( main::@15/(byte*) print_char_cursor#45 ) @@ -1959,7 +1964,7 @@ main::@62: scope:[main] from main::@15 to:main::@37 main::@36: scope:[main] from main::@61 (byte) main::b#53 ← phi( main::@61/(byte) main::b#54 ) - (byte*) print_line_cursor#75 ← phi( main::@61/(byte*) print_line_cursor#76 ) + (byte*) print_line_cursor#76 ← phi( main::@61/(byte*) print_line_cursor#77 ) (byte) main::i#30 ← phi( main::@61/(byte) main::i#31 ) (byte*) print_char_cursor#134 ← phi( main::@61/(byte*) print_char_cursor#28 ) (byte) main::a#59 ← phi( main::@61/(byte) main::a#28 ) @@ -1967,7 +1972,7 @@ main::@36: scope:[main] from main::@61 to:main::@15 main::@16: scope:[main] from main::@37 main::@62 (byte) main::b#34 ← phi( main::@37/(byte) main::b#41 main::@62/(byte) main::b#42 ) - (byte*) print_line_cursor#52 ← phi( main::@37/(byte*) print_line_cursor#60 main::@62/(byte*) print_line_cursor#61 ) + (byte*) print_line_cursor#53 ← phi( main::@37/(byte*) print_line_cursor#61 main::@62/(byte*) print_line_cursor#62 ) (byte*) print_char_cursor#111 ← phi( main::@37/(byte*) print_char_cursor#135 main::@62/(byte*) print_char_cursor#29 ) (byte) main::r#54 ← phi( main::@37/(byte) main::r#30 main::@62/(byte) main::r#27 ) (byte) main::i#9 ← phi( main::@37/(byte) main::i#20 main::@62/(byte) main::i#8 ) @@ -1981,7 +1986,7 @@ main::@16: scope:[main] from main::@37 main::@62 main::@63: scope:[main] from main::@16 (byte) main::i#67 ← phi( main::@16/(byte) main::i#9 ) (byte) main::b#30 ← phi( main::@16/(byte) main::b#34 ) - (byte*) print_line_cursor#46 ← phi( main::@16/(byte*) print_line_cursor#52 ) + (byte*) print_line_cursor#47 ← phi( main::@16/(byte*) print_line_cursor#53 ) (byte) main::a#32 ← phi( main::@16/(byte) main::a#31 ) (byte*) print_char_cursor#75 ← phi( main::@16/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#30 ← (byte*) print_char_cursor#75 @@ -1992,7 +1997,7 @@ main::@63: scope:[main] from main::@16 to:main::@38 main::@37: scope:[main] from main::@62 (byte) main::b#41 ← phi( main::@62/(byte) main::b#42 ) - (byte*) print_line_cursor#60 ← phi( main::@62/(byte*) print_line_cursor#61 ) + (byte*) print_line_cursor#61 ← phi( main::@62/(byte*) print_line_cursor#62 ) (byte*) print_char_cursor#135 ← phi( main::@62/(byte*) print_char_cursor#29 ) (byte) main::i#20 ← phi( main::@62/(byte) main::i#8 ) (byte) main::a#60 ← phi( main::@62/(byte) main::a#30 ) @@ -2001,7 +2006,7 @@ main::@37: scope:[main] from main::@62 main::@17: scope:[main] from main::@38 main::@63 (byte) main::i#59 ← phi( main::@38/(byte) main::i#66 main::@63/(byte) main::i#67 ) (byte) main::b#22 ← phi( main::@38/(byte) main::b#29 main::@63/(byte) main::b#30 ) - (byte*) print_line_cursor#37 ← phi( main::@38/(byte*) print_line_cursor#45 main::@63/(byte*) print_line_cursor#46 ) + (byte*) print_line_cursor#37 ← phi( main::@38/(byte*) print_line_cursor#46 main::@63/(byte*) print_line_cursor#47 ) (byte*) print_char_cursor#112 ← phi( main::@38/(byte*) print_char_cursor#136 main::@63/(byte*) print_char_cursor#30 ) (byte) main::r#55 ← phi( main::@38/(byte) main::r#32 main::@63/(byte) main::r#29 ) (byte) main::a#33 ← phi( main::@38/(byte) main::a#61 main::@63/(byte) main::a#32 ) @@ -2036,13 +2041,13 @@ main::@65: scope:[main] from main::@64 main::@38: scope:[main] from main::@63 (byte) main::i#66 ← phi( main::@63/(byte) main::i#67 ) (byte) main::b#29 ← phi( main::@63/(byte) main::b#30 ) - (byte*) print_line_cursor#45 ← phi( main::@63/(byte*) print_line_cursor#46 ) + (byte*) print_line_cursor#46 ← phi( main::@63/(byte*) print_line_cursor#47 ) (byte*) print_char_cursor#136 ← phi( main::@63/(byte*) print_char_cursor#30 ) (byte) main::a#61 ← phi( main::@63/(byte) main::a#32 ) (byte) main::r#32 ← (byte) '+' to:main::@17 main::@18: scope:[main] from main::@39 main::@65 - (byte*) print_line_cursor#83 ← phi( main::@39/(byte*) print_line_cursor#89 main::@65/(byte*) print_line_cursor#9 ) + (byte*) print_line_cursor#84 ← phi( main::@39/(byte*) print_line_cursor#90 main::@65/(byte*) print_line_cursor#9 ) (byte) main::i#39 ← phi( main::@39/(byte) main::i#50 main::@65/(byte) main::i#51 ) (byte*) print_char_cursor#113 ← phi( main::@39/(byte*) print_char_cursor#137 main::@65/(byte*) print_char_cursor#32 ) (byte) main::r#56 ← phi( main::@39/(byte) main::r#34 main::@65/(byte) main::r#31 ) @@ -2055,7 +2060,7 @@ main::@18: scope:[main] from main::@39 main::@65 call printu param-assignment to:main::@66 main::@66: scope:[main] from main::@18 - (byte*) print_line_cursor#78 ← phi( main::@18/(byte*) print_line_cursor#83 ) + (byte*) print_line_cursor#79 ← phi( main::@18/(byte*) print_line_cursor#84 ) (byte) main::i#33 ← phi( main::@18/(byte) main::i#39 ) (byte) main::a#36 ← phi( main::@18/(byte) main::a#35 ) (byte*) print_char_cursor#78 ← phi( main::@18/(byte*) print_char_cursor#45 ) @@ -2066,7 +2071,7 @@ main::@66: scope:[main] from main::@18 if((boolean~) main::$58) goto main::@19 to:main::@40 main::@39: scope:[main] from main::@65 - (byte*) print_line_cursor#89 ← phi( main::@65/(byte*) print_line_cursor#9 ) + (byte*) print_line_cursor#90 ← phi( main::@65/(byte*) print_line_cursor#9 ) (byte) main::i#50 ← phi( main::@65/(byte) main::i#51 ) (byte*) print_char_cursor#137 ← phi( main::@65/(byte*) print_char_cursor#32 ) (byte) main::b#18 ← phi( main::@65/(byte) main::b#8 ) @@ -2074,7 +2079,7 @@ main::@39: scope:[main] from main::@65 (byte) main::r#34 ← (byte) '+' to:main::@18 main::@19: scope:[main] from main::@40 main::@66 - (byte*) print_line_cursor#68 ← phi( main::@40/(byte*) print_line_cursor#77 main::@66/(byte*) print_line_cursor#78 ) + (byte*) print_line_cursor#69 ← phi( main::@40/(byte*) print_line_cursor#78 main::@66/(byte*) print_line_cursor#79 ) (byte) main::i#21 ← phi( main::@40/(byte) main::i#32 main::@66/(byte) main::i#33 ) (byte*) print_char_cursor#114 ← phi( main::@40/(byte*) print_char_cursor#138 main::@66/(byte*) print_char_cursor#33 ) (byte) main::r#57 ← phi( main::@40/(byte) main::r#36 main::@66/(byte) main::r#33 ) @@ -2086,7 +2091,7 @@ main::@19: scope:[main] from main::@40 main::@66 call printu param-assignment to:main::@67 main::@67: scope:[main] from main::@19 - (byte*) print_line_cursor#63 ← phi( main::@19/(byte*) print_line_cursor#68 ) + (byte*) print_line_cursor#64 ← phi( main::@19/(byte*) print_line_cursor#69 ) (byte) main::i#10 ← phi( main::@19/(byte) main::i#21 ) (byte) main::a#38 ← phi( main::@19/(byte) main::a#37 ) (byte*) print_char_cursor#79 ← phi( main::@19/(byte*) print_char_cursor#45 ) @@ -2097,14 +2102,14 @@ main::@67: scope:[main] from main::@19 if((boolean~) main::$61) goto main::@20 to:main::@41 main::@40: scope:[main] from main::@66 - (byte*) print_line_cursor#77 ← phi( main::@66/(byte*) print_line_cursor#78 ) + (byte*) print_line_cursor#78 ← phi( main::@66/(byte*) print_line_cursor#79 ) (byte) main::i#32 ← phi( main::@66/(byte) main::i#33 ) (byte*) print_char_cursor#138 ← phi( main::@66/(byte*) print_char_cursor#33 ) (byte) main::a#64 ← phi( main::@66/(byte) main::a#36 ) (byte) main::r#36 ← (byte) '+' to:main::@19 main::@20: scope:[main] from main::@41 main::@67 - (byte*) print_line_cursor#53 ← phi( main::@41/(byte*) print_line_cursor#62 main::@67/(byte*) print_line_cursor#63 ) + (byte*) print_line_cursor#54 ← phi( main::@41/(byte*) print_line_cursor#63 main::@67/(byte*) print_line_cursor#64 ) (byte*) print_char_cursor#115 ← phi( main::@41/(byte*) print_char_cursor#139 main::@67/(byte*) print_char_cursor#34 ) (byte) main::r#58 ← phi( main::@41/(byte) main::r#38 main::@67/(byte) main::r#35 ) (byte) main::i#11 ← phi( main::@41/(byte) main::i#22 main::@67/(byte) main::i#10 ) @@ -2117,7 +2122,7 @@ main::@20: scope:[main] from main::@41 main::@67 to:main::@68 main::@68: scope:[main] from main::@20 (byte) main::i#41 ← phi( main::@20/(byte) main::i#11 ) - (byte*) print_line_cursor#48 ← phi( main::@20/(byte*) print_line_cursor#53 ) + (byte*) print_line_cursor#49 ← phi( main::@20/(byte*) print_line_cursor#54 ) (byte) main::a#40 ← phi( main::@20/(byte) main::a#39 ) (byte*) print_char_cursor#80 ← phi( main::@20/(byte*) print_char_cursor#45 ) (byte*) print_char_cursor#35 ← (byte*) print_char_cursor#80 @@ -2127,7 +2132,7 @@ main::@68: scope:[main] from main::@20 if((boolean~) main::$64) goto main::@21 to:main::@42 main::@41: scope:[main] from main::@67 - (byte*) print_line_cursor#62 ← phi( main::@67/(byte*) print_line_cursor#63 ) + (byte*) print_line_cursor#63 ← phi( main::@67/(byte*) print_line_cursor#64 ) (byte*) print_char_cursor#139 ← phi( main::@67/(byte*) print_char_cursor#34 ) (byte) main::i#22 ← phi( main::@67/(byte) main::i#10 ) (byte) main::a#65 ← phi( main::@67/(byte) main::a#38 ) @@ -2135,7 +2140,7 @@ main::@41: scope:[main] from main::@67 to:main::@20 main::@21: scope:[main] from main::@42 main::@68 (byte) main::i#34 ← phi( main::@42/(byte) main::i#40 main::@68/(byte) main::i#41 ) - (byte*) print_line_cursor#38 ← phi( main::@42/(byte*) print_line_cursor#47 main::@68/(byte*) print_line_cursor#48 ) + (byte*) print_line_cursor#38 ← phi( main::@42/(byte*) print_line_cursor#48 main::@68/(byte*) print_line_cursor#49 ) (byte*) print_char_cursor#116 ← phi( main::@42/(byte*) print_char_cursor#140 main::@68/(byte*) print_char_cursor#35 ) (byte) main::r#59 ← phi( main::@42/(byte) main::r#39 main::@68/(byte) main::r#37 ) (byte) main::a#41 ← phi( main::@42/(byte) main::a#66 main::@68/(byte) main::a#40 ) @@ -2168,7 +2173,7 @@ main::@70: scope:[main] from main::@69 to:main::@22 main::@42: scope:[main] from main::@68 (byte) main::i#40 ← phi( main::@68/(byte) main::i#41 ) - (byte*) print_line_cursor#47 ← phi( main::@68/(byte*) print_line_cursor#48 ) + (byte*) print_line_cursor#48 ← phi( main::@68/(byte*) print_line_cursor#49 ) (byte*) print_char_cursor#140 ← phi( main::@68/(byte*) print_char_cursor#35 ) (byte) main::a#66 ← phi( main::@68/(byte) main::a#40 ) (byte) main::r#39 ← (byte) '+' @@ -2244,10 +2249,10 @@ printu::@return: scope:[printu] from printu::@6 (byte*) print_char_cursor#45 ← (byte*) print_char_cursor#90 return to:@return -@16: scope:[] from @begin - (byte*) print_screen#5 ← phi( @begin/(byte*) print_screen#0 ) - (byte*) print_char_cursor#118 ← phi( @begin/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#33 ← phi( @begin/(byte*) print_line_cursor#0 ) +@16: scope:[] from @10 + (byte*) print_screen#5 ← phi( @10/(byte*) print_screen#6 ) + (byte*) print_char_cursor#118 ← phi( @10/(byte*) print_char_cursor#141 ) + (byte*) print_line_cursor#33 ← phi( @10/(byte*) print_line_cursor#39 ) call main param-assignment to:@17 @17: scope:[] from @16 @@ -2259,6 +2264,8 @@ printu::@return: scope:[printu] from printu::@6 @end: scope:[] from @17 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" +(label) @10 (label) @16 (label) @17 (label) @begin @@ -2656,7 +2663,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -2665,8 +2671,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#1 (byte) print_byte::b#2 (byte) print_byte::b#3 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -2725,6 +2729,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#139 (byte*) print_char_cursor#14 (byte*) print_char_cursor#140 +(byte*) print_char_cursor#141 (byte*) print_char_cursor#15 (byte*) print_char_cursor#16 (byte*) print_char_cursor#17 @@ -2828,6 +2833,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -2919,6 +2926,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#88 (byte*) print_line_cursor#89 (byte*) print_line_cursor#9 +(byte*) print_line_cursor#90 (void()) print_ln() (byte*~) print_ln::$0 (boolean~) print_ln::$1 @@ -2932,6 +2940,7 @@ SYMBOL TABLE SSA (byte*) print_screen#3 (byte*) print_screen#4 (byte*) print_screen#5 +(byte*) print_screen#6 (void()) print_str((byte*) print_str::str) (boolean~) print_str::$0 (label) print_str::@1 @@ -3189,7 +3198,7 @@ Not aliassing across scopes: print_char::ch#4 printu::res#20 Not aliassing across scopes: print_char_cursor#89 print_char_cursor#9 Not aliassing across scopes: print_line_cursor#24 print_line_cursor#11 Not aliassing across scopes: print_char_cursor#91 print_char_cursor#38 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#33 (byte*) print_char_cursor#118 (byte*) print_screen#5 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#39 (byte*) print_char_cursor#141 (byte*) print_screen#6 (byte*) print_line_cursor#33 (byte*) print_char_cursor#118 (byte*) print_screen#5 Alias (byte*) print_str::str#2 = (byte*) print_str::str#3 Alias (byte*) print_char_cursor#2 = (byte*) print_char_cursor#47 (byte*) print_char_cursor#92 (byte*) print_char_cursor#48 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#14 (byte*) print_char_cursor#3 (byte*) print_line_cursor#15 (byte*) print_char_cursor#50 (byte*) print_line_cursor#2 (byte*) print_char_cursor#4 @@ -3203,20 +3212,20 @@ Alias (byte*) print_char_cursor#12 = (byte*) print_char_cursor#57 Alias (byte) main::b#0 = (byte/word/signed word/dword/signed dword~) main::$1 (byte) main::b#10 Alias (byte) main::a#3 = (byte) main::a#4 (byte) main::a#44 Alias (byte) main::i#24 = (byte) main::i#25 (byte) main::i#35 -Alias (byte*) print_line_cursor#69 = (byte*) print_line_cursor#70 (byte*) print_line_cursor#79 +Alias (byte*) print_line_cursor#70 = (byte*) print_line_cursor#71 (byte*) print_line_cursor#80 Alias (byte) main::b#1 = (byte) main::b#48 (byte) main::b#47 Alias (byte*) print_char_cursor#122 = (byte*) print_char_cursor#13 (byte*) print_char_cursor#58 Alias (byte) main::a#2 = (byte) main::a#43 Alias (byte*) print_char_cursor#120 = (byte*) print_char_cursor#121 Alias (byte) main::i#42 = (byte) main::i#43 -Alias (byte*) print_line_cursor#84 = (byte*) print_line_cursor#85 +Alias (byte*) print_line_cursor#85 = (byte*) print_line_cursor#86 Alias (byte) main::a#45 = (byte) main::a#6 (byte) main::a#5 Alias (byte) main::i#13 = (byte) main::i#2 (byte) main::i#14 -Alias (byte*) print_line_cursor#54 = (byte*) print_line_cursor#55 (byte*) print_line_cursor#64 +Alias (byte*) print_line_cursor#55 = (byte*) print_line_cursor#56 (byte*) print_line_cursor#65 Alias (byte) main::b#35 = (byte) main::b#36 (byte) main::b#43 Alias (byte*) print_char_cursor#123 = (byte*) print_char_cursor#14 (byte*) print_char_cursor#59 Alias (byte) main::a#46 = (byte) main::a#8 (byte) main::a#7 -Alias (byte*) print_line_cursor#39 = (byte*) print_line_cursor#40 (byte*) print_line_cursor#49 +Alias (byte*) print_line_cursor#40 = (byte*) print_line_cursor#41 (byte*) print_line_cursor#50 Alias (byte) main::b#23 = (byte) main::b#24 (byte) main::b#31 Alias (byte) main::i#3 = (byte) main::i#61 (byte) main::i#60 Alias (byte*) print_char_cursor#124 = (byte*) print_char_cursor#15 (byte*) print_char_cursor#60 @@ -3225,20 +3234,20 @@ Alias (byte) main::a#10 = (byte) main::a#47 (byte) main::a#9 (byte) main::a#48 Alias (byte) main::b#11 = (byte) main::b#19 (byte) main::b#2 (byte) main::b#12 Alias (byte) main::i#44 = (byte) main::i#52 (byte) main::i#56 (byte) main::i#45 Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#61 -Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#6 (byte*) print_line_cursor#86 +Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#6 (byte*) print_line_cursor#87 Alias (byte*) print_char_cursor#125 = (byte*) print_char_cursor#17 (byte*) print_char_cursor#62 Alias (byte) main::a#11 = (byte) main::a#12 (byte) main::a#49 Alias (byte) main::i#26 = (byte) main::i#27 (byte) main::i#36 -Alias (byte*) print_line_cursor#71 = (byte*) print_line_cursor#72 (byte*) print_line_cursor#80 +Alias (byte*) print_line_cursor#72 = (byte*) print_line_cursor#73 (byte*) print_line_cursor#81 Alias (byte) main::b#3 = (byte) main::b#50 (byte) main::b#49 Alias (byte*) print_char_cursor#126 = (byte*) print_char_cursor#18 (byte*) print_char_cursor#63 Alias (byte) main::a#13 = (byte) main::a#14 (byte) main::a#50 Alias (byte) main::i#15 = (byte) main::i#4 (byte) main::i#16 -Alias (byte*) print_line_cursor#56 = (byte*) print_line_cursor#57 (byte*) print_line_cursor#65 +Alias (byte*) print_line_cursor#57 = (byte*) print_line_cursor#58 (byte*) print_line_cursor#66 Alias (byte) main::b#37 = (byte) main::b#38 (byte) main::b#44 Alias (byte*) print_char_cursor#127 = (byte*) print_char_cursor#19 (byte*) print_char_cursor#64 Alias (byte) main::a#15 = (byte) main::a#16 (byte) main::a#51 -Alias (byte*) print_line_cursor#41 = (byte*) print_line_cursor#42 (byte*) print_line_cursor#50 +Alias (byte*) print_line_cursor#42 = (byte*) print_line_cursor#43 (byte*) print_line_cursor#51 Alias (byte) main::b#25 = (byte) main::b#26 (byte) main::b#32 Alias (byte) main::i#5 = (byte) main::i#63 (byte) main::i#62 Alias (byte*) print_char_cursor#128 = (byte*) print_char_cursor#20 (byte*) print_char_cursor#65 @@ -3247,20 +3256,20 @@ Alias (byte) main::a#17 = (byte) main::a#52 (byte) main::a#18 (byte) main::a#53 Alias (byte) main::b#13 = (byte) main::b#20 (byte) main::b#4 (byte) main::b#14 Alias (byte) main::i#46 = (byte) main::i#53 (byte) main::i#57 (byte) main::i#47 Alias (byte*) print_char_cursor#21 = (byte*) print_char_cursor#66 -Alias (byte*) print_line_cursor#19 = (byte*) print_line_cursor#7 (byte*) print_line_cursor#87 +Alias (byte*) print_line_cursor#19 = (byte*) print_line_cursor#7 (byte*) print_line_cursor#88 Alias (byte*) print_char_cursor#129 = (byte*) print_char_cursor#22 (byte*) print_char_cursor#67 Alias (byte) main::a#19 = (byte) main::a#20 (byte) main::a#54 Alias (byte) main::i#28 = (byte) main::i#29 (byte) main::i#37 -Alias (byte*) print_line_cursor#73 = (byte*) print_line_cursor#74 (byte*) print_line_cursor#81 +Alias (byte*) print_line_cursor#74 = (byte*) print_line_cursor#75 (byte*) print_line_cursor#82 Alias (byte) main::b#5 = (byte) main::b#52 (byte) main::b#51 Alias (byte*) print_char_cursor#130 = (byte*) print_char_cursor#23 (byte*) print_char_cursor#68 Alias (byte) main::a#21 = (byte) main::a#22 (byte) main::a#55 Alias (byte) main::i#17 = (byte) main::i#6 (byte) main::i#18 -Alias (byte*) print_line_cursor#58 = (byte*) print_line_cursor#59 (byte*) print_line_cursor#66 +Alias (byte*) print_line_cursor#59 = (byte*) print_line_cursor#60 (byte*) print_line_cursor#67 Alias (byte) main::b#39 = (byte) main::b#40 (byte) main::b#45 Alias (byte*) print_char_cursor#131 = (byte*) print_char_cursor#24 (byte*) print_char_cursor#69 Alias (byte) main::a#23 = (byte) main::a#24 (byte) main::a#56 -Alias (byte*) print_line_cursor#43 = (byte*) print_line_cursor#44 (byte*) print_line_cursor#51 +Alias (byte*) print_line_cursor#44 = (byte*) print_line_cursor#45 (byte*) print_line_cursor#52 Alias (byte) main::b#27 = (byte) main::b#28 (byte) main::b#33 Alias (byte) main::i#64 = (byte) main::i#65 (byte) main::i#7 Alias (byte*) print_char_cursor#132 = (byte*) print_char_cursor#25 (byte*) print_char_cursor#70 @@ -3269,20 +3278,20 @@ Alias (byte) main::a#25 = (byte) main::a#57 (byte) main::a#26 (byte) main::a#58 Alias (byte) main::b#15 = (byte) main::b#21 (byte) main::b#6 (byte) main::b#16 Alias (byte) main::i#48 = (byte) main::i#54 (byte) main::i#58 (byte) main::i#49 Alias (byte*) print_char_cursor#26 = (byte*) print_char_cursor#71 -Alias (byte*) print_line_cursor#20 = (byte*) print_line_cursor#8 (byte*) print_line_cursor#88 +Alias (byte*) print_line_cursor#20 = (byte*) print_line_cursor#8 (byte*) print_line_cursor#89 Alias (byte*) print_char_cursor#133 = (byte*) print_char_cursor#27 (byte*) print_char_cursor#72 Alias (byte) main::a#27 = (byte) main::a#28 (byte) main::a#59 Alias (byte) main::i#30 = (byte) main::i#31 (byte) main::i#38 -Alias (byte*) print_line_cursor#75 = (byte*) print_line_cursor#76 (byte*) print_line_cursor#82 +Alias (byte*) print_line_cursor#76 = (byte*) print_line_cursor#77 (byte*) print_line_cursor#83 Alias (byte) main::b#53 = (byte) main::b#54 (byte) main::b#7 Alias (byte*) print_char_cursor#134 = (byte*) print_char_cursor#28 (byte*) print_char_cursor#73 Alias (byte) main::a#29 = (byte) main::a#30 (byte) main::a#60 Alias (byte) main::i#19 = (byte) main::i#8 (byte) main::i#20 -Alias (byte*) print_line_cursor#60 = (byte*) print_line_cursor#61 (byte*) print_line_cursor#67 +Alias (byte*) print_line_cursor#61 = (byte*) print_line_cursor#62 (byte*) print_line_cursor#68 Alias (byte) main::b#41 = (byte) main::b#42 (byte) main::b#46 Alias (byte*) print_char_cursor#135 = (byte*) print_char_cursor#29 (byte*) print_char_cursor#74 Alias (byte) main::a#31 = (byte) main::a#32 (byte) main::a#61 -Alias (byte*) print_line_cursor#45 = (byte*) print_line_cursor#46 (byte*) print_line_cursor#52 +Alias (byte*) print_line_cursor#46 = (byte*) print_line_cursor#47 (byte*) print_line_cursor#53 Alias (byte) main::b#29 = (byte) main::b#30 (byte) main::b#34 Alias (byte) main::i#66 = (byte) main::i#67 (byte) main::i#9 Alias (byte*) print_char_cursor#136 = (byte*) print_char_cursor#30 (byte*) print_char_cursor#75 @@ -3291,18 +3300,18 @@ Alias (byte) main::a#33 = (byte) main::a#62 (byte) main::a#34 (byte) main::a#63 Alias (byte) main::b#17 = (byte) main::b#22 (byte) main::b#8 (byte) main::b#18 Alias (byte) main::i#50 = (byte) main::i#55 (byte) main::i#59 (byte) main::i#51 Alias (byte*) print_char_cursor#31 = (byte*) print_char_cursor#76 -Alias (byte*) print_line_cursor#21 = (byte*) print_line_cursor#9 (byte*) print_line_cursor#89 +Alias (byte*) print_line_cursor#21 = (byte*) print_line_cursor#9 (byte*) print_line_cursor#90 Alias (byte*) print_char_cursor#137 = (byte*) print_char_cursor#32 (byte*) print_char_cursor#77 Alias (byte) main::a#35 = (byte) main::a#36 (byte) main::a#64 Alias (byte) main::i#32 = (byte) main::i#33 (byte) main::i#39 -Alias (byte*) print_line_cursor#77 = (byte*) print_line_cursor#78 (byte*) print_line_cursor#83 +Alias (byte*) print_line_cursor#78 = (byte*) print_line_cursor#79 (byte*) print_line_cursor#84 Alias (byte*) print_char_cursor#138 = (byte*) print_char_cursor#33 (byte*) print_char_cursor#78 Alias (byte) main::a#37 = (byte) main::a#38 (byte) main::a#65 Alias (byte) main::i#10 = (byte) main::i#21 (byte) main::i#22 -Alias (byte*) print_line_cursor#62 = (byte*) print_line_cursor#63 (byte*) print_line_cursor#68 +Alias (byte*) print_line_cursor#63 = (byte*) print_line_cursor#64 (byte*) print_line_cursor#69 Alias (byte*) print_char_cursor#139 = (byte*) print_char_cursor#34 (byte*) print_char_cursor#79 Alias (byte) main::a#39 = (byte) main::a#40 (byte) main::a#66 -Alias (byte*) print_line_cursor#47 = (byte*) print_line_cursor#48 (byte*) print_line_cursor#53 +Alias (byte*) print_line_cursor#48 = (byte*) print_line_cursor#49 (byte*) print_line_cursor#54 Alias (byte) main::i#11 = (byte) main::i#41 (byte) main::i#40 Alias (byte*) print_char_cursor#140 = (byte*) print_char_cursor#35 (byte*) print_char_cursor#80 Alias (byte*) print_line_cursor#31 = (byte*) print_line_cursor#38 @@ -3447,27 +3456,27 @@ Alias (byte) main::a#10 = (byte) main::a#3 (byte) main::a#2 (byte) main::a#45 (b Alias (byte) main::b#0 = (byte) main::b#1 (byte) main::b#35 (byte) main::b#23 (byte) main::b#11 (byte) main::b#3 (byte) main::b#37 (byte) main::b#25 (byte) main::b#13 (byte) main::b#5 (byte) main::b#39 (byte) main::b#27 (byte) main::b#15 (byte) main::b#53 (byte) main::b#41 (byte) main::b#29 (byte) main::b#17 (byte) main::b#9 Alias (byte*) print_char_cursor#120 = (byte*) print_char_cursor#97 Alias (byte) main::i#10 = (byte) main::i#24 (byte) main::i#42 (byte) main::i#13 (byte) main::i#3 (byte) main::i#44 (byte) main::i#26 (byte) main::i#15 (byte) main::i#5 (byte) main::i#46 (byte) main::i#28 (byte) main::i#17 (byte) main::i#64 (byte) main::i#48 (byte) main::i#30 (byte) main::i#19 (byte) main::i#66 (byte) main::i#50 (byte) main::i#32 (byte) main::i#11 (byte) main::i#12 -Alias (byte*) print_line_cursor#27 = (byte*) print_line_cursor#69 (byte*) print_line_cursor#84 (byte*) print_line_cursor#54 (byte*) print_line_cursor#39 +Alias (byte*) print_line_cursor#27 = (byte*) print_line_cursor#70 (byte*) print_line_cursor#85 (byte*) print_line_cursor#55 (byte*) print_line_cursor#40 Alias (byte*) print_char_cursor#122 = (byte*) print_char_cursor#98 Alias (byte*) print_char_cursor#123 = (byte*) print_char_cursor#99 Alias (byte*) print_char_cursor#100 = (byte*) print_char_cursor#124 Alias (byte*) print_char_cursor#101 = (byte*) print_char_cursor#125 -Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#71 (byte*) print_line_cursor#56 (byte*) print_line_cursor#41 (byte*) print_line_cursor#28 +Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#72 (byte*) print_line_cursor#57 (byte*) print_line_cursor#42 (byte*) print_line_cursor#28 Alias (byte*) print_char_cursor#102 = (byte*) print_char_cursor#126 Alias (byte*) print_char_cursor#103 = (byte*) print_char_cursor#127 Alias (byte*) print_char_cursor#104 = (byte*) print_char_cursor#128 Alias (byte*) print_char_cursor#105 = (byte*) print_char_cursor#129 -Alias (byte*) print_line_cursor#19 = (byte*) print_line_cursor#73 (byte*) print_line_cursor#58 (byte*) print_line_cursor#43 (byte*) print_line_cursor#29 +Alias (byte*) print_line_cursor#19 = (byte*) print_line_cursor#74 (byte*) print_line_cursor#59 (byte*) print_line_cursor#44 (byte*) print_line_cursor#29 Alias (byte*) print_char_cursor#106 = (byte*) print_char_cursor#130 Alias (byte*) print_char_cursor#107 = (byte*) print_char_cursor#131 Alias (byte*) print_char_cursor#108 = (byte*) print_char_cursor#132 Alias (byte*) print_char_cursor#109 = (byte*) print_char_cursor#133 -Alias (byte*) print_line_cursor#20 = (byte*) print_line_cursor#75 (byte*) print_line_cursor#60 (byte*) print_line_cursor#45 (byte*) print_line_cursor#30 +Alias (byte*) print_line_cursor#20 = (byte*) print_line_cursor#76 (byte*) print_line_cursor#61 (byte*) print_line_cursor#46 (byte*) print_line_cursor#30 Alias (byte*) print_char_cursor#110 = (byte*) print_char_cursor#134 Alias (byte*) print_char_cursor#111 = (byte*) print_char_cursor#135 Alias (byte*) print_char_cursor#112 = (byte*) print_char_cursor#136 Alias (byte*) print_char_cursor#113 = (byte*) print_char_cursor#137 -Alias (byte*) print_line_cursor#21 = (byte*) print_line_cursor#77 (byte*) print_line_cursor#62 (byte*) print_line_cursor#47 (byte*) print_line_cursor#31 +Alias (byte*) print_line_cursor#21 = (byte*) print_line_cursor#78 (byte*) print_line_cursor#63 (byte*) print_line_cursor#48 (byte*) print_line_cursor#31 Alias (byte*) print_char_cursor#114 = (byte*) print_char_cursor#138 Alias (byte*) print_char_cursor#115 = (byte*) print_char_cursor#139 Alias (byte*) print_char_cursor#116 = (byte*) print_char_cursor#140 @@ -3674,7 +3683,7 @@ Simple Condition (boolean~) main::$64 if((byte) main::a#10!=(byte) main::a#10) g Simple Condition (boolean~) main::$68 if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto main::@1 Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) print_line_cursor#0 = ((byte*))1024 -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const byte) main::a#0 = 7 Constant (const byte) main::i#0 = 0 Constant (const byte[5]) main::cs#0 = { 7, 199, 55, 151, 103 } @@ -3751,6 +3760,7 @@ Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000 Succesful SSA optimization Pass2ConstantIdentification Multiple usages for variable. Not optimizing sub-constant (byte) main::a#10 Culled Empty Block (label) print_ln::@2 +Culled Empty Block (label) @10 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@45 @@ -6438,6 +6448,7 @@ Constant inlined printu::op#6 = (const string) main::op6 Constant inlined main::r#39 = (byte) '+' Constant inlined printu::op#7 = (const string) main::op7 Constant inlined printu::op#4 = (const string) main::op4 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined printu::op#5 = (const string) main::op5 Constant inlined printu::op#2 = (const string) main::op2 Constant inlined printu::op#3 = (const string) main::op3 @@ -6502,7 +6513,6 @@ Constant inlined printu::op#15 = (const string) main::op15 Constant inlined main::r#24 = (byte) '+' Constant inlined printu::op#16 = (const string) main::op16 Constant inlined main::r#25 = (byte) '-' -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Succesful SSA optimization Pass2ConstantInlining Block Sequence Planned @begin @16 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return Added new block during phi lifting main::@71(between main::@70 and main::@1) @@ -6582,108 +6592,108 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 38 initial phi equivalence classes -Coalesced [14] print_char_cursor#152 ← print_char_cursor#120 +Coalesced [14] print_char_cursor#153 ← print_char_cursor#120 Coalesced [15] printu::a#32 ← printu::a#0 Coalesced [16] printu::b#31 ← printu::b#0 Coalesced [17] printu::res#36 ← printu::res#0 -Coalesced [24] print_char_cursor#155 ← print_char_cursor#55 +Coalesced [24] print_char_cursor#156 ← print_char_cursor#55 Coalesced [25] printu::a#35 ← printu::a#1 Coalesced [26] printu::res#39 ← printu::res#1 -Coalesced (already) [34] print_char_cursor#156 ← print_char_cursor#55 +Coalesced (already) [34] print_char_cursor#157 ← print_char_cursor#55 Coalesced [35] printu::a#36 ← printu::a#2 Coalesced [36] printu::b#34 ← printu::b#2 Coalesced [37] printu::res#40 ← printu::res#2 -Coalesced (already) [45] print_char_cursor#157 ← print_char_cursor#55 +Coalesced (already) [45] print_char_cursor#158 ← print_char_cursor#55 Coalesced [46] printu::a#37 ← printu::a#3 Coalesced [47] printu::b#35 ← printu::b#3 Coalesced [48] printu::res#41 ← printu::res#3 -Coalesced [50] print_line_cursor#91 ← print_line_cursor#27 -Not coalescing [58] print_char_cursor#158 ← print_line_cursor#1 +Coalesced [50] print_line_cursor#92 ← print_line_cursor#27 +Not coalescing [58] print_char_cursor#159 ← print_line_cursor#1 Coalesced [59] printu::a#38 ← printu::a#4 Coalesced [60] printu::b#36 ← printu::b#4 Coalesced [61] printu::res#42 ← printu::res#4 -Coalesced (already) [68] print_char_cursor#159 ← print_char_cursor#55 +Coalesced (already) [68] print_char_cursor#160 ← print_char_cursor#55 Coalesced [69] printu::a#39 ← printu::a#5 Coalesced [70] printu::res#43 ← printu::res#5 -Coalesced (already) [78] print_char_cursor#160 ← print_char_cursor#55 +Coalesced (already) [78] print_char_cursor#161 ← print_char_cursor#55 Coalesced [79] printu::a#40 ← printu::a#6 Coalesced [80] printu::b#37 ← printu::b#6 Coalesced [81] printu::res#44 ← printu::res#6 -Coalesced (already) [89] print_char_cursor#161 ← print_char_cursor#55 +Coalesced (already) [89] print_char_cursor#162 ← print_char_cursor#55 Coalesced [90] printu::a#41 ← printu::a#7 Coalesced [91] printu::b#38 ← printu::b#7 Coalesced [92] printu::res#45 ← printu::res#7 -Coalesced [94] print_line_cursor#92 ← print_line_cursor#1 -Not coalescing [102] print_char_cursor#142 ← print_line_cursor#1 +Coalesced [94] print_line_cursor#93 ← print_line_cursor#1 +Not coalescing [102] print_char_cursor#143 ← print_line_cursor#1 Coalesced [103] printu::a#22 ← printu::a#8 Coalesced [104] printu::b#24 ← printu::b#8 Coalesced [105] printu::res#26 ← printu::res#8 -Coalesced (already) [112] print_char_cursor#143 ← print_char_cursor#55 +Coalesced (already) [112] print_char_cursor#144 ← print_char_cursor#55 Coalesced [113] printu::a#23 ← printu::a#9 Coalesced [114] printu::res#27 ← printu::res#9 -Coalesced (already) [122] print_char_cursor#144 ← print_char_cursor#55 +Coalesced (already) [122] print_char_cursor#145 ← print_char_cursor#55 Coalesced [123] printu::a#24 ← printu::a#10 Coalesced [124] printu::b#25 ← printu::b#10 Coalesced [125] printu::res#28 ← printu::res#10 -Coalesced (already) [133] print_char_cursor#145 ← print_char_cursor#55 +Coalesced (already) [133] print_char_cursor#146 ← print_char_cursor#55 Coalesced [134] printu::a#25 ← printu::a#11 Coalesced [135] printu::b#26 ← printu::b#11 Coalesced [136] printu::res#29 ← printu::res#11 -Coalesced (already) [138] print_line_cursor#93 ← print_line_cursor#1 -Not coalescing [146] print_char_cursor#146 ← print_line_cursor#1 +Coalesced (already) [138] print_line_cursor#94 ← print_line_cursor#1 +Not coalescing [146] print_char_cursor#147 ← print_line_cursor#1 Coalesced [147] printu::a#26 ← printu::a#12 Coalesced [148] printu::b#27 ← printu::b#12 Coalesced [149] printu::res#30 ← printu::res#12 -Coalesced (already) [156] print_char_cursor#147 ← print_char_cursor#55 +Coalesced (already) [156] print_char_cursor#148 ← print_char_cursor#55 Coalesced [157] printu::a#27 ← printu::a#13 Coalesced [158] printu::res#31 ← printu::res#13 -Coalesced (already) [166] print_char_cursor#148 ← print_char_cursor#55 +Coalesced (already) [166] print_char_cursor#149 ← print_char_cursor#55 Coalesced [167] printu::a#28 ← printu::a#14 Coalesced [168] printu::b#28 ← printu::b#14 Coalesced [169] printu::res#32 ← printu::res#14 -Coalesced (already) [177] print_char_cursor#149 ← print_char_cursor#55 +Coalesced (already) [177] print_char_cursor#150 ← print_char_cursor#55 Coalesced [178] printu::a#29 ← printu::a#15 Coalesced [179] printu::b#29 ← printu::b#15 Coalesced [180] printu::res#33 ← printu::res#15 -Coalesced (already) [182] print_line_cursor#94 ← print_line_cursor#1 -Not coalescing [190] print_char_cursor#150 ← print_line_cursor#1 +Coalesced (already) [182] print_line_cursor#95 ← print_line_cursor#1 +Not coalescing [190] print_char_cursor#151 ← print_line_cursor#1 Coalesced [191] printu::a#30 ← printu::a#16 Coalesced [192] printu::b#30 ← printu::b#16 Coalesced [193] printu::res#34 ← printu::res#16 -Coalesced (already) [200] print_char_cursor#151 ← print_char_cursor#55 +Coalesced (already) [200] print_char_cursor#152 ← print_char_cursor#55 Coalesced [201] printu::a#31 ← printu::a#17 Coalesced [202] printu::res#35 ← printu::res#17 -Coalesced (already) [210] print_char_cursor#153 ← print_char_cursor#55 +Coalesced (already) [210] print_char_cursor#154 ← print_char_cursor#55 Coalesced [211] printu::a#33 ← printu::a#18 Coalesced [212] printu::b#32 ← printu::b#18 Coalesced [213] printu::res#37 ← printu::res#18 -Coalesced (already) [221] print_char_cursor#154 ← print_char_cursor#55 +Coalesced (already) [221] print_char_cursor#155 ← print_char_cursor#55 Coalesced [222] printu::a#34 ← printu::a#19 Coalesced [223] printu::b#33 ← printu::b#19 Coalesced [224] printu::res#38 ← printu::res#19 -Coalesced (already) [226] print_line_cursor#95 ← print_line_cursor#1 +Coalesced (already) [226] print_line_cursor#96 ← print_line_cursor#1 Coalesced [233] main::a#68 ← main::a#1 -Not coalescing [234] print_char_cursor#141 ← print_line_cursor#1 +Not coalescing [234] print_char_cursor#142 ← print_line_cursor#1 Coalesced [235] main::i#68 ← main::i#1 -Coalesced (already) [236] print_line_cursor#90 ← print_line_cursor#1 -Coalesced [238] print_line_cursor#96 ← print_line_cursor#25 -Coalesced (already) [243] print_line_cursor#97 ← print_line_cursor#1 -Coalesced [245] print_char_cursor#164 ← print_char_cursor#95 +Coalesced (already) [236] print_line_cursor#91 ← print_line_cursor#1 +Coalesced [238] print_line_cursor#97 ← print_line_cursor#25 +Coalesced (already) [243] print_line_cursor#98 ← print_line_cursor#1 +Coalesced [245] print_char_cursor#165 ← print_char_cursor#95 Coalesced [248] print_byte::b#4 ← print_byte::b#0 -Coalesced [249] print_char_cursor#167 ← print_char_cursor#55 +Coalesced [249] print_char_cursor#168 ← print_char_cursor#55 Coalesced [254] print_byte::b#5 ← print_byte::b#1 -Coalesced [255] print_char_cursor#168 ← print_char_cursor#2 -Coalesced (already) [257] print_char_cursor#165 ← print_char_cursor#55 +Coalesced [255] print_char_cursor#169 ← print_char_cursor#2 +Coalesced (already) [257] print_char_cursor#166 ← print_char_cursor#55 Coalesced [260] print_char::ch#8 ← print_char::ch#4 -Coalesced (already) [261] print_char_cursor#166 ← print_char_cursor#55 +Coalesced (already) [261] print_char_cursor#167 ← print_char_cursor#55 Coalesced [271] print_char::ch#6 ← print_char::ch#0 -Coalesced (already) [272] print_char_cursor#162 ← print_char_cursor#94 +Coalesced (already) [272] print_char_cursor#163 ← print_char_cursor#94 Coalesced [276] print_char::ch#7 ← print_char::ch#1 -Coalesced (already) [277] print_char_cursor#163 ← print_char_cursor#55 +Coalesced (already) [277] print_char_cursor#164 ← print_char_cursor#55 Coalesced [280] print_str::str#5 ← print_str::str#1 -Coalesced (already) [281] print_char_cursor#169 ← print_char_cursor#55 +Coalesced (already) [281] print_char_cursor#170 ← print_char_cursor#55 Coalesced [288] print_str::str#6 ← print_str::str#0 -Coalesced [289] print_char_cursor#170 ← print_char_cursor#1 +Coalesced [289] print_char_cursor#171 ← print_char_cursor#1 Coalesced [296] print_cls::sc#3 ← print_cls::sc#1 Coalesced down to 32 phi equivalence classes Not culling empty block because it shares successor with its predecessor. (label) main::@23 @@ -6786,7 +6796,7 @@ main: scope:[main] from @16 main::@1: scope:[main] from main main::@71 [6] (byte*) print_line_cursor#27 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*) print_line_cursor#1 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) [6] (byte) main::i#10 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@71/(byte) main::i#1 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) - [6] (byte*) print_char_cursor#120 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*~) print_char_cursor#141 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) + [6] (byte*) print_char_cursor#120 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@71/(byte*~) print_char_cursor#142 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) [6] (byte) main::a#10 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 7 main::@71/(byte) main::a#1 ) [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 ] ) [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) [8] if((byte) main::a#10>=(byte) main::b#0) goto main::@2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) @@ -6854,7 +6864,7 @@ main::@6: scope:[main] from main::@27 main::@50 [40] (byte) printu::a#4 ← (byte) main::a#10 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#44 printu::a#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#44 printu::a#4 ] ) [41] (byte) printu::b#4 ← (byte) main::b#0 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#44 printu::a#4 printu::b#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#44 printu::a#4 printu::b#4 ] ) [42] (byte) printu::res#4 ← (byte) main::r#44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ) - [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ) + [43] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ) [44] call printu param-assignment [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) to:main::@51 main::@51: scope:[main] from main::@6 @@ -6910,7 +6920,7 @@ main::@10: scope:[main] from main::@31 main::@55 [70] (byte) printu::a#8 ← (byte) main::a#10 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#48 printu::a#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#48 printu::a#8 ] ) [71] (byte) printu::b#8 ← (byte) main::b#0 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#48 printu::a#8 printu::b#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#48 printu::a#8 printu::b#8 ] ) [72] (byte) printu::res#8 ← (byte) main::r#48 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ) - [73] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ) + [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) [74] call printu param-assignment [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) to:main::@56 main::@56: scope:[main] from main::@10 @@ -6966,7 +6976,7 @@ main::@14: scope:[main] from main::@35 main::@60 [100] (byte) printu::a#12 ← (byte) main::a#10 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#52 printu::a#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#52 printu::a#12 ] ) [101] (byte) printu::b#12 ← (byte) main::b#0 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#52 printu::a#12 printu::b#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#52 printu::a#12 printu::b#12 ] ) [102] (byte) printu::res#12 ← (byte) main::r#52 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ) - [103] (byte*~) print_char_cursor#146 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ) + [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) [104] call printu param-assignment [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) to:main::@61 main::@61: scope:[main] from main::@14 @@ -7022,7 +7032,7 @@ main::@18: scope:[main] from main::@39 main::@65 [130] (byte) printu::a#16 ← (byte) main::a#10 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#56 printu::a#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#56 printu::a#16 ] ) [131] (byte) printu::b#16 ← (byte) main::b#0 [ main::a#10 main::i#10 print_line_cursor#1 main::r#56 printu::a#16 printu::b#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::r#56 printu::a#16 printu::b#16 ] ) [132] (byte) printu::res#16 ← (byte) main::r#56 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ) - [133] (byte*~) print_char_cursor#150 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ) + [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) [134] call printu param-assignment [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) to:main::@66 main::@66: scope:[main] from main::@18 @@ -7079,7 +7089,7 @@ main::@return: scope:[main] from main::@22 [161] return [ ] ( main:2 [ ] ) to:@return main::@71: scope:[main] from main::@70 - [162] (byte*~) print_char_cursor#141 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ) + [162] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) to:main::@1 print_ln: scope:[print_ln] from main::@49 main::@54 main::@59 main::@64 main::@69 [163] (byte*) print_line_cursor#25 ← phi( main::@49/(byte*) print_line_cursor#27 main::@54/(byte*) print_line_cursor#1 main::@59/(byte*) print_line_cursor#1 main::@64/(byte*) print_line_cursor#1 main::@69/(byte*) print_line_cursor#1 ) [ print_line_cursor#25 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#25 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#25 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#25 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#25 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#25 print_char_cursor#55 ] ) @@ -7097,7 +7107,7 @@ printu: scope:[printu] from main::@10 main::@11 main::@12 main::@13 main::@14 m [168] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) [168] (byte[]) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op9 main::@12/(const string) main::op10 main::@13/(const string) main::op11 main::@14/(const string) main::op12 main::@15/(const string) main::op13 main::@16/(const string) main::op14 main::@17/(const string) main::op15 main::@18/(const string) main::op16 main::@19/(const string) main::op17 main::@2/(const string) main::op main::@20/(const string) main::op18 main::@21/(const string) main::op19 main::@3/(const string) main::op1 main::@4/(const string) main::op2 main::@5/(const string) main::op3 main::@6/(const string) main::op4 main::@7/(const string) main::op5 main::@8/(const string) main::op6 main::@9/(const string) main::op7 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) [168] (byte) printu::a#20 ← phi( main::@10/(byte) printu::a#8 main::@11/(byte) printu::a#9 main::@12/(byte) printu::a#10 main::@13/(byte) printu::a#11 main::@14/(byte) printu::a#12 main::@15/(byte) printu::a#13 main::@16/(byte) printu::a#14 main::@17/(byte) printu::a#15 main::@18/(byte) printu::a#16 main::@19/(byte) printu::a#17 main::@2/(byte) printu::a#0 main::@20/(byte) printu::a#18 main::@21/(byte) printu::a#19 main::@3/(byte) printu::a#1 main::@4/(byte) printu::a#2 main::@5/(byte) printu::a#3 main::@6/(byte) printu::a#4 main::@7/(byte) printu::a#5 main::@8/(byte) printu::a#6 main::@9/(byte) printu::a#7 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) - [168] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*~) print_char_cursor#142 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*~) print_char_cursor#146 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*~) print_char_cursor#150 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*~) print_char_cursor#158 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) + [168] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*~) print_char_cursor#143 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*~) print_char_cursor#147 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*~) print_char_cursor#151 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*~) print_char_cursor#159 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 ) [ print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#95 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) [169] call print_char param-assignment [ print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::a#20 printu::op#20 printu::b#20 printu::res#20 ] ) to:printu::@1 printu::@1: scope:[printu] from printu @@ -7136,12 +7146,12 @@ print_byte: scope:[print_byte] from printu::@1 printu::@3 [185] (byte*) print_char_cursor#94 ← phi( printu::@1/(byte*) print_char_cursor#55 printu::@3/(byte*) print_char_cursor#2 ) [ print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] ) [185] (byte) print_byte::b#2 ← phi( printu::@1/(byte) print_byte::b#0 printu::@3/(byte) print_byte::b#1 ) [ print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 ] ) [186] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#94 print_byte::b#2 print_byte::$0 ] ) - [187] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) + [187] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) [188] call print_char param-assignment [ print_char_cursor#55 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [189] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) - [190] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) + [190] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) [191] call print_char param-assignment [ print_char_cursor#55 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -7350,7 +7360,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#0 4.0 (byte) print_byte::b#1 4.0 (byte) print_byte::b#2 2.0 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#0 4.0 @@ -7360,11 +7369,11 @@ VARIABLE REGISTER WEIGHTS (byte*) print_char_cursor (byte*) print_char_cursor#1 101.0 (byte*) print_char_cursor#120 2.75 -(byte*~) print_char_cursor#141 22.0 (byte*~) print_char_cursor#142 22.0 -(byte*~) print_char_cursor#146 22.0 -(byte*~) print_char_cursor#150 22.0 -(byte*~) print_char_cursor#158 22.0 +(byte*~) print_char_cursor#143 22.0 +(byte*~) print_char_cursor#147 22.0 +(byte*~) print_char_cursor#151 22.0 +(byte*~) print_char_cursor#159 22.0 (byte*) print_char_cursor#2 51.16666666666666 (byte*) print_char_cursor#54 7.0 (byte*) print_char_cursor#55 2.106060606060605 @@ -7374,6 +7383,7 @@ VARIABLE REGISTER WEIGHTS (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_line_cursor#1 3.2265625 (byte*) print_line_cursor#13 204.0 @@ -7480,7 +7490,7 @@ Initial phi equivalence classes [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ] -[ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] +[ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_str::str#2 print_str::str#1 print_str::str#0 ] [ print_cls::sc#2 print_cls::sc#1 ] @@ -7516,7 +7526,7 @@ Complete equivalence classes [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ] -[ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] +[ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_str::str#2 print_str::str#1 print_str::str#0 ] [ print_cls::sc#2 print_cls::sc#1 ] @@ -7551,7 +7561,7 @@ Allocated zp ZP_WORD:27 [ printu::op#20 ] Allocated zp ZP_BYTE:29 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] Allocated zp ZP_BYTE:30 [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] Allocated zp ZP_BYTE:31 [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ] -Allocated zp ZP_WORD:32 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] +Allocated zp ZP_WORD:32 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] Allocated zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Allocated zp ZP_WORD:35 [ print_str::str#2 print_str::str#1 print_str::str#0 ] Allocated zp ZP_WORD:37 [ print_cls::sc#2 print_cls::sc#1 ] @@ -7873,7 +7883,7 @@ main: { //SEG109 [42] (byte) printu::res#4 ← (byte) main::r#44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ) -- vbuz1=vbuz2 lda r_44 sta printu.res - //SEG110 [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ) -- pbuz1=pbuz2 + //SEG110 [43] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -7889,7 +7899,7 @@ main: { lda #>op4 sta printu.op+1 //SEG116 [168] phi (byte) printu::a#20 = (byte) printu::a#4 [phi:main::@6->printu#3] -- register_copy - //SEG117 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#158 [phi:main::@6->printu#4] -- register_copy + //SEG117 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#159 [phi:main::@6->printu#4] -- register_copy jsr printu jmp b51 //SEG118 main::@51 @@ -8081,7 +8091,7 @@ main: { //SEG190 [72] (byte) printu::res#8 ← (byte) main::r#48 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ) -- vbuz1=vbuz2 lda r_48 sta printu.res - //SEG191 [73] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ) -- pbuz1=pbuz2 + //SEG191 [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -8097,7 +8107,7 @@ main: { lda #>op8 sta printu.op+1 //SEG197 [168] phi (byte) printu::a#20 = (byte) printu::a#8 [phi:main::@10->printu#3] -- register_copy - //SEG198 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#142 [phi:main::@10->printu#4] -- register_copy + //SEG198 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#143 [phi:main::@10->printu#4] -- register_copy jsr printu jmp b56 //SEG199 main::@56 @@ -8291,7 +8301,7 @@ main: { //SEG271 [102] (byte) printu::res#12 ← (byte) main::r#52 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ) -- vbuz1=vbuz2 lda r_52 sta printu.res - //SEG272 [103] (byte*~) print_char_cursor#146 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ) -- pbuz1=pbuz2 + //SEG272 [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -8307,7 +8317,7 @@ main: { lda #>op12 sta printu.op+1 //SEG278 [168] phi (byte) printu::a#20 = (byte) printu::a#12 [phi:main::@14->printu#3] -- register_copy - //SEG279 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#146 [phi:main::@14->printu#4] -- register_copy + //SEG279 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#147 [phi:main::@14->printu#4] -- register_copy jsr printu jmp b61 //SEG280 main::@61 @@ -8499,7 +8509,7 @@ main: { //SEG352 [132] (byte) printu::res#16 ← (byte) main::r#56 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ) -- vbuz1=vbuz2 lda r_56 sta printu.res - //SEG353 [133] (byte*~) print_char_cursor#150 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ) -- pbuz1=pbuz2 + //SEG353 [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -8515,7 +8525,7 @@ main: { lda #>op16 sta printu.op+1 //SEG359 [168] phi (byte) printu::a#20 = (byte) printu::a#16 [phi:main::@18->printu#3] -- register_copy - //SEG360 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#150 [phi:main::@18->printu#4] -- register_copy + //SEG360 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#151 [phi:main::@18->printu#4] -- register_copy jsr printu jmp b66 //SEG361 main::@66 @@ -8698,7 +8708,7 @@ main: { rts //SEG430 main::@71 b71: - //SEG431 [162] (byte*~) print_char_cursor#141 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG431 [162] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -8707,7 +8717,7 @@ main: { b1_from_b71: //SEG433 [6] phi (byte*) print_line_cursor#27 = (byte*) print_line_cursor#1 [phi:main::@71->main::@1#0] -- register_copy //SEG434 [6] phi (byte) main::i#10 = (byte) main::i#1 [phi:main::@71->main::@1#1] -- register_copy - //SEG435 [6] phi (byte*) print_char_cursor#120 = (byte*~) print_char_cursor#141 [phi:main::@71->main::@1#2] -- register_copy + //SEG435 [6] phi (byte*) print_char_cursor#120 = (byte*~) print_char_cursor#142 [phi:main::@71->main::@1#2] -- register_copy //SEG436 [6] phi (byte) main::a#10 = (byte) main::a#1 [phi:main::@71->main::@1#3] -- register_copy jmp b1 op: .text "< @" @@ -8875,9 +8885,9 @@ print_byte: { lsr lsr sta _0 - //SEG487 [187] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG487 [187] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG488 [188] call print_char param-assignment [ print_char_cursor#55 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] ) //SEG489 [181] phi from print_byte to print_char [phi:print_byte->print_char] @@ -8892,9 +8902,9 @@ print_byte: { lda #$f and b sta _2 - //SEG494 [190] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG494 [190] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG495 [191] call print_char param-assignment [ print_char_cursor#55 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] ) //SEG496 [181] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -8907,7 +8917,6 @@ print_byte: { breturn: //SEG500 [192] return [ print_char_cursor#55 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] ) rts - hextab: .text "0123456789abcdef" } //SEG501 print_str print_str: { @@ -8988,6 +8997,7 @@ print_cls: { //SEG523 [205] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Statement [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 206 - (byte) main::a#10 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ( main:2 [ main::a#10 print_char_cursor#120 main::i#10 print_line_cursor#27 main::b#0 ] ) always clobbers reg byte a @@ -8996,24 +9006,24 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ ma Statement [21] if((byte) main::a#10>=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@4 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ main::b#0 ] Statement [28] if((byte) main::a#10>=(byte) main::a#10) goto main::@5 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ) always clobbers reg byte a +Statement [43] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ printu::a#20 printu::a#8 printu::a#9 printu::a#10 printu::a#11 printu::a#12 printu::a#13 printu::a#14 printu::a#15 printu::a#16 printu::a#17 printu::a#0 printu::a#18 printu::a#19 printu::a#1 printu::a#2 printu::a#3 printu::a#4 printu::a#5 printu::a#6 printu::a#7 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] Statement [51] if((byte) main::a#10<=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@8 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [58] if((byte) main::a#10<=(byte) main::a#10) goto main::@9 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [73] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ) always clobbers reg byte a +Statement [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) always clobbers reg byte a Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [81] if((byte) main::a#10>*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@12 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [88] if((byte) main::a#10>(byte) main::a#10) goto main::@13 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [103] (byte*~) print_char_cursor#146 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ) always clobbers reg byte a +Statement [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) always clobbers reg byte a Statement [111] if((byte) main::a#10<*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@16 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [118] if((byte) main::a#10<(byte) main::a#10) goto main::@17 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [133] (byte*~) print_char_cursor#150 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ) always clobbers reg byte a +Statement [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) always clobbers reg byte a Statement [141] if((byte) main::a#10!=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@20 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [148] if((byte) main::a#10!=(byte) main::a#10) goto main::@21 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [162] (byte*~) print_char_cursor#141 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [162] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [165] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [166] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [172] (byte*) print_str::str#1 ← (byte[]) printu::op#20 [ print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ) always clobbers reg byte a @@ -9035,29 +9045,29 @@ Statement [21] if((byte) main::a#10>=*((const byte[5]) main::cs#0 + (byte) main: Statement [25] (byte) printu::b#2 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 main::r#42 printu::a#2 printu::b#2 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 main::r#42 printu::a#2 printu::b#2 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:6 [ main::r#42 ] Statement [28] if((byte) main::a#10>=(byte) main::a#10) goto main::@5 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ) always clobbers reg byte a +Statement [43] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ) always clobbers reg byte a Statement [51] if((byte) main::a#10<=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@8 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [55] (byte) printu::b#6 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#46 printu::a#6 printu::b#6 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#46 printu::a#6 printu::b#6 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ main::r#46 ] Statement [58] if((byte) main::a#10<=(byte) main::a#10) goto main::@9 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [73] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ) always clobbers reg byte a +Statement [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) always clobbers reg byte a Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [81] if((byte) main::a#10>*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@12 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [85] (byte) printu::b#10 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#50 printu::a#10 printu::b#10 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#50 printu::a#10 printu::b#10 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ main::r#50 ] Statement [88] if((byte) main::a#10>(byte) main::a#10) goto main::@13 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [103] (byte*~) print_char_cursor#146 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ) always clobbers reg byte a +Statement [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) always clobbers reg byte a Statement [111] if((byte) main::a#10<*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@16 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [115] (byte) printu::b#14 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#54 printu::a#14 printu::b#14 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#54 printu::a#14 printu::b#14 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ main::r#54 ] Statement [118] if((byte) main::a#10<(byte) main::a#10) goto main::@17 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [133] (byte*~) print_char_cursor#150 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ) always clobbers reg byte a +Statement [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) always clobbers reg byte a Statement [141] if((byte) main::a#10!=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@20 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [145] (byte) printu::b#18 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::r#58 printu::a#18 printu::b#18 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::r#58 printu::a#18 printu::b#18 print_char_cursor#55 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ main::r#58 ] Statement [148] if((byte) main::a#10!=(byte) main::a#10) goto main::@21 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [162] (byte*~) print_char_cursor#141 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [162] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [165] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [166] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [172] (byte*) print_str::str#1 ← (byte[]) printu::op#20 [ print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ) always clobbers reg byte a @@ -9071,25 +9081,25 @@ Statement [7] (byte) main::b#0 ← (byte/word/signed word/dword/signed dword) 20 Statement [21] if((byte) main::a#10>=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@4 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a reg byte y Statement [25] (byte) printu::b#2 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 main::r#42 printu::a#2 printu::b#2 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 main::r#42 printu::a#2 printu::b#2 print_char_cursor#55 ] ) always clobbers reg byte a Statement [28] if((byte) main::a#10>=(byte) main::a#10) goto main::@5 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ) always clobbers reg byte a +Statement [43] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ) always clobbers reg byte a Statement [51] if((byte) main::a#10<=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@8 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [55] (byte) printu::b#6 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#46 printu::a#6 printu::b#6 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#46 printu::a#6 printu::b#6 print_char_cursor#55 ] ) always clobbers reg byte a Statement [58] if((byte) main::a#10<=(byte) main::a#10) goto main::@9 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [73] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ) always clobbers reg byte a +Statement [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) always clobbers reg byte a Statement [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [81] if((byte) main::a#10>*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@12 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [85] (byte) printu::b#10 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#50 printu::a#10 printu::b#10 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#50 printu::a#10 printu::b#10 print_char_cursor#55 ] ) always clobbers reg byte a Statement [88] if((byte) main::a#10>(byte) main::a#10) goto main::@13 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [103] (byte*~) print_char_cursor#146 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ) always clobbers reg byte a +Statement [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) always clobbers reg byte a Statement [111] if((byte) main::a#10<*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@16 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a Statement [115] (byte) printu::b#14 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#54 printu::a#14 printu::b#14 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 main::r#54 printu::a#14 printu::b#14 print_char_cursor#55 ] ) always clobbers reg byte a Statement [118] if((byte) main::a#10<(byte) main::a#10) goto main::@17 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) always clobbers reg byte a -Statement [133] (byte*~) print_char_cursor#150 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ) always clobbers reg byte a +Statement [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) always clobbers reg byte a Statement [141] if((byte) main::a#10!=*((const byte[5]) main::cs#0 + (byte) main::i#10)) goto main::@20 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [145] (byte) printu::b#18 ← *((const byte[5]) main::cs#0 + (byte) main::i#10) [ main::a#10 main::i#10 print_line_cursor#1 main::r#58 printu::a#18 printu::b#18 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::r#58 printu::a#18 printu::b#18 print_char_cursor#55 ] ) always clobbers reg byte a Statement [148] if((byte) main::a#10!=(byte) main::a#10) goto main::@21 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [157] (byte) main::a#1 ← (byte) main::a#10 + (byte/signed byte/word/signed word/dword/signed dword) 48 [ main::i#10 main::a#1 print_line_cursor#1 ] ( main:2 [ main::i#10 main::a#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [162] (byte*~) print_char_cursor#141 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [162] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) always clobbers reg byte a Statement [165] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#13 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [166] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#55) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#55 ] ( main:2::print_ln:36 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:66 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:96 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:126 [ main::a#10 main::i#10 main::b#0 print_line_cursor#1 print_char_cursor#55 ] main:2::print_ln:156 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) always clobbers reg byte a Statement [172] (byte*) print_str::str#1 ← (byte[]) printu::op#20 [ print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ( main:2::printu:14 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:20 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:27 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:34 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:50 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:57 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:64 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:74 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:80 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:87 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:94 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:104 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:110 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:117 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:124 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:134 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:140 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:147 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] main:2::printu:154 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 printu::b#20 printu::res#20 print_str::str#1 ] ) always clobbers reg byte a @@ -9127,7 +9137,7 @@ Potential registers zp ZP_WORD:27 [ printu::op#20 ] : zp ZP_WORD:27 , Potential registers zp ZP_BYTE:29 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] : zp ZP_BYTE:29 , reg byte x , Potential registers zp ZP_BYTE:30 [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] : zp ZP_BYTE:30 , reg byte x , Potential registers zp ZP_BYTE:31 [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ] : zp ZP_BYTE:31 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:32 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] : zp ZP_WORD:32 , +Potential registers zp ZP_WORD:32 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] : zp ZP_WORD:32 , Potential registers zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] : zp ZP_BYTE:34 , reg byte a , reg byte x , Potential registers zp ZP_WORD:35 [ print_str::str#2 print_str::str#1 print_str::str#0 ] : zp ZP_WORD:35 , Potential registers zp ZP_WORD:37 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:37 , @@ -9137,7 +9147,7 @@ Potential registers zp ZP_BYTE:41 [ print_byte::$2 ] : zp ZP_BYTE:41 , reg byte REGISTER UPLIFT SCOPES Uplift Scope [printu] 418.2: zp ZP_BYTE:30 [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] 268.67: zp ZP_BYTE:26 [ printu::a#20 printu::a#8 printu::a#9 printu::a#10 printu::a#11 printu::a#12 printu::a#13 printu::a#14 printu::a#15 printu::a#16 printu::a#17 printu::a#0 printu::a#18 printu::a#19 printu::a#1 printu::a#2 printu::a#3 printu::a#4 printu::a#5 printu::a#6 printu::a#7 ] 178.17: zp ZP_BYTE:29 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] 0.5: zp ZP_WORD:27 [ printu::op#20 ] -Uplift Scope [] 498.02: zp ZP_WORD:32 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] 264.96: zp ZP_WORD:24 [ print_line_cursor#13 print_line_cursor#25 print_line_cursor#27 print_line_cursor#1 ] +Uplift Scope [] 498.02: zp ZP_WORD:32 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] 264.96: zp ZP_WORD:24 [ print_line_cursor#13 print_line_cursor#25 print_line_cursor#27 print_line_cursor#1 ] Uplift Scope [print_str] 305.5: zp ZP_WORD:35 [ print_str::str#2 print_str::str#1 print_str::str#0 ] Uplift Scope [main] 11.87: zp ZP_BYTE:3 [ main::i#10 main::i#1 ] 9.36: zp ZP_BYTE:2 [ main::a#10 main::a#1 ] 5.5: zp ZP_BYTE:5 [ main::r#41 ] 5.5: zp ZP_BYTE:9 [ main::r#45 ] 5.5: zp ZP_BYTE:13 [ main::r#49 ] 5.5: zp ZP_BYTE:17 [ main::r#53 ] 5.5: zp ZP_BYTE:21 [ main::r#57 ] 3.67: zp ZP_BYTE:4 [ main::r#40 ] 3.67: zp ZP_BYTE:6 [ main::r#42 ] 3.67: zp ZP_BYTE:7 [ main::r#43 ] 3.67: zp ZP_BYTE:8 [ main::r#44 ] 3.67: zp ZP_BYTE:10 [ main::r#46 ] 3.67: zp ZP_BYTE:11 [ main::r#47 ] 3.67: zp ZP_BYTE:12 [ main::r#48 ] 3.67: zp ZP_BYTE:14 [ main::r#50 ] 3.67: zp ZP_BYTE:15 [ main::r#51 ] 3.67: zp ZP_BYTE:16 [ main::r#52 ] 3.67: zp ZP_BYTE:18 [ main::r#54 ] 3.67: zp ZP_BYTE:19 [ main::r#55 ] 3.67: zp ZP_BYTE:20 [ main::r#56 ] 3.67: zp ZP_BYTE:22 [ main::r#58 ] 3.67: zp ZP_BYTE:23 [ main::r#59 ] 0.98: zp ZP_BYTE:39 [ main::b#0 ] Uplift Scope [print_cls] 33: zp ZP_WORD:37 [ print_cls::sc#2 print_cls::sc#1 ] @@ -9146,7 +9156,7 @@ Uplift Scope [print_byte] 10: zp ZP_BYTE:34 [ print_byte::b#2 print_byte::b#0 pr Uplift Scope [print_ln] Uplifting [printu] best 21837 combination reg byte x [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] zp ZP_BYTE:26 [ printu::a#20 printu::a#8 printu::a#9 printu::a#10 printu::a#11 printu::a#12 printu::a#13 printu::a#14 printu::a#15 printu::a#16 printu::a#17 printu::a#0 printu::a#18 printu::a#19 printu::a#1 printu::a#2 printu::a#3 printu::a#4 printu::a#5 printu::a#6 printu::a#7 ] zp ZP_BYTE:29 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] zp ZP_WORD:27 [ printu::op#20 ] -Uplifting [] best 21837 combination zp ZP_WORD:32 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] zp ZP_WORD:24 [ print_line_cursor#13 print_line_cursor#25 print_line_cursor#27 print_line_cursor#1 ] +Uplifting [] best 21837 combination zp ZP_WORD:32 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] zp ZP_WORD:24 [ print_line_cursor#13 print_line_cursor#25 print_line_cursor#27 print_line_cursor#1 ] Uplifting [print_str] best 21837 combination zp ZP_WORD:35 [ print_str::str#2 print_str::str#1 print_str::str#0 ] Uplifting [print_cls] best 21837 combination zp ZP_WORD:37 [ print_cls::sc#2 print_cls::sc#1 ] Uplifting [print_char] best 21821 combination reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ] @@ -9210,7 +9220,7 @@ Coalescing zero page register [ zp ZP_WORD:24 [ print_line_cursor#13 print_line_ Allocated (was zp ZP_WORD:24) zp ZP_WORD:4 [ print_line_cursor#13 print_line_cursor#25 print_line_cursor#27 print_line_cursor#1 print_cls::sc#2 print_cls::sc#1 ] Allocated (was zp ZP_WORD:27) zp ZP_WORD:6 [ printu::op#20 print_str::str#2 print_str::str#1 print_str::str#0 ] Allocated (was zp ZP_BYTE:29) zp ZP_BYTE:8 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] -Allocated (was zp ZP_WORD:32) zp ZP_WORD:9 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] +Allocated (was zp ZP_WORD:32) zp ZP_WORD:9 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] Allocated (was zp ZP_BYTE:34) zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:12 [ main::b#0 ] @@ -9488,7 +9498,7 @@ main: { sta printu.b //SEG109 [42] (byte) printu::res#4 ← (byte) main::r#44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ) // (byte) printu::res#4 = (byte) main::r#44 // register copy reg byte x - //SEG110 [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ) -- pbuz1=pbuz2 + //SEG110 [43] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -9504,7 +9514,7 @@ main: { lda #>op4 sta printu.op+1 //SEG116 [168] phi (byte) printu::a#20 = (byte) printu::a#4 [phi:main::@6->printu#3] -- register_copy - //SEG117 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#158 [phi:main::@6->printu#4] -- register_copy + //SEG117 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#159 [phi:main::@6->printu#4] -- register_copy jsr printu jmp b51 //SEG118 main::@51 @@ -9680,7 +9690,7 @@ main: { sta printu.b //SEG190 [72] (byte) printu::res#8 ← (byte) main::r#48 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ) // (byte) printu::res#8 = (byte) main::r#48 // register copy reg byte x - //SEG191 [73] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ) -- pbuz1=pbuz2 + //SEG191 [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -9696,7 +9706,7 @@ main: { lda #>op8 sta printu.op+1 //SEG197 [168] phi (byte) printu::a#20 = (byte) printu::a#8 [phi:main::@10->printu#3] -- register_copy - //SEG198 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#142 [phi:main::@10->printu#4] -- register_copy + //SEG198 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#143 [phi:main::@10->printu#4] -- register_copy jsr printu jmp b56 //SEG199 main::@56 @@ -9874,7 +9884,7 @@ main: { sta printu.b //SEG271 [102] (byte) printu::res#12 ← (byte) main::r#52 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ) // (byte) printu::res#12 = (byte) main::r#52 // register copy reg byte x - //SEG272 [103] (byte*~) print_char_cursor#146 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ) -- pbuz1=pbuz2 + //SEG272 [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -9890,7 +9900,7 @@ main: { lda #>op12 sta printu.op+1 //SEG278 [168] phi (byte) printu::a#20 = (byte) printu::a#12 [phi:main::@14->printu#3] -- register_copy - //SEG279 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#146 [phi:main::@14->printu#4] -- register_copy + //SEG279 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#147 [phi:main::@14->printu#4] -- register_copy jsr printu jmp b61 //SEG280 main::@61 @@ -10066,7 +10076,7 @@ main: { sta printu.b //SEG352 [132] (byte) printu::res#16 ← (byte) main::r#56 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ) // (byte) printu::res#16 = (byte) main::r#56 // register copy reg byte x - //SEG353 [133] (byte*~) print_char_cursor#150 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ) -- pbuz1=pbuz2 + //SEG353 [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -10082,7 +10092,7 @@ main: { lda #>op16 sta printu.op+1 //SEG359 [168] phi (byte) printu::a#20 = (byte) printu::a#16 [phi:main::@18->printu#3] -- register_copy - //SEG360 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#150 [phi:main::@18->printu#4] -- register_copy + //SEG360 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#151 [phi:main::@18->printu#4] -- register_copy jsr printu jmp b66 //SEG361 main::@66 @@ -10253,7 +10263,7 @@ main: { rts //SEG430 main::@71 b71: - //SEG431 [162] (byte*~) print_char_cursor#141 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG431 [162] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -10262,7 +10272,7 @@ main: { b1_from_b71: //SEG433 [6] phi (byte*) print_line_cursor#27 = (byte*) print_line_cursor#1 [phi:main::@71->main::@1#0] -- register_copy //SEG434 [6] phi (byte) main::i#10 = (byte) main::i#1 [phi:main::@71->main::@1#1] -- register_copy - //SEG435 [6] phi (byte*) print_char_cursor#120 = (byte*~) print_char_cursor#141 [phi:main::@71->main::@1#2] -- register_copy + //SEG435 [6] phi (byte*) print_char_cursor#120 = (byte*~) print_char_cursor#142 [phi:main::@71->main::@1#2] -- register_copy //SEG436 [6] phi (byte) main::a#10 = (byte) main::a#1 [phi:main::@71->main::@1#3] -- register_copy jmp b1 op: .text "< @" @@ -10418,9 +10428,9 @@ print_byte: { lsr lsr lsr - //SEG487 [187] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG487 [187] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG488 [188] call print_char param-assignment [ print_char_cursor#55 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] ) //SEG489 [181] phi from print_byte to print_char [phi:print_byte->print_char] print_char_from_print_byte: @@ -10433,9 +10443,9 @@ print_byte: { //SEG493 [189] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and b - //SEG494 [190] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG494 [190] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG495 [191] call print_char param-assignment [ print_char_cursor#55 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] ) //SEG496 [181] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -10447,7 +10457,6 @@ print_byte: { breturn: //SEG500 [192] return [ print_char_cursor#55 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] ) rts - hextab: .text "0123456789abcdef" } //SEG501 print_str print_str: { @@ -10528,6 +10537,7 @@ print_cls: { //SEG523 [205] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b16 @@ -10937,8 +10947,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#0 b zp ZP_BYTE:11 4.0 (byte) print_byte::b#1 b zp ZP_BYTE:11 4.0 (byte) print_byte::b#2 b zp ZP_BYTE:11 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -10949,11 +10957,11 @@ FINAL SYMBOL TABLE (byte*) print_char_cursor (byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:9 101.0 (byte*) print_char_cursor#120 print_char_cursor zp ZP_WORD:9 2.75 -(byte*~) print_char_cursor#141 print_char_cursor zp ZP_WORD:9 22.0 (byte*~) print_char_cursor#142 print_char_cursor zp ZP_WORD:9 22.0 -(byte*~) print_char_cursor#146 print_char_cursor zp ZP_WORD:9 22.0 -(byte*~) print_char_cursor#150 print_char_cursor zp ZP_WORD:9 22.0 -(byte*~) print_char_cursor#158 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#143 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#147 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#151 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#159 print_char_cursor zp ZP_WORD:9 22.0 (byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:9 51.16666666666666 (byte*) print_char_cursor#54 print_char_cursor zp ZP_WORD:9 7.0 (byte*) print_char_cursor#55 print_char_cursor zp ZP_WORD:9 2.106060606060605 @@ -10965,6 +10973,8 @@ FINAL SYMBOL TABLE (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:4 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:4 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:4 3.2265625 (byte*) print_line_cursor#13 print_line_cursor zp ZP_WORD:4 204.0 @@ -11080,7 +11090,7 @@ zp ZP_WORD:6 [ printu::op#20 print_str::str#2 print_str::str#1 print_str::str#0 zp ZP_BYTE:8 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] reg byte x [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ] -zp ZP_WORD:9 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] +zp ZP_WORD:9 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] zp ZP_BYTE:12 [ main::b#0 ] reg byte a [ print_byte::$0 ] @@ -11311,7 +11321,7 @@ main: { sta printu.b //SEG109 [42] (byte) printu::res#4 ← (byte) main::r#44 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 ] ) // (byte) printu::res#4 = (byte) main::r#44 // register copy reg byte x - //SEG110 [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#158 ] ) -- pbuz1=pbuz2 + //SEG110 [43] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#4 printu::b#4 printu::res#4 print_char_cursor#159 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -11326,7 +11336,7 @@ main: { lda #>op4 sta printu.op+1 //SEG116 [168] phi (byte) printu::a#20 = (byte) printu::a#4 [phi:main::@6->printu#3] -- register_copy - //SEG117 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#158 [phi:main::@6->printu#4] -- register_copy + //SEG117 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#159 [phi:main::@6->printu#4] -- register_copy jsr printu //SEG118 main::@51 //SEG119 [45] if((byte) main::a#10<=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@7 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) -- vbuz1_le_vbuc1_then_la1 @@ -11467,7 +11477,7 @@ main: { sta printu.b //SEG190 [72] (byte) printu::res#8 ← (byte) main::r#48 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 ] ) // (byte) printu::res#8 = (byte) main::r#48 // register copy reg byte x - //SEG191 [73] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#142 ] ) -- pbuz1=pbuz2 + //SEG191 [73] (byte*~) print_char_cursor#143 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#8 printu::b#8 printu::res#8 print_char_cursor#143 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -11482,7 +11492,7 @@ main: { lda #>op8 sta printu.op+1 //SEG197 [168] phi (byte) printu::a#20 = (byte) printu::a#8 [phi:main::@10->printu#3] -- register_copy - //SEG198 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#142 [phi:main::@10->printu#4] -- register_copy + //SEG198 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#143 [phi:main::@10->printu#4] -- register_copy jsr printu //SEG199 main::@56 //SEG200 [75] if((byte) main::a#10>(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@11 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) -- vbuz1_gt_vbuc1_then_la1 @@ -11625,7 +11635,7 @@ main: { sta printu.b //SEG271 [102] (byte) printu::res#12 ← (byte) main::r#52 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 ] ) // (byte) printu::res#12 = (byte) main::r#52 // register copy reg byte x - //SEG272 [103] (byte*~) print_char_cursor#146 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#146 ] ) -- pbuz1=pbuz2 + //SEG272 [103] (byte*~) print_char_cursor#147 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::a#12 printu::b#12 printu::res#12 print_char_cursor#147 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -11640,7 +11650,7 @@ main: { lda #>op12 sta printu.op+1 //SEG278 [168] phi (byte) printu::a#20 = (byte) printu::a#12 [phi:main::@14->printu#3] -- register_copy - //SEG279 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#146 [phi:main::@14->printu#4] -- register_copy + //SEG279 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#147 [phi:main::@14->printu#4] -- register_copy jsr printu //SEG280 main::@61 //SEG281 [105] if((byte) main::a#10<(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@15 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 print_char_cursor#55 ] ) -- vbuz1_lt_vbuc1_then_la1 @@ -11781,7 +11791,7 @@ main: { sta printu.b //SEG352 [132] (byte) printu::res#16 ← (byte) main::r#56 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 ] ) // (byte) printu::res#16 = (byte) main::r#56 // register copy reg byte x - //SEG353 [133] (byte*~) print_char_cursor#150 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#150 ] ) -- pbuz1=pbuz2 + //SEG353 [133] (byte*~) print_char_cursor#151 ← (byte*) print_line_cursor#1 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 printu::a#16 printu::b#16 printu::res#16 print_char_cursor#151 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -11796,7 +11806,7 @@ main: { lda #>op16 sta printu.op+1 //SEG359 [168] phi (byte) printu::a#20 = (byte) printu::a#16 [phi:main::@18->printu#3] -- register_copy - //SEG360 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#150 [phi:main::@18->printu#4] -- register_copy + //SEG360 [168] phi (byte*) print_char_cursor#95 = (byte*~) print_char_cursor#151 [phi:main::@18->printu#4] -- register_copy jsr printu //SEG361 main::@66 //SEG362 [135] if((byte) main::a#10!=(byte/signed byte/word/signed word/dword/signed dword) 55) goto main::@19 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ( main:2 [ main::a#10 main::i#10 print_line_cursor#1 print_char_cursor#55 ] ) -- vbuz1_neq_vbuc1_then_la1 @@ -11933,7 +11943,7 @@ main: { //SEG429 [161] return [ ] ( main:2 [ ] ) //SEG430 main::@71 b71: - //SEG431 [162] (byte*~) print_char_cursor#141 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#141 main::i#1 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG431 [162] (byte*~) print_char_cursor#142 ← (byte*) print_line_cursor#1 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ( main:2 [ main::a#1 print_char_cursor#142 main::i#1 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -11941,7 +11951,7 @@ main: { //SEG432 [6] phi from main::@71 to main::@1 [phi:main::@71->main::@1] //SEG433 [6] phi (byte*) print_line_cursor#27 = (byte*) print_line_cursor#1 [phi:main::@71->main::@1#0] -- register_copy //SEG434 [6] phi (byte) main::i#10 = (byte) main::i#1 [phi:main::@71->main::@1#1] -- register_copy - //SEG435 [6] phi (byte*) print_char_cursor#120 = (byte*~) print_char_cursor#141 [phi:main::@71->main::@1#2] -- register_copy + //SEG435 [6] phi (byte*) print_char_cursor#120 = (byte*~) print_char_cursor#142 [phi:main::@71->main::@1#2] -- register_copy //SEG436 [6] phi (byte) main::a#10 = (byte) main::a#1 [phi:main::@71->main::@1#3] -- register_copy jmp b1 op: .text "< @" @@ -12071,9 +12081,9 @@ print_byte: { lsr lsr lsr - //SEG487 [187] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG487 [187] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char::ch#0 print_char_cursor#94 print_byte::b#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG488 [188] call print_char param-assignment [ print_char_cursor#55 print_byte::b#2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::b#2 ] ) //SEG489 [181] phi from print_byte to print_char [phi:print_byte->print_char] //SEG490 [181] phi (byte*) print_char_cursor#54 = (byte*) print_char_cursor#94 [phi:print_byte->print_char#0] -- register_copy @@ -12083,9 +12093,9 @@ print_byte: { //SEG493 [189] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#55 print_byte::$2 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and b - //SEG494 [190] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG494 [190] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#55 print_char::ch#1 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG495 [191] call print_char param-assignment [ print_char_cursor#55 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] ) //SEG496 [181] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG497 [181] phi (byte*) print_char_cursor#54 = (byte*) print_char_cursor#55 [phi:print_byte::@1->print_char#0] -- register_copy @@ -12094,7 +12104,6 @@ print_byte: { //SEG499 print_byte::@return //SEG500 [192] return [ print_char_cursor#55 ] ( main:2::printu:14::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:171 [ main::a#10 main::i#10 print_line_cursor#1 printu::op#20 printu::b#20 printu::res#20 print_char_cursor#55 ] main:2::printu:14::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:20::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:27::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:34::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#27 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:44::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:50::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:57::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:64::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:74::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:80::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:87::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:94::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:104::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:110::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:117::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:124::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 main::b#0 printu::res#20 print_char_cursor#55 ] main:2::printu:134::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:140::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:147::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] main:2::printu:154::print_byte:175 [ main::a#10 main::i#10 print_line_cursor#1 printu::res#20 print_char_cursor#55 ] ) rts - hextab: .text "0123456789abcdef" } //SEG501 print_str print_str: { @@ -12163,4 +12172,5 @@ print_cls: { //SEG523 [205] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.sym index 569eed08b..cde1ff174 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.sym @@ -131,8 +131,6 @@ (byte) print_byte::b#0 b zp ZP_BYTE:11 4.0 (byte) print_byte::b#1 b zp ZP_BYTE:11 4.0 (byte) print_byte::b#2 b zp ZP_BYTE:11 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -143,11 +141,11 @@ (byte*) print_char_cursor (byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:9 101.0 (byte*) print_char_cursor#120 print_char_cursor zp ZP_WORD:9 2.75 -(byte*~) print_char_cursor#141 print_char_cursor zp ZP_WORD:9 22.0 (byte*~) print_char_cursor#142 print_char_cursor zp ZP_WORD:9 22.0 -(byte*~) print_char_cursor#146 print_char_cursor zp ZP_WORD:9 22.0 -(byte*~) print_char_cursor#150 print_char_cursor zp ZP_WORD:9 22.0 -(byte*~) print_char_cursor#158 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#143 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#147 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#151 print_char_cursor zp ZP_WORD:9 22.0 +(byte*~) print_char_cursor#159 print_char_cursor zp ZP_WORD:9 22.0 (byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:9 51.16666666666666 (byte*) print_char_cursor#54 print_char_cursor zp ZP_WORD:9 7.0 (byte*) print_char_cursor#55 print_char_cursor zp ZP_WORD:9 2.106060606060605 @@ -159,6 +157,8 @@ (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:4 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:4 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:4 3.2265625 (byte*) print_line_cursor#13 print_line_cursor zp ZP_WORD:4 204.0 @@ -274,7 +274,7 @@ zp ZP_WORD:6 [ printu::op#20 print_str::str#2 print_str::str#1 print_str::str#0 zp ZP_BYTE:8 [ printu::b#20 printu::b#8 printu::b#10 printu::b#11 printu::b#12 printu::b#14 printu::b#15 printu::b#16 printu::b#0 printu::b#18 printu::b#19 printu::b#2 printu::b#3 printu::b#4 printu::b#6 printu::b#7 ] reg byte x [ printu::res#20 printu::res#8 printu::res#9 printu::res#10 printu::res#11 printu::res#12 printu::res#13 printu::res#14 printu::res#15 printu::res#16 printu::res#17 printu::res#0 printu::res#18 printu::res#19 printu::res#1 printu::res#2 printu::res#3 printu::res#4 printu::res#5 printu::res#6 printu::res#7 ] reg byte a [ print_char::ch#5 print_char::ch#0 print_char::ch#1 print_char::ch#4 ] -zp ZP_WORD:9 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#142 print_char_cursor#55 print_char_cursor#146 print_char_cursor#150 print_char_cursor#120 print_char_cursor#141 print_char_cursor#158 print_char_cursor#2 print_char_cursor#1 ] +zp ZP_WORD:9 [ print_char_cursor#54 print_char_cursor#94 print_char_cursor#95 print_char_cursor#143 print_char_cursor#55 print_char_cursor#147 print_char_cursor#151 print_char_cursor#120 print_char_cursor#142 print_char_cursor#159 print_char_cursor#2 print_char_cursor#1 ] zp ZP_BYTE:11 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] zp ZP_BYTE:12 [ main::b#0 ] reg byte a [ print_byte::$0 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-division.asm b/src/test/java/dk/camelot64/kickc/test/ref/test-division.asm index db24d4395..434724776 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-division.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-division.asm @@ -147,15 +147,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char lda #$f and b tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -638,3 +637,4 @@ print_cls: { bne b1 rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-division.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-division.cfg index dce26220d..4432f49d9 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-division.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-division.cfg @@ -45,7 +45,7 @@ test_16s::@1: scope:[test_16s] from test_16s test_16s::@11 test_16s::@3: scope:[test_16s] from test_16s::@1 [23] (signed word) test_16s::res#0 ← (signed word) div16s::return#3 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 ] ) [24] (signed word) print_sword::w#1 ← (signed word) test_16s::dividend#0 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ) - [25] (byte*~) print_char_cursor#155 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ) + [25] (byte*~) print_char_cursor#156 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ) [26] call print_sword param-assignment [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ) to:test_16s::@4 test_16s::@4: scope:[test_16s] from test_16s::@3 @@ -95,7 +95,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [48] return [ print_line_cursor#1 ] ( main:2::test_16s:13::print_ln:40 [ test_16s::i#10 print_line_cursor#1 ] main:2::test_8s:11::print_ln:156 [ test_8s::i#10 print_line_cursor#1 ] main:2::test_16u:9::print_ln:241 [ test_16u::i#10 print_line_cursor#1 ] main:2::test_8u:7::print_ln:269 [ test_8u::i#10 print_line_cursor#1 ] ) to:@return print_sword: scope:[print_sword] from test_16s::@3 test_16s::@5 test_16s::@7 test_16s::@9 - [49] (byte*) print_char_cursor#129 ← phi( test_16s::@3/(byte*~) print_char_cursor#155 test_16s::@5/(byte*) print_char_cursor#126 test_16s::@7/(byte*) print_char_cursor#126 test_16s::@9/(byte*) print_char_cursor#126 ) [ print_sword::w#5 print_char_cursor#129 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#129 ] ) + [49] (byte*) print_char_cursor#129 ← phi( test_16s::@3/(byte*~) print_char_cursor#156 test_16s::@5/(byte*) print_char_cursor#126 test_16s::@7/(byte*) print_char_cursor#126 test_16s::@9/(byte*) print_char_cursor#126 ) [ print_sword::w#5 print_char_cursor#129 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#129 ] ) [49] (signed word) print_sword::w#5 ← phi( test_16s::@3/(signed word) print_sword::w#1 test_16s::@5/(signed word) print_sword::w#2 test_16s::@7/(signed word) print_sword::w#3 test_16s::@9/(signed word) print_sword::w#4 ) [ print_sword::w#5 print_char_cursor#129 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#129 ] ) [50] if((signed word) print_sword::w#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1 [ print_sword::w#5 print_char_cursor#129 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#129 ] ) to:print_sword::@2 @@ -116,7 +116,7 @@ print_sword::@return: scope:[print_sword] from print_sword::@1 [57] return [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] ) to:@return print_word: scope:[print_word] from print_sword::@1 test_16u::@3 test_16u::@5 test_16u::@7 test_16u::@9 - [58] (byte*) print_char_cursor#132 ← phi( print_sword::@1/(byte*) print_char_cursor#128 test_16u::@3/(byte*~) print_char_cursor#162 test_16u::@5/(byte*) print_char_cursor#126 test_16u::@7/(byte*) print_char_cursor#126 test_16u::@9/(byte*) print_char_cursor#126 ) [ print_word::w#5 print_char_cursor#132 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] ) + [58] (byte*) print_char_cursor#132 ← phi( print_sword::@1/(byte*) print_char_cursor#128 test_16u::@3/(byte*~) print_char_cursor#163 test_16u::@5/(byte*) print_char_cursor#126 test_16u::@7/(byte*) print_char_cursor#126 test_16u::@9/(byte*) print_char_cursor#126 ) [ print_word::w#5 print_char_cursor#132 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] ) [58] (word) print_word::w#5 ← phi( print_sword::@1/(word~) print_word::w#7 test_16u::@3/(word) print_word::w#1 test_16u::@5/(word) print_word::w#2 test_16u::@7/(word) print_word::w#3 test_16u::@9/(word) print_word::w#4 ) [ print_word::w#5 print_char_cursor#132 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] ) [59] (byte) print_byte::b#1 ← > (word) print_word::w#5 [ print_word::w#5 print_char_cursor#132 print_byte::b#1 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] ) [60] call print_byte param-assignment [ print_char_cursor#17 print_word::w#5 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_word::w#5 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_word::w#5 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_word::w#5 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_word::w#5 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_word::w#5 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_word::w#5 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_word::w#5 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_word::w#5 ] ) @@ -132,12 +132,12 @@ print_byte: scope:[print_byte] from print_sbyte::@1 print_word print_word::@1 t [64] (byte*) print_char_cursor#133 ← phi( print_sbyte::@1/(byte*) print_char_cursor#130 print_word/(byte*) print_char_cursor#132 print_word::@1/(byte*) print_char_cursor#17 test_8u::@3/(byte*) print_char_cursor#135 test_8u::@5/(byte*) print_char_cursor#126 test_8u::@7/(byte*) print_char_cursor#126 test_8u::@9/(byte*) print_char_cursor#126 ) [ print_byte::b#7 print_char_cursor#133 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 ] ) [64] (byte) print_byte::b#7 ← phi( print_sbyte::@1/(byte~) print_byte::b#9 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 test_8u::@3/(byte) print_byte::b#3 test_8u::@5/(byte) print_byte::b#4 test_8u::@7/(byte) print_byte::b#5 test_8u::@9/(byte) print_byte::b#6 ) [ print_byte::b#7 print_char_cursor#133 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 ] ) [65] (byte~) print_byte::$0 ← (byte) print_byte::b#7 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#7 print_char_cursor#133 print_byte::$0 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] ) - [66] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) + [66] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) [67] call print_char param-assignment [ print_char_cursor#17 print_byte::b#7 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::$2 ] ) - [69] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) + [69] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) [70] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -283,7 +283,7 @@ test_8s::@1: scope:[test_8s] from test_8s test_8s::@11 test_8s::@3: scope:[test_8s] from test_8s::@1 [139] (signed byte) test_8s::res#0 ← (signed byte) div8s::return#3 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ) [140] (signed byte) print_sbyte::b#1 ← (signed byte) test_8s::dividend#0 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ) - [141] (byte*~) print_char_cursor#179 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ) + [141] (byte*~) print_char_cursor#180 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ) [142] call print_sbyte param-assignment [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ) to:test_8s::@4 test_8s::@4: scope:[test_8s] from test_8s::@3 @@ -322,7 +322,7 @@ test_8s::@return: scope:[test_8s] from test_8s::@11 [159] return [ print_line_cursor#1 ] ( main:2::test_8s:11 [ print_line_cursor#1 ] ) to:@return print_sbyte: scope:[print_sbyte] from test_8s::@3 test_8s::@5 test_8s::@7 test_8s::@9 - [160] (byte*) print_char_cursor#131 ← phi( test_8s::@3/(byte*~) print_char_cursor#179 test_8s::@5/(byte*) print_char_cursor#126 test_8s::@7/(byte*) print_char_cursor#126 test_8s::@9/(byte*) print_char_cursor#126 ) [ print_char_cursor#131 print_sbyte::b#5 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#131 print_sbyte::b#5 ] ) + [160] (byte*) print_char_cursor#131 ← phi( test_8s::@3/(byte*~) print_char_cursor#180 test_8s::@5/(byte*) print_char_cursor#126 test_8s::@7/(byte*) print_char_cursor#126 test_8s::@9/(byte*) print_char_cursor#126 ) [ print_char_cursor#131 print_sbyte::b#5 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#131 print_sbyte::b#5 ] ) [160] (signed byte) print_sbyte::b#5 ← phi( test_8s::@3/(signed byte) print_sbyte::b#1 test_8s::@5/(signed byte) print_sbyte::b#2 test_8s::@7/(signed byte) print_sbyte::b#3 test_8s::@9/(signed byte) print_sbyte::b#4 ) [ print_char_cursor#131 print_sbyte::b#5 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#131 print_sbyte::b#5 ] ) [161] if((signed byte) print_sbyte::b#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ print_char_cursor#131 print_sbyte::b#5 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#131 print_sbyte::b#5 ] ) to:print_sbyte::@2 @@ -456,7 +456,7 @@ test_16u::@1: scope:[test_16u] from test_16u test_16u::@11 test_16u::@3: scope:[test_16u] from test_16u::@1 [224] (word) test_16u::res#0 ← (word) div16u::return#3 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 ] ) [225] (word) print_word::w#1 ← (word) test_16u::dividend#0 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) - [226] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) + [226] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) [227] call print_word param-assignment [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) to:test_16u::@4 test_16u::@4: scope:[test_16u] from test_16u::@3 @@ -499,7 +499,7 @@ test_8u: scope:[test_8u] from main::@1 to:test_8u::@1 test_8u::@1: scope:[test_8u] from test_8u test_8u::@12 [246] (byte*) print_line_cursor#41 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*) print_line_cursor#1 ) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ) - [246] (byte*) print_char_cursor#135 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*~) print_char_cursor#185 ) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ) + [246] (byte*) print_char_cursor#135 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*~) print_char_cursor#186 ) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ) [246] (byte) test_8u::i#10 ← phi( test_8u/(byte/signed byte/word/signed word/dword/signed dword) 0 test_8u::@12/(byte) test_8u::i#1 ) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ) [247] (byte) test_8u::dividend#0 ← *((const byte[]) test_8u::dividends#0 + (byte) test_8u::i#10) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 ] ) [248] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ) @@ -549,7 +549,7 @@ test_8u::@return: scope:[test_8u] from test_8u::@11 [272] return [ print_line_cursor#1 ] ( main:2::test_8u:7 [ print_line_cursor#1 ] ) to:@return test_8u::@12: scope:[test_8u] from test_8u::@11 - [273] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ) + [273] (byte*~) print_char_cursor#186 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ) to:test_8u::@1 print_cls: scope:[print_cls] from main [274] phi() [ ] ( main:2::print_cls:5 [ ] ) diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-division.log b/src/test/java/dk/camelot64/kickc/test/ref/test-division.log index 9c4d0bcee..60359ea87 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-division.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-division.log @@ -172,12 +172,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -489,12 +490,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1003,7 +1004,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1021,6 +1021,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -1393,13 +1394,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -1928,7 +1929,7 @@ Eliminating unused variable - keeping the call (void~) test_16s::$11 Eliminating unused variable - keeping the call (void~) test_16s::$12 Eliminating unused variable - keeping the call (void~) test_16s::$13 Eliminating unused variable - keeping the call (void~) test_16s::$14 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) test_8u::str " / @" Creating constant string variable for inline (const string) test_8u::str1 " = @" Creating constant string variable for inline (const string) test_8u::str2 " @" @@ -1954,7 +1955,6 @@ Removing empty block @6 Removing empty block @7 Removing empty block @8 Removing empty block @9 -Removing empty block @10 Removing empty block @11 Removing empty block @12 Removing empty block @13 @@ -2043,7 +2043,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@14 + to:@10 print_str: scope:[print_str] from test_16s::@4 test_16s::@6 test_16s::@8 test_16u::@4 test_16u::@6 test_16u::@8 test_8s::@4 test_8s::@6 test_8s::@8 test_8u::@4 test_8u::@6 test_8u::@8 (byte*) print_char_cursor#140 ← phi( test_16s::@4/(byte*) print_char_cursor#54 test_16s::@6/(byte*) print_char_cursor#56 test_16s::@8/(byte*) print_char_cursor#58 test_16u::@4/(byte*) print_char_cursor#36 test_16u::@6/(byte*) print_char_cursor#38 test_16u::@8/(byte*) print_char_cursor#40 test_8s::@4/(byte*) print_char_cursor#45 test_8s::@6/(byte*) print_char_cursor#47 test_8s::@8/(byte*) print_char_cursor#49 test_8u::@4/(byte*) print_char_cursor#27 test_8u::@6/(byte*) print_char_cursor#29 test_8u::@8/(byte*) print_char_cursor#31 ) (byte*) print_str::str#15 ← phi( test_16s::@4/(byte*) print_str::str#10 test_16s::@6/(byte*) print_str::str#11 test_16s::@8/(byte*) print_str::str#12 test_16u::@4/(byte*) print_str::str#4 test_16u::@6/(byte*) print_str::str#5 test_16u::@8/(byte*) print_str::str#6 test_8s::@4/(byte*) print_str::str#7 test_8s::@6/(byte*) print_str::str#8 test_8s::@8/(byte*) print_str::str#9 test_8u::@4/(byte*) print_str::str#1 test_8u::@6/(byte*) print_str::str#2 test_8u::@8/(byte*) print_str::str#3 ) @@ -2185,12 +2185,17 @@ print_word::@return: scope:[print_word] from print_word::@2 (byte*) print_char_cursor#13 ← (byte*) print_char_cursor#76 return to:@return +@10: scope:[] from @begin + (byte*) print_screen#10 ← phi( @begin/(byte*) print_screen#0 ) + (byte*) print_char_cursor#155 ← phi( @begin/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#66 ← phi( @begin/(byte*) print_line_cursor#0 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@14 print_byte: scope:[print_byte] from print_sbyte::@1 print_word print_word::@1 test_8u::@3 test_8u::@5 test_8u::@7 test_8u::@9 (byte*) print_char_cursor#133 ← phi( print_sbyte::@1/(byte*) print_char_cursor#130 print_word/(byte*) print_char_cursor#132 print_word::@1/(byte*) print_char_cursor#11 test_8u::@3/(byte*) print_char_cursor#135 test_8u::@5/(byte*) print_char_cursor#28 test_8u::@7/(byte*) print_char_cursor#30 test_8u::@9/(byte*) print_char_cursor#32 ) (byte) print_byte::b#7 ← phi( print_sbyte::@1/(byte) print_byte::b#0 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 test_8u::@3/(byte) print_byte::b#3 test_8u::@5/(byte) print_byte::b#4 test_8u::@7/(byte) print_byte::b#5 test_8u::@9/(byte) print_byte::b#6 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#7 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#2 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -2198,7 +2203,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#77 ← phi( print_byte/(byte*) print_char_cursor#18 ) (byte*) print_char_cursor#14 ← (byte*) print_char_cursor#77 (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#3 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -2246,10 +2251,10 @@ print_cls::@return: scope:[print_cls] from print_cls::@2 (byte*) print_char_cursor#20 ← (byte*) print_char_cursor#82 return to:@return -@14: scope:[] from @begin - (byte*) print_screen#9 ← phi( @begin/(byte*) print_screen#0 ) - (byte*) print_char_cursor#154 ← phi( @begin/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#61 ← phi( @begin/(byte*) print_line_cursor#0 ) +@14: scope:[] from @10 + (byte*) print_screen#9 ← phi( @10/(byte*) print_screen#10 ) + (byte*) print_char_cursor#154 ← phi( @10/(byte*) print_char_cursor#155 ) + (byte*) print_line_cursor#61 ← phi( @10/(byte*) print_line_cursor#66 ) (byte) rem8u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:@16 div8u: scope:[div8u] from div8s::@4 test_8u::@1 @@ -2771,7 +2776,7 @@ main::@return: scope:[main] from main::@5 return to:@return test_8u: scope:[test_8u] from main::@1 - (byte*) print_line_cursor#82 ← phi( main::@1/(byte*) print_line_cursor#5 ) + (byte*) print_line_cursor#83 ← phi( main::@1/(byte*) print_line_cursor#5 ) (byte*) print_char_cursor#149 ← phi( main::@1/(byte*) print_char_cursor#21 ) (byte) rem8u#45 ← phi( main::@1/(byte) rem8u#33 ) (byte[]) test_8u::dividends#0 ← { (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255 } @@ -2779,7 +2784,7 @@ test_8u: scope:[test_8u] from main::@1 (byte) test_8u::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:test_8u::@1 test_8u::@1: scope:[test_8u] from test_8u test_8u::@11 - (byte*) print_line_cursor#78 ← phi( test_8u/(byte*) print_line_cursor#82 test_8u::@11/(byte*) print_line_cursor#11 ) + (byte*) print_line_cursor#79 ← phi( test_8u/(byte*) print_line_cursor#83 test_8u::@11/(byte*) print_line_cursor#11 ) (byte*) print_char_cursor#143 ← phi( test_8u/(byte*) print_char_cursor#149 test_8u::@11/(byte*) print_char_cursor#34 ) (byte) rem8u#36 ← phi( test_8u/(byte) rem8u#45 test_8u::@11/(byte) rem8u#38 ) (byte) test_8u::i#2 ← phi( test_8u/(byte) test_8u::i#0 test_8u::@11/(byte) test_8u::i#1 ) @@ -2792,7 +2797,7 @@ test_8u::@1: scope:[test_8u] from test_8u test_8u::@11 to:test_8u::@3 test_8u::@3: scope:[test_8u] from test_8u::@1 (byte) test_8u::i#11 ← phi( test_8u::@1/(byte) test_8u::i#2 ) - (byte*) print_line_cursor#74 ← phi( test_8u::@1/(byte*) print_line_cursor#78 ) + (byte*) print_line_cursor#75 ← phi( test_8u::@1/(byte*) print_line_cursor#79 ) (byte) test_8u::divisor#3 ← phi( test_8u::@1/(byte) test_8u::divisor#0 ) (byte*) print_char_cursor#135 ← phi( test_8u::@1/(byte*) print_char_cursor#143 ) (byte) test_8u::dividend#1 ← phi( test_8u::@1/(byte) test_8u::dividend#0 ) @@ -2806,7 +2811,7 @@ test_8u::@3: scope:[test_8u] from test_8u::@1 to:test_8u::@4 test_8u::@4: scope:[test_8u] from test_8u::@3 (byte) test_8u::i#10 ← phi( test_8u::@3/(byte) test_8u::i#11 ) - (byte*) print_line_cursor#70 ← phi( test_8u::@3/(byte*) print_line_cursor#74 ) + (byte*) print_line_cursor#71 ← phi( test_8u::@3/(byte*) print_line_cursor#75 ) (byte) rem8u#61 ← phi( test_8u::@3/(byte) rem8u#10 ) (byte) test_8u::res#4 ← phi( test_8u::@3/(byte) test_8u::res#0 ) (byte) test_8u::divisor#2 ← phi( test_8u::@3/(byte) test_8u::divisor#3 ) @@ -2817,7 +2822,7 @@ test_8u::@4: scope:[test_8u] from test_8u::@3 to:test_8u::@5 test_8u::@5: scope:[test_8u] from test_8u::@4 (byte) test_8u::i#9 ← phi( test_8u::@4/(byte) test_8u::i#10 ) - (byte*) print_line_cursor#66 ← phi( test_8u::@4/(byte*) print_line_cursor#70 ) + (byte*) print_line_cursor#67 ← phi( test_8u::@4/(byte*) print_line_cursor#71 ) (byte) rem8u#58 ← phi( test_8u::@4/(byte) rem8u#61 ) (byte) test_8u::res#3 ← phi( test_8u::@4/(byte) test_8u::res#4 ) (byte) test_8u::divisor#1 ← phi( test_8u::@4/(byte) test_8u::divisor#2 ) @@ -2828,7 +2833,7 @@ test_8u::@5: scope:[test_8u] from test_8u::@4 to:test_8u::@6 test_8u::@6: scope:[test_8u] from test_8u::@5 (byte) test_8u::i#8 ← phi( test_8u::@5/(byte) test_8u::i#9 ) - (byte*) print_line_cursor#62 ← phi( test_8u::@5/(byte*) print_line_cursor#66 ) + (byte*) print_line_cursor#62 ← phi( test_8u::@5/(byte*) print_line_cursor#67 ) (byte) rem8u#53 ← phi( test_8u::@5/(byte) rem8u#58 ) (byte) test_8u::res#2 ← phi( test_8u::@5/(byte) test_8u::res#3 ) (byte*) print_char_cursor#91 ← phi( test_8u::@5/(byte*) print_char_cursor#16 ) @@ -2893,7 +2898,7 @@ test_8u::@return: scope:[test_8u] from test_8u::@11 return to:@return test_16u: scope:[test_16u] from main::@2 - (byte*) print_line_cursor#83 ← phi( main::@2/(byte*) print_line_cursor#6 ) + (byte*) print_line_cursor#84 ← phi( main::@2/(byte*) print_line_cursor#6 ) (byte*) print_char_cursor#150 ← phi( main::@2/(byte*) print_char_cursor#22 ) (word) rem16u#44 ← phi( main::@2/(word) rem16u#33 ) (word[]) test_16u::dividends#0 ← { (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535 } @@ -2901,7 +2906,7 @@ test_16u: scope:[test_16u] from main::@2 (byte) test_16u::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:test_16u::@1 test_16u::@1: scope:[test_16u] from test_16u test_16u::@11 - (byte*) print_line_cursor#79 ← phi( test_16u/(byte*) print_line_cursor#83 test_16u::@11/(byte*) print_line_cursor#13 ) + (byte*) print_line_cursor#80 ← phi( test_16u/(byte*) print_line_cursor#84 test_16u::@11/(byte*) print_line_cursor#13 ) (byte*) print_char_cursor#144 ← phi( test_16u/(byte*) print_char_cursor#150 test_16u::@11/(byte*) print_char_cursor#43 ) (word) rem16u#35 ← phi( test_16u/(word) rem16u#44 test_16u::@11/(word) rem16u#37 ) (byte) test_16u::i#2 ← phi( test_16u/(byte) test_16u::i#0 test_16u::@11/(byte) test_16u::i#1 ) @@ -2914,7 +2919,7 @@ test_16u::@1: scope:[test_16u] from test_16u test_16u::@11 to:test_16u::@3 test_16u::@3: scope:[test_16u] from test_16u::@1 (byte) test_16u::i#11 ← phi( test_16u::@1/(byte) test_16u::i#2 ) - (byte*) print_line_cursor#75 ← phi( test_16u::@1/(byte*) print_line_cursor#79 ) + (byte*) print_line_cursor#76 ← phi( test_16u::@1/(byte*) print_line_cursor#80 ) (word) test_16u::divisor#3 ← phi( test_16u::@1/(word) test_16u::divisor#0 ) (byte*) print_char_cursor#136 ← phi( test_16u::@1/(byte*) print_char_cursor#144 ) (word) test_16u::dividend#1 ← phi( test_16u::@1/(word) test_16u::dividend#0 ) @@ -2928,7 +2933,7 @@ test_16u::@3: scope:[test_16u] from test_16u::@1 to:test_16u::@4 test_16u::@4: scope:[test_16u] from test_16u::@3 (byte) test_16u::i#10 ← phi( test_16u::@3/(byte) test_16u::i#11 ) - (byte*) print_line_cursor#71 ← phi( test_16u::@3/(byte*) print_line_cursor#75 ) + (byte*) print_line_cursor#72 ← phi( test_16u::@3/(byte*) print_line_cursor#76 ) (word) rem16u#60 ← phi( test_16u::@3/(word) rem16u#10 ) (word) test_16u::res#4 ← phi( test_16u::@3/(word) test_16u::res#0 ) (word) test_16u::divisor#2 ← phi( test_16u::@3/(word) test_16u::divisor#3 ) @@ -2939,7 +2944,7 @@ test_16u::@4: scope:[test_16u] from test_16u::@3 to:test_16u::@5 test_16u::@5: scope:[test_16u] from test_16u::@4 (byte) test_16u::i#9 ← phi( test_16u::@4/(byte) test_16u::i#10 ) - (byte*) print_line_cursor#67 ← phi( test_16u::@4/(byte*) print_line_cursor#71 ) + (byte*) print_line_cursor#68 ← phi( test_16u::@4/(byte*) print_line_cursor#72 ) (word) rem16u#57 ← phi( test_16u::@4/(word) rem16u#60 ) (word) test_16u::res#3 ← phi( test_16u::@4/(word) test_16u::res#4 ) (word) test_16u::divisor#1 ← phi( test_16u::@4/(word) test_16u::divisor#2 ) @@ -2950,7 +2955,7 @@ test_16u::@5: scope:[test_16u] from test_16u::@4 to:test_16u::@6 test_16u::@6: scope:[test_16u] from test_16u::@5 (byte) test_16u::i#8 ← phi( test_16u::@5/(byte) test_16u::i#9 ) - (byte*) print_line_cursor#63 ← phi( test_16u::@5/(byte*) print_line_cursor#67 ) + (byte*) print_line_cursor#63 ← phi( test_16u::@5/(byte*) print_line_cursor#68 ) (word) rem16u#53 ← phi( test_16u::@5/(word) rem16u#57 ) (word) test_16u::res#2 ← phi( test_16u::@5/(word) test_16u::res#3 ) (byte*) print_char_cursor#100 ← phi( test_16u::@5/(byte*) print_char_cursor#13 ) @@ -3016,7 +3021,7 @@ test_16u::@return: scope:[test_16u] from test_16u::@11 return to:@return test_8s: scope:[test_8s] from main::@3 - (byte*) print_line_cursor#84 ← phi( main::@3/(byte*) print_line_cursor#7 ) + (byte*) print_line_cursor#85 ← phi( main::@3/(byte*) print_line_cursor#7 ) (byte*) print_char_cursor#151 ← phi( main::@3/(byte*) print_char_cursor#23 ) (signed byte) rem8s#23 ← phi( main::@3/(signed byte) rem8s#16 ) (byte) rem8u#48 ← phi( main::@3/(byte) rem8u#34 ) @@ -3029,7 +3034,7 @@ test_8s: scope:[test_8s] from main::@3 (byte) test_8s::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:test_8s::@1 test_8s::@1: scope:[test_8s] from test_8s test_8s::@11 - (byte*) print_line_cursor#80 ← phi( test_8s/(byte*) print_line_cursor#84 test_8s::@11/(byte*) print_line_cursor#15 ) + (byte*) print_line_cursor#81 ← phi( test_8s/(byte*) print_line_cursor#85 test_8s::@11/(byte*) print_line_cursor#15 ) (byte*) print_char_cursor#145 ← phi( test_8s/(byte*) print_char_cursor#151 test_8s::@11/(byte*) print_char_cursor#52 ) (signed byte) rem8s#18 ← phi( test_8s/(signed byte) rem8s#23 test_8s::@11/(signed byte) rem8s#20 ) (byte) rem8u#39 ← phi( test_8s/(byte) rem8u#48 test_8s::@11/(byte) rem8u#40 ) @@ -3043,7 +3048,7 @@ test_8s::@1: scope:[test_8s] from test_8s test_8s::@11 to:test_8s::@3 test_8s::@3: scope:[test_8s] from test_8s::@1 (byte) test_8s::i#11 ← phi( test_8s::@1/(byte) test_8s::i#2 ) - (byte*) print_line_cursor#76 ← phi( test_8s::@1/(byte*) print_line_cursor#80 ) + (byte*) print_line_cursor#77 ← phi( test_8s::@1/(byte*) print_line_cursor#81 ) (signed byte) test_8s::divisor#3 ← phi( test_8s::@1/(signed byte) test_8s::divisor#0 ) (byte*) print_char_cursor#137 ← phi( test_8s::@1/(byte*) print_char_cursor#145 ) (signed byte) test_8s::dividend#1 ← phi( test_8s::@1/(signed byte) test_8s::dividend#0 ) @@ -3060,7 +3065,7 @@ test_8s::@3: scope:[test_8s] from test_8s::@1 test_8s::@4: scope:[test_8s] from test_8s::@3 (byte) rem8u#65 ← phi( test_8s::@3/(byte) rem8u#12 ) (byte) test_8s::i#10 ← phi( test_8s::@3/(byte) test_8s::i#11 ) - (byte*) print_line_cursor#72 ← phi( test_8s::@3/(byte*) print_line_cursor#76 ) + (byte*) print_line_cursor#73 ← phi( test_8s::@3/(byte*) print_line_cursor#77 ) (signed byte) rem8s#31 ← phi( test_8s::@3/(signed byte) rem8s#6 ) (signed byte) test_8s::res#4 ← phi( test_8s::@3/(signed byte) test_8s::res#0 ) (signed byte) test_8s::divisor#2 ← phi( test_8s::@3/(signed byte) test_8s::divisor#3 ) @@ -3072,7 +3077,7 @@ test_8s::@4: scope:[test_8s] from test_8s::@3 test_8s::@5: scope:[test_8s] from test_8s::@4 (byte) rem8u#64 ← phi( test_8s::@4/(byte) rem8u#65 ) (byte) test_8s::i#9 ← phi( test_8s::@4/(byte) test_8s::i#10 ) - (byte*) print_line_cursor#68 ← phi( test_8s::@4/(byte*) print_line_cursor#72 ) + (byte*) print_line_cursor#69 ← phi( test_8s::@4/(byte*) print_line_cursor#73 ) (signed byte) rem8s#30 ← phi( test_8s::@4/(signed byte) rem8s#31 ) (signed byte) test_8s::res#3 ← phi( test_8s::@4/(signed byte) test_8s::res#4 ) (signed byte) test_8s::divisor#1 ← phi( test_8s::@4/(signed byte) test_8s::divisor#2 ) @@ -3084,7 +3089,7 @@ test_8s::@5: scope:[test_8s] from test_8s::@4 test_8s::@6: scope:[test_8s] from test_8s::@5 (byte) rem8u#63 ← phi( test_8s::@5/(byte) rem8u#64 ) (byte) test_8s::i#8 ← phi( test_8s::@5/(byte) test_8s::i#9 ) - (byte*) print_line_cursor#64 ← phi( test_8s::@5/(byte*) print_line_cursor#68 ) + (byte*) print_line_cursor#64 ← phi( test_8s::@5/(byte*) print_line_cursor#69 ) (signed byte) rem8s#28 ← phi( test_8s::@5/(signed byte) rem8s#30 ) (signed byte) test_8s::res#2 ← phi( test_8s::@5/(signed byte) test_8s::res#3 ) (byte*) print_char_cursor#109 ← phi( test_8s::@5/(byte*) print_char_cursor#10 ) @@ -3156,7 +3161,7 @@ test_8s::@return: scope:[test_8s] from test_8s::@11 return to:@return test_16s: scope:[test_16s] from main::@4 - (byte*) print_line_cursor#85 ← phi( main::@4/(byte*) print_line_cursor#8 ) + (byte*) print_line_cursor#86 ← phi( main::@4/(byte*) print_line_cursor#8 ) (byte*) print_char_cursor#152 ← phi( main::@4/(byte*) print_char_cursor#24 ) (signed word) rem16s#22 ← phi( main::@4/(signed word) rem16s#16 ) (word) rem16u#47 ← phi( main::@4/(word) rem16u#34 ) @@ -3171,7 +3176,7 @@ test_16s: scope:[test_16s] from main::@4 (byte) test_16s::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:test_16s::@1 test_16s::@1: scope:[test_16s] from test_16s test_16s::@11 - (byte*) print_line_cursor#81 ← phi( test_16s/(byte*) print_line_cursor#85 test_16s::@11/(byte*) print_line_cursor#17 ) + (byte*) print_line_cursor#82 ← phi( test_16s/(byte*) print_line_cursor#86 test_16s::@11/(byte*) print_line_cursor#17 ) (byte*) print_char_cursor#146 ← phi( test_16s/(byte*) print_char_cursor#152 test_16s::@11/(byte*) print_char_cursor#61 ) (signed word) rem16s#17 ← phi( test_16s/(signed word) rem16s#22 test_16s::@11/(signed word) rem16s#19 ) (word) rem16u#38 ← phi( test_16s/(word) rem16u#47 test_16s::@11/(word) rem16u#39 ) @@ -3185,7 +3190,7 @@ test_16s::@1: scope:[test_16s] from test_16s test_16s::@11 to:test_16s::@3 test_16s::@3: scope:[test_16s] from test_16s::@1 (byte) test_16s::i#11 ← phi( test_16s::@1/(byte) test_16s::i#2 ) - (byte*) print_line_cursor#77 ← phi( test_16s::@1/(byte*) print_line_cursor#81 ) + (byte*) print_line_cursor#78 ← phi( test_16s::@1/(byte*) print_line_cursor#82 ) (signed word) test_16s::divisor#3 ← phi( test_16s::@1/(signed word) test_16s::divisor#0 ) (byte*) print_char_cursor#138 ← phi( test_16s::@1/(byte*) print_char_cursor#146 ) (signed word) test_16s::dividend#1 ← phi( test_16s::@1/(signed word) test_16s::dividend#0 ) @@ -3202,7 +3207,7 @@ test_16s::@3: scope:[test_16s] from test_16s::@1 test_16s::@4: scope:[test_16s] from test_16s::@3 (word) rem16u#64 ← phi( test_16s::@3/(word) rem16u#12 ) (byte) test_16s::i#10 ← phi( test_16s::@3/(byte) test_16s::i#11 ) - (byte*) print_line_cursor#73 ← phi( test_16s::@3/(byte*) print_line_cursor#77 ) + (byte*) print_line_cursor#74 ← phi( test_16s::@3/(byte*) print_line_cursor#78 ) (signed word) rem16s#30 ← phi( test_16s::@3/(signed word) rem16s#6 ) (signed word) test_16s::res#4 ← phi( test_16s::@3/(signed word) test_16s::res#0 ) (signed word) test_16s::divisor#2 ← phi( test_16s::@3/(signed word) test_16s::divisor#3 ) @@ -3214,7 +3219,7 @@ test_16s::@4: scope:[test_16s] from test_16s::@3 test_16s::@5: scope:[test_16s] from test_16s::@4 (word) rem16u#63 ← phi( test_16s::@4/(word) rem16u#64 ) (byte) test_16s::i#9 ← phi( test_16s::@4/(byte) test_16s::i#10 ) - (byte*) print_line_cursor#69 ← phi( test_16s::@4/(byte*) print_line_cursor#73 ) + (byte*) print_line_cursor#70 ← phi( test_16s::@4/(byte*) print_line_cursor#74 ) (signed word) rem16s#28 ← phi( test_16s::@4/(signed word) rem16s#30 ) (signed word) test_16s::res#3 ← phi( test_16s::@4/(signed word) test_16s::res#4 ) (signed word) test_16s::divisor#1 ← phi( test_16s::@4/(signed word) test_16s::divisor#2 ) @@ -3226,7 +3231,7 @@ test_16s::@5: scope:[test_16s] from test_16s::@4 test_16s::@6: scope:[test_16s] from test_16s::@5 (word) rem16u#62 ← phi( test_16s::@5/(word) rem16u#63 ) (byte) test_16s::i#8 ← phi( test_16s::@5/(byte) test_16s::i#9 ) - (byte*) print_line_cursor#65 ← phi( test_16s::@5/(byte*) print_line_cursor#69 ) + (byte*) print_line_cursor#65 ← phi( test_16s::@5/(byte*) print_line_cursor#70 ) (signed word) rem16s#26 ← phi( test_16s::@5/(signed word) rem16s#28 ) (signed word) test_16s::res#2 ← phi( test_16s::@5/(signed word) test_16s::res#3 ) (byte*) print_char_cursor#118 ← phi( test_16s::@5/(byte*) print_char_cursor#7 ) @@ -3325,6 +3330,8 @@ test_16s::@return: scope:[test_16s] from test_16s::@11 @end: scope:[] from @27 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" +(label) @10 (label) @14 (label) @16 (label) @19 @@ -3684,7 +3691,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -3698,8 +3704,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#6 (byte) print_byte::b#7 (byte) print_byte::b#8 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -3772,6 +3776,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#152 (byte*) print_char_cursor#153 (byte*) print_char_cursor#154 +(byte*) print_char_cursor#155 (byte*) print_char_cursor#16 (byte*) print_char_cursor#17 (byte*) print_char_cursor#18 @@ -3874,6 +3879,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -3960,6 +3967,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#83 (byte*) print_line_cursor#84 (byte*) print_line_cursor#85 +(byte*) print_line_cursor#86 (byte*) print_line_cursor#9 (void()) print_ln() (byte*~) print_ln::$0 @@ -3990,6 +3998,7 @@ SYMBOL TABLE SSA (byte*) print_screen (byte*) print_screen#0 (byte*) print_screen#1 +(byte*) print_screen#10 (byte*) print_screen#2 (byte*) print_screen#3 (byte*) print_screen#4 @@ -4560,7 +4569,7 @@ Not aliassing across scopes: print_char_cursor#87 print_char_cursor#62 Not aliassing across scopes: print_line_cursor#28 print_line_cursor#18 Not aliassing across scopes: rem8u#45 rem8u#33 Not aliassing across scopes: print_char_cursor#149 print_char_cursor#21 -Not aliassing across scopes: print_line_cursor#82 print_line_cursor#5 +Not aliassing across scopes: print_line_cursor#83 print_line_cursor#5 Not aliassing across scopes: div8u::dividend#1 test_8u::dividend#0 Not aliassing across scopes: div8u::divisor#1 test_8u::divisor#0 Not aliassing across scopes: div8u::return#3 div8u::return#1 @@ -4581,7 +4590,7 @@ Not aliassing across scopes: print_line_cursor#30 print_line_cursor#2 Not aliassing across scopes: print_char_cursor#96 print_char_cursor#4 Not aliassing across scopes: rem16u#44 rem16u#33 Not aliassing across scopes: print_char_cursor#150 print_char_cursor#22 -Not aliassing across scopes: print_line_cursor#83 print_line_cursor#6 +Not aliassing across scopes: print_line_cursor#84 print_line_cursor#6 Not aliassing across scopes: div16u::dividend#1 test_16u::dividend#0 Not aliassing across scopes: div16u::divisor#1 test_16u::divisor#0 Not aliassing across scopes: div16u::return#3 div16u::return#1 @@ -4603,7 +4612,7 @@ Not aliassing across scopes: print_char_cursor#105 print_char_cursor#4 Not aliassing across scopes: rem8u#48 rem8u#34 Not aliassing across scopes: rem8s#23 rem8s#16 Not aliassing across scopes: print_char_cursor#151 print_char_cursor#23 -Not aliassing across scopes: print_line_cursor#84 print_line_cursor#7 +Not aliassing across scopes: print_line_cursor#85 print_line_cursor#7 Not aliassing across scopes: div8s::dividend#0 test_8s::dividend#0 Not aliassing across scopes: div8s::divisor#0 test_8s::divisor#0 Not aliassing across scopes: div8s::return#3 div8s::return#2 @@ -4626,7 +4635,7 @@ Not aliassing across scopes: print_char_cursor#114 print_char_cursor#4 Not aliassing across scopes: rem16u#47 rem16u#34 Not aliassing across scopes: rem16s#22 rem16s#16 Not aliassing across scopes: print_char_cursor#152 print_char_cursor#24 -Not aliassing across scopes: print_line_cursor#85 print_line_cursor#8 +Not aliassing across scopes: print_line_cursor#86 print_line_cursor#8 Not aliassing across scopes: div16s::dividend#0 test_16s::dividend#0 Not aliassing across scopes: div16s::divisor#0 test_16s::divisor#0 Not aliassing across scopes: div16s::return#3 div16s::return#2 @@ -4652,7 +4661,7 @@ Not aliassing across scopes: rem8u#30 rem8u#9 Not aliassing across scopes: rem16u#30 rem16u#9 Not aliassing across scopes: rem8s#15 rem8s#5 Not aliassing across scopes: rem16s#15 rem16s#5 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#61 (byte*) print_char_cursor#154 (byte*) print_screen#9 (byte*) print_line_cursor#56 (byte*) print_char_cursor#153 (byte*) print_screen#8 (byte*) print_line_cursor#51 (byte*) print_char_cursor#148 (byte*) print_screen#7 (byte*) print_line_cursor#50 (byte*) print_char_cursor#147 (byte*) print_screen#6 (byte*) print_line_cursor#45 (byte*) print_char_cursor#139 (byte*) print_screen#5 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#66 (byte*) print_char_cursor#155 (byte*) print_screen#10 (byte*) print_line_cursor#61 (byte*) print_char_cursor#154 (byte*) print_screen#9 (byte*) print_line_cursor#56 (byte*) print_char_cursor#153 (byte*) print_screen#8 (byte*) print_line_cursor#51 (byte*) print_char_cursor#148 (byte*) print_screen#7 (byte*) print_line_cursor#50 (byte*) print_char_cursor#147 (byte*) print_screen#6 (byte*) print_line_cursor#45 (byte*) print_char_cursor#139 (byte*) print_screen#5 Alias (byte*) print_str::str#13 = (byte*) print_str::str#14 Alias (byte*) print_char_cursor#126 = (byte*) print_char_cursor#64 (byte*) print_char_cursor#65 (byte*) print_char_cursor#2 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#21 (byte*) print_char_cursor#3 (byte*) print_line_cursor#22 (byte*) print_char_cursor#67 (byte*) print_line_cursor#2 (byte*) print_char_cursor#4 @@ -4789,7 +4798,7 @@ Alias (byte) div8u::return#3 = (byte) div8u::return#6 Alias (byte) test_8u::dividend#0 = (byte) test_8u::dividend#1 Alias (byte*) print_char_cursor#135 = (byte*) print_char_cursor#143 Alias (byte) test_8u::divisor#0 = (byte) test_8u::divisor#3 (byte) test_8u::divisor#2 (byte) test_8u::divisor#1 -Alias (byte*) print_line_cursor#41 = (byte*) print_line_cursor#74 (byte*) print_line_cursor#78 (byte*) print_line_cursor#70 (byte*) print_line_cursor#66 (byte*) print_line_cursor#62 (byte*) print_line_cursor#57 (byte*) print_line_cursor#52 (byte*) print_line_cursor#46 +Alias (byte*) print_line_cursor#41 = (byte*) print_line_cursor#75 (byte*) print_line_cursor#79 (byte*) print_line_cursor#71 (byte*) print_line_cursor#67 (byte*) print_line_cursor#62 (byte*) print_line_cursor#57 (byte*) print_line_cursor#52 (byte*) print_line_cursor#46 Alias (byte) test_8u::i#10 = (byte) test_8u::i#11 (byte) test_8u::i#2 (byte) test_8u::i#9 (byte) test_8u::i#8 (byte) test_8u::i#7 (byte) test_8u::i#6 (byte) test_8u::i#5 (byte) test_8u::i#4 (byte) test_8u::i#3 Alias (byte) rem8u#10 = (byte) rem8u#25 (byte) rem8u#61 (byte) rem8u#58 (byte) rem8u#53 (byte) rem8u#46 (byte) rem8u#37 (byte) rem8u#26 (byte) rem8u#47 (byte) rem8u#38 (byte) rem8u#27 (byte) rem8u#11 Alias (byte) test_8u::res#0 = (byte~) test_8u::$0 (byte) test_8u::res#4 (byte) test_8u::res#3 (byte) test_8u::res#2 (byte) test_8u::res#1 @@ -4806,7 +4815,7 @@ Alias (word) div16u::return#3 = (word) div16u::return#6 Alias (word) test_16u::dividend#0 = (word) test_16u::dividend#1 Alias (byte*) print_char_cursor#136 = (byte*) print_char_cursor#144 Alias (word) test_16u::divisor#0 = (word) test_16u::divisor#3 (word) test_16u::divisor#2 (word) test_16u::divisor#1 -Alias (byte*) print_line_cursor#42 = (byte*) print_line_cursor#75 (byte*) print_line_cursor#79 (byte*) print_line_cursor#71 (byte*) print_line_cursor#67 (byte*) print_line_cursor#63 (byte*) print_line_cursor#58 (byte*) print_line_cursor#53 (byte*) print_line_cursor#47 +Alias (byte*) print_line_cursor#42 = (byte*) print_line_cursor#76 (byte*) print_line_cursor#80 (byte*) print_line_cursor#72 (byte*) print_line_cursor#68 (byte*) print_line_cursor#63 (byte*) print_line_cursor#58 (byte*) print_line_cursor#53 (byte*) print_line_cursor#47 Alias (byte) test_16u::i#10 = (byte) test_16u::i#11 (byte) test_16u::i#2 (byte) test_16u::i#9 (byte) test_16u::i#8 (byte) test_16u::i#7 (byte) test_16u::i#6 (byte) test_16u::i#5 (byte) test_16u::i#4 (byte) test_16u::i#3 Alias (word) rem16u#10 = (word) rem16u#25 (word) rem16u#60 (word) rem16u#57 (word) rem16u#53 (word) rem16u#45 (word) rem16u#36 (word) rem16u#26 (word) rem16u#46 (word) rem16u#37 (word) rem16u#27 (word) rem16u#11 Alias (word) test_16u::res#0 = (word~) test_16u::$0 (word) test_16u::res#4 (word) test_16u::res#3 (word) test_16u::res#2 (word) test_16u::res#1 @@ -4824,7 +4833,7 @@ Alias (signed byte) div8s::return#3 = (signed byte) div8s::return#5 Alias (signed byte) test_8s::dividend#0 = (signed byte) test_8s::dividend#1 Alias (byte*) print_char_cursor#137 = (byte*) print_char_cursor#145 Alias (signed byte) test_8s::divisor#0 = (signed byte) test_8s::divisor#3 (signed byte) test_8s::divisor#2 (signed byte) test_8s::divisor#1 -Alias (byte*) print_line_cursor#43 = (byte*) print_line_cursor#76 (byte*) print_line_cursor#80 (byte*) print_line_cursor#72 (byte*) print_line_cursor#68 (byte*) print_line_cursor#64 (byte*) print_line_cursor#59 (byte*) print_line_cursor#54 (byte*) print_line_cursor#48 +Alias (byte*) print_line_cursor#43 = (byte*) print_line_cursor#77 (byte*) print_line_cursor#81 (byte*) print_line_cursor#73 (byte*) print_line_cursor#69 (byte*) print_line_cursor#64 (byte*) print_line_cursor#59 (byte*) print_line_cursor#54 (byte*) print_line_cursor#48 Alias (byte) test_8s::i#10 = (byte) test_8s::i#11 (byte) test_8s::i#2 (byte) test_8s::i#9 (byte) test_8s::i#8 (byte) test_8s::i#7 (byte) test_8s::i#6 (byte) test_8s::i#5 (byte) test_8s::i#4 (byte) test_8s::i#3 Alias (byte) rem8u#12 = (byte) rem8u#28 (byte) rem8u#65 (byte) rem8u#64 (byte) rem8u#63 (byte) rem8u#62 (byte) rem8u#59 (byte) rem8u#54 (byte) rem8u#49 (byte) rem8u#40 (byte) rem8u#29 (byte) rem8u#13 Alias (signed byte) rem8s#12 = (signed byte) rem8s#6 (signed byte) rem8s#31 (signed byte) rem8s#30 (signed byte) rem8s#28 (signed byte) rem8s#24 (signed byte) rem8s#19 (signed byte) rem8s#13 (signed byte) rem8s#25 (signed byte) rem8s#20 (signed byte) rem8s#14 (signed byte) rem8s#7 @@ -4842,7 +4851,7 @@ Alias (signed word) div16s::return#3 = (signed word) div16s::return#5 Alias (signed word) test_16s::dividend#0 = (signed word) test_16s::dividend#1 Alias (byte*) print_char_cursor#138 = (byte*) print_char_cursor#146 Alias (signed word) test_16s::divisor#0 = (signed word) test_16s::divisor#3 (signed word) test_16s::divisor#2 (signed word) test_16s::divisor#1 -Alias (byte*) print_line_cursor#44 = (byte*) print_line_cursor#77 (byte*) print_line_cursor#81 (byte*) print_line_cursor#73 (byte*) print_line_cursor#69 (byte*) print_line_cursor#65 (byte*) print_line_cursor#60 (byte*) print_line_cursor#55 (byte*) print_line_cursor#49 +Alias (byte*) print_line_cursor#44 = (byte*) print_line_cursor#78 (byte*) print_line_cursor#82 (byte*) print_line_cursor#74 (byte*) print_line_cursor#70 (byte*) print_line_cursor#65 (byte*) print_line_cursor#60 (byte*) print_line_cursor#55 (byte*) print_line_cursor#49 Alias (byte) test_16s::i#10 = (byte) test_16s::i#11 (byte) test_16s::i#2 (byte) test_16s::i#9 (byte) test_16s::i#8 (byte) test_16s::i#7 (byte) test_16s::i#6 (byte) test_16s::i#5 (byte) test_16s::i#4 (byte) test_16s::i#3 Alias (word) rem16u#12 = (word) rem16u#28 (word) rem16u#64 (word) rem16u#63 (word) rem16u#62 (word) rem16u#61 (word) rem16u#58 (word) rem16u#54 (word) rem16u#48 (word) rem16u#39 (word) rem16u#29 (word) rem16u#13 Alias (signed word) rem16s#12 = (signed word) rem16s#6 (signed word) rem16s#30 (signed word) rem16s#28 (signed word) rem16s#26 (signed word) rem16s#23 (signed word) rem16s#18 (signed word) rem16s#13 (signed word) rem16s#24 (signed word) rem16s#19 (signed word) rem16s#14 (signed word) rem16s#7 @@ -4954,7 +4963,7 @@ Not aliassing across scopes: print_char_cursor#25 print_char_cursor#123 Not aliassing across scopes: print_line_cursor#10 print_line_cursor#17 Not aliassing across scopes: rem8u#45 rem8u#33 Not aliassing across scopes: print_char_cursor#149 print_char_cursor#21 -Not aliassing across scopes: print_line_cursor#82 print_line_cursor#24 +Not aliassing across scopes: print_line_cursor#83 print_line_cursor#24 Not aliassing across scopes: div8u::dividend#1 test_8u::dividend#0 Not aliassing across scopes: div8u::divisor#1 test_8u::divisor#0 Not aliassing across scopes: div8u::return#3 div8u::return#0 @@ -4975,7 +4984,7 @@ Not aliassing across scopes: print_line_cursor#11 print_line_cursor#1 Not aliassing across scopes: print_char_cursor#34 print_line_cursor#1 Not aliassing across scopes: rem16u#44 rem16u#33 Not aliassing across scopes: print_char_cursor#150 print_char_cursor#22 -Not aliassing across scopes: print_line_cursor#83 print_line_cursor#25 +Not aliassing across scopes: print_line_cursor#84 print_line_cursor#25 Not aliassing across scopes: div16u::dividend#1 test_16u::dividend#0 Not aliassing across scopes: div16u::divisor#1 test_16u::divisor#0 Not aliassing across scopes: div16u::return#3 div16u::return#0 @@ -4997,7 +5006,7 @@ Not aliassing across scopes: print_char_cursor#105 print_line_cursor#1 Not aliassing across scopes: rem8u#48 rem8u#22 Not aliassing across scopes: rem8s#23 rem8s#16 Not aliassing across scopes: print_char_cursor#151 print_char_cursor#23 -Not aliassing across scopes: print_line_cursor#84 print_line_cursor#26 +Not aliassing across scopes: print_line_cursor#85 print_line_cursor#26 Not aliassing across scopes: div8s::dividend#0 test_8s::dividend#0 Not aliassing across scopes: div8s::divisor#0 test_8s::divisor#0 Not aliassing across scopes: div8s::return#3 div8s::return#2 @@ -5020,7 +5029,7 @@ Not aliassing across scopes: print_char_cursor#114 print_line_cursor#1 Not aliassing across scopes: rem16u#47 rem16u#22 Not aliassing across scopes: rem16s#22 rem16s#16 Not aliassing across scopes: print_char_cursor#152 print_char_cursor#24 -Not aliassing across scopes: print_line_cursor#85 print_line_cursor#27 +Not aliassing across scopes: print_line_cursor#86 print_line_cursor#27 Not aliassing across scopes: div16s::dividend#0 test_16s::dividend#0 Not aliassing across scopes: div16s::divisor#0 test_16s::divisor#0 Not aliassing across scopes: div16s::return#3 div16s::return#2 @@ -5154,7 +5163,7 @@ Not aliassing across scopes: print_char_cursor#25 print_char_cursor#123 Not aliassing across scopes: print_line_cursor#10 print_line_cursor#17 Not aliassing across scopes: rem8u#45 rem8u#33 Not aliassing across scopes: print_char_cursor#149 print_char_cursor#21 -Not aliassing across scopes: print_line_cursor#82 print_line_cursor#24 +Not aliassing across scopes: print_line_cursor#83 print_line_cursor#24 Not aliassing across scopes: div8u::dividend#1 test_8u::dividend#0 Not aliassing across scopes: div8u::divisor#1 test_8u::divisor#0 Not aliassing across scopes: div8u::return#3 div8u::return#0 @@ -5175,7 +5184,7 @@ Not aliassing across scopes: print_line_cursor#11 print_line_cursor#1 Not aliassing across scopes: print_char_cursor#34 print_line_cursor#1 Not aliassing across scopes: rem16u#44 rem16u#33 Not aliassing across scopes: print_char_cursor#150 print_char_cursor#22 -Not aliassing across scopes: print_line_cursor#83 print_line_cursor#25 +Not aliassing across scopes: print_line_cursor#84 print_line_cursor#25 Not aliassing across scopes: div16u::dividend#1 test_16u::dividend#0 Not aliassing across scopes: div16u::divisor#1 test_16u::divisor#0 Not aliassing across scopes: div16u::return#3 div16u::return#0 @@ -5197,7 +5206,7 @@ Not aliassing across scopes: print_char_cursor#105 print_line_cursor#1 Not aliassing across scopes: rem8u#48 rem8u#22 Not aliassing across scopes: rem8s#23 rem8s#16 Not aliassing across scopes: print_char_cursor#151 print_char_cursor#23 -Not aliassing across scopes: print_line_cursor#84 print_line_cursor#26 +Not aliassing across scopes: print_line_cursor#85 print_line_cursor#26 Not aliassing across scopes: div8s::dividend#0 test_8s::dividend#0 Not aliassing across scopes: div8s::divisor#0 test_8s::divisor#0 Not aliassing across scopes: div8s::return#3 div8s::return#2 @@ -5220,7 +5229,7 @@ Not aliassing across scopes: print_char_cursor#114 print_line_cursor#1 Not aliassing across scopes: rem16u#47 rem16u#22 Not aliassing across scopes: rem16s#22 rem16s#16 Not aliassing across scopes: print_char_cursor#152 print_char_cursor#24 -Not aliassing across scopes: print_line_cursor#85 print_line_cursor#27 +Not aliassing across scopes: print_line_cursor#86 print_line_cursor#27 Not aliassing across scopes: div16s::dividend#0 test_16s::dividend#0 Not aliassing across scopes: div16s::divisor#0 test_16s::divisor#0 Not aliassing across scopes: div16s::return#3 div16s::return#2 @@ -5305,7 +5314,7 @@ Redundant Phi (byte*) print_char_cursor#25 (byte*) print_char_cursor#123 Redundant Phi (byte*) print_line_cursor#10 (byte*) print_line_cursor#17 Redundant Phi (byte) rem8u#45 (byte) rem8u#33 Redundant Phi (byte*) print_char_cursor#149 (byte*) print_char_cursor#21 -Redundant Phi (byte*) print_line_cursor#82 (byte*) print_line_cursor#24 +Redundant Phi (byte*) print_line_cursor#83 (byte*) print_line_cursor#24 Redundant Phi (byte) rem8u#10 (byte) rem8u#1 Redundant Phi (byte*) print_char_cursor#27 (byte*) print_char_cursor#15 Redundant Phi (byte*) print_char_cursor#28 (byte*) print_char_cursor#126 @@ -5318,7 +5327,7 @@ Redundant Phi (byte*) print_line_cursor#11 (byte*) print_line_cursor#1 Redundant Phi (byte*) print_char_cursor#34 (byte*) print_line_cursor#1 Redundant Phi (word) rem16u#44 (word) rem16u#33 Redundant Phi (byte*) print_char_cursor#150 (byte*) print_char_cursor#22 -Redundant Phi (byte*) print_line_cursor#83 (byte*) print_line_cursor#25 +Redundant Phi (byte*) print_line_cursor#84 (byte*) print_line_cursor#25 Redundant Phi (word) rem16u#10 (word) rem16u#16 Redundant Phi (byte*) print_char_cursor#36 (byte*) print_char_cursor#12 Redundant Phi (byte*) print_char_cursor#37 (byte*) print_char_cursor#126 @@ -5332,7 +5341,7 @@ Redundant Phi (byte*) print_char_cursor#105 (byte*) print_line_cursor#1 Redundant Phi (byte) rem8u#48 (byte) rem8u#22 Redundant Phi (signed byte) rem8s#23 (signed byte) rem8s#16 Redundant Phi (byte*) print_char_cursor#151 (byte*) print_char_cursor#23 -Redundant Phi (byte*) print_line_cursor#84 (byte*) print_line_cursor#26 +Redundant Phi (byte*) print_line_cursor#85 (byte*) print_line_cursor#26 Redundant Phi (byte) rem8u#12 (byte) rem8u#18 Redundant Phi (signed byte) rem8s#12 (signed byte) rem8s#3 Redundant Phi (byte*) print_char_cursor#107 (byte*) print_char_cursor#10 @@ -5347,7 +5356,7 @@ Redundant Phi (byte*) print_char_cursor#114 (byte*) print_line_cursor#1 Redundant Phi (word) rem16u#47 (word) rem16u#22 Redundant Phi (signed word) rem16s#22 (signed word) rem16s#16 Redundant Phi (byte*) print_char_cursor#152 (byte*) print_char_cursor#24 -Redundant Phi (byte*) print_line_cursor#85 (byte*) print_line_cursor#27 +Redundant Phi (byte*) print_line_cursor#86 (byte*) print_line_cursor#27 Redundant Phi (word) rem16u#12 (word) rem16u#18 Redundant Phi (signed word) rem16s#12 (signed word) rem16s#3 Redundant Phi (byte*) print_char_cursor#116 (byte*) print_char_cursor#5 @@ -5402,7 +5411,7 @@ Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) print_line_cursor#0 = ((byte*))1024 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = '-' -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const byte) rem8u#0 = 0 Constant (const byte) divr8u::rem#0 = 0 Constant (const byte) divr8u::quotient#0 = 0 @@ -5499,6 +5508,7 @@ Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_sword::@3 Culled Empty Block (label) print_sbyte::@3 Culled Empty Block (label) print_word::@2 +Culled Empty Block (label) @10 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) @14 @@ -5747,6 +5757,7 @@ Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed Constant inlined print_str::str#12 = (const string) test_16s::str2 Constant inlined print_str::str#11 = (const string) test_16s::str1 Constant inlined print_str::str#10 = (const string) test_16s::str +Constant inlined $0 = (const string) print_hextab#0 Constant inlined divr8u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined test_16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -5774,7 +5785,6 @@ Constant inlined div8s::neg#1 = (byte/signed byte/word/signed word/dword/signed Constant inlined print_str::str#2 = (const string) test_8u::str1 Constant inlined div8s::neg#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined print_str::str#1 = (const string) test_8u::str -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Constant inlined print_str::str#8 = (const string) test_8s::str1 Constant inlined test_16s::$0 = -(word/signed word/dword/signed dword) 32767 Constant inlined print_str::str#7 = (const string) test_8s::str @@ -5884,35 +5894,35 @@ Propagating live ranges... Propagating live ranges... Created 56 initial phi equivalence classes Coalesced [25] print_sword::w#9 ← print_sword::w#1 -Not coalescing [26] print_char_cursor#155 ← print_line_cursor#1 +Not coalescing [26] print_char_cursor#156 ← print_line_cursor#1 Coalesced [31] print_sword::w#10 ← print_sword::w#2 -Coalesced [32] print_char_cursor#156 ← print_char_cursor#126 +Coalesced [32] print_char_cursor#157 ← print_char_cursor#126 Coalesced [37] print_sword::w#11 ← print_sword::w#3 -Coalesced (already) [38] print_char_cursor#157 ← print_char_cursor#126 +Coalesced (already) [38] print_char_cursor#158 ← print_char_cursor#126 Coalesced [43] print_sword::w#12 ← print_sword::w#4 -Coalesced (already) [44] print_char_cursor#158 ← print_char_cursor#126 -Coalesced [46] print_line_cursor#86 ← print_line_cursor#1 +Coalesced (already) [44] print_char_cursor#159 ← print_char_cursor#126 +Coalesced [46] print_line_cursor#87 ← print_line_cursor#1 Coalesced [51] test_16s::i#12 ← test_16s::i#1 -Coalesced [53] print_line_cursor#90 ← print_line_cursor#39 -Coalesced (already) [58] print_line_cursor#91 ← print_line_cursor#1 -Coalesced [61] print_char_cursor#176 ← print_char_cursor#129 +Coalesced [53] print_line_cursor#91 ← print_line_cursor#39 +Coalesced (already) [58] print_line_cursor#92 ← print_line_cursor#1 +Coalesced [61] print_char_cursor#177 ← print_char_cursor#129 Coalesced [64] print_sword::w#14 ← print_sword::w#0 -Coalesced [65] print_char_cursor#160 ← print_char_cursor#17 -Coalesced [68] print_char_cursor#161 ← print_char_cursor#128 +Coalesced [65] print_char_cursor#161 ← print_char_cursor#17 +Coalesced [68] print_char_cursor#162 ← print_char_cursor#128 Coalesced [71] print_sword::w#13 ← print_sword::w#5 -Coalesced [72] print_char_cursor#159 ← print_char_cursor#129 +Coalesced [72] print_char_cursor#160 ← print_char_cursor#129 Coalesced [75] print_byte::b#10 ← print_byte::b#1 -Coalesced [76] print_char_cursor#167 ← print_char_cursor#132 +Coalesced [76] print_char_cursor#168 ← print_char_cursor#132 Coalesced [79] print_byte::b#11 ← print_byte::b#2 -Coalesced (already) [80] print_char_cursor#168 ← print_char_cursor#17 +Coalesced (already) [80] print_char_cursor#169 ← print_char_cursor#17 Coalesced [86] print_char::ch#5 ← print_char::ch#2 -Coalesced (already) [87] print_char_cursor#173 ← print_char_cursor#133 +Coalesced (already) [87] print_char_cursor#174 ← print_char_cursor#133 Coalesced [91] print_char::ch#6 ← print_char::ch#3 -Coalesced (already) [92] print_char_cursor#174 ← print_char_cursor#17 +Coalesced (already) [92] print_char_cursor#175 ← print_char_cursor#17 Coalesced [100] print_str::str#16 ← print_str::str#15 -Coalesced (already) [101] print_char_cursor#177 ← print_char_cursor#17 +Coalesced (already) [101] print_char_cursor#178 ← print_char_cursor#17 Coalesced [108] print_str::str#17 ← print_str::str#0 -Coalesced [109] print_char_cursor#178 ← print_char_cursor#1 +Coalesced [109] print_char_cursor#179 ← print_char_cursor#1 Coalesced [118] div16s::neg#10 ← div16s::neg#2 Coalesced [122] div16u::dividend#3 ← div16u::dividend#0 Coalesced [123] div16u::divisor#3 ← div16u::divisor#0 @@ -5931,21 +5941,21 @@ Coalesced [171] divr16u::rem#14 ← divr16u::rem#5 Coalesced [172] divr16u::return#5 ← divr16u::quotient#1 Coalesced [173] divr16u::rem#12 ← divr16u::rem#0 Coalesced [184] print_sbyte::b#9 ← print_sbyte::b#1 -Not coalescing [185] print_char_cursor#179 ← print_line_cursor#1 +Not coalescing [185] print_char_cursor#180 ← print_line_cursor#1 Coalesced [190] print_sbyte::b#10 ← print_sbyte::b#2 -Coalesced [191] print_char_cursor#180 ← print_char_cursor#126 +Coalesced [191] print_char_cursor#181 ← print_char_cursor#126 Coalesced [196] print_sbyte::b#11 ← print_sbyte::b#3 -Coalesced (already) [197] print_char_cursor#181 ← print_char_cursor#126 +Coalesced (already) [197] print_char_cursor#182 ← print_char_cursor#126 Coalesced [202] print_sbyte::b#12 ← print_sbyte::b#4 -Coalesced (already) [203] print_char_cursor#182 ← print_char_cursor#126 -Coalesced (already) [205] print_line_cursor#88 ← print_line_cursor#1 +Coalesced (already) [203] print_char_cursor#183 ← print_char_cursor#126 +Coalesced (already) [205] print_line_cursor#89 ← print_line_cursor#1 Coalesced [210] test_8s::i#12 ← test_8s::i#1 -Coalesced (already) [213] print_char_cursor#175 ← print_char_cursor#131 +Coalesced (already) [213] print_char_cursor#176 ← print_char_cursor#131 Coalesced [216] print_sbyte::b#14 ← print_sbyte::b#0 -Coalesced [217] print_char_cursor#184 ← print_char_cursor#17 -Coalesced (already) [220] print_char_cursor#166 ← print_char_cursor#130 +Coalesced [217] print_char_cursor#185 ← print_char_cursor#17 +Coalesced (already) [220] print_char_cursor#167 ← print_char_cursor#130 Coalesced [223] print_sbyte::b#13 ← print_sbyte::b#5 -Coalesced (already) [224] print_char_cursor#183 ← print_char_cursor#131 +Coalesced (already) [224] print_char_cursor#184 ← print_char_cursor#131 Coalesced [233] div8s::neg#10 ← div8s::neg#2 Coalesced [237] div8u::dividend#3 ← div8u::dividend#0 Coalesced [238] div8u::divisor#3 ← div8u::divisor#0 @@ -5966,29 +5976,29 @@ Coalesced [287] divr8u::rem#12 ← divr8u::rem#1 Coalesced [294] div16u::dividend#4 ← div16u::dividend#1 Coalesced [295] div16u::divisor#4 ← div16u::divisor#1 Coalesced [300] print_word::w#8 ← print_word::w#1 -Not coalescing [301] print_char_cursor#162 ← print_line_cursor#1 +Not coalescing [301] print_char_cursor#163 ← print_line_cursor#1 Coalesced [306] print_word::w#9 ← print_word::w#2 -Coalesced (already) [307] print_char_cursor#163 ← print_char_cursor#126 +Coalesced (already) [307] print_char_cursor#164 ← print_char_cursor#126 Coalesced [312] print_word::w#10 ← print_word::w#3 -Coalesced (already) [313] print_char_cursor#164 ← print_char_cursor#126 +Coalesced (already) [313] print_char_cursor#165 ← print_char_cursor#126 Coalesced [318] print_word::w#11 ← print_word::w#4 -Coalesced (already) [319] print_char_cursor#165 ← print_char_cursor#126 -Coalesced (already) [321] print_line_cursor#87 ← print_line_cursor#1 +Coalesced (already) [319] print_char_cursor#166 ← print_char_cursor#126 +Coalesced (already) [321] print_line_cursor#88 ← print_line_cursor#1 Coalesced [326] test_16u::i#12 ← test_16u::i#1 Coalesced [333] div8u::dividend#4 ← div8u::dividend#1 Coalesced [334] div8u::divisor#4 ← div8u::divisor#1 Coalesced [339] print_byte::b#12 ← print_byte::b#3 -Coalesced [340] print_char_cursor#169 ← print_char_cursor#135 +Coalesced [340] print_char_cursor#170 ← print_char_cursor#135 Coalesced [345] print_byte::b#13 ← print_byte::b#4 -Coalesced (already) [346] print_char_cursor#170 ← print_char_cursor#126 +Coalesced (already) [346] print_char_cursor#171 ← print_char_cursor#126 Coalesced [351] print_byte::b#14 ← print_byte::b#5 -Coalesced (already) [352] print_char_cursor#171 ← print_char_cursor#126 +Coalesced (already) [352] print_char_cursor#172 ← print_char_cursor#126 Coalesced [357] print_byte::b#15 ← print_byte::b#6 -Coalesced (already) [358] print_char_cursor#172 ← print_char_cursor#126 -Coalesced [360] print_line_cursor#89 ← print_line_cursor#41 +Coalesced (already) [358] print_char_cursor#173 ← print_char_cursor#126 +Coalesced [360] print_line_cursor#90 ← print_line_cursor#41 Coalesced [365] test_8u::i#12 ← test_8u::i#1 -Not coalescing [366] print_char_cursor#185 ← print_line_cursor#1 -Coalesced (already) [367] print_line_cursor#92 ← print_line_cursor#1 +Not coalescing [366] print_char_cursor#186 ← print_line_cursor#1 +Coalesced (already) [367] print_line_cursor#93 ← print_line_cursor#1 Coalesced [374] print_cls::sc#3 ← print_cls::sc#1 Coalesced down to 35 phi equivalence classes Culled Empty Block (label) test_16s::@12 @@ -6111,7 +6121,7 @@ test_16s::@1: scope:[test_16s] from test_16s test_16s::@11 test_16s::@3: scope:[test_16s] from test_16s::@1 [23] (signed word) test_16s::res#0 ← (signed word) div16s::return#3 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 ] ) [24] (signed word) print_sword::w#1 ← (signed word) test_16s::dividend#0 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ) - [25] (byte*~) print_char_cursor#155 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ) + [25] (byte*~) print_char_cursor#156 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ) [26] call print_sword param-assignment [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ) to:test_16s::@4 test_16s::@4: scope:[test_16s] from test_16s::@3 @@ -6161,7 +6171,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [48] return [ print_line_cursor#1 ] ( main:2::test_16s:13::print_ln:40 [ test_16s::i#10 print_line_cursor#1 ] main:2::test_8s:11::print_ln:156 [ test_8s::i#10 print_line_cursor#1 ] main:2::test_16u:9::print_ln:241 [ test_16u::i#10 print_line_cursor#1 ] main:2::test_8u:7::print_ln:269 [ test_8u::i#10 print_line_cursor#1 ] ) to:@return print_sword: scope:[print_sword] from test_16s::@3 test_16s::@5 test_16s::@7 test_16s::@9 - [49] (byte*) print_char_cursor#129 ← phi( test_16s::@3/(byte*~) print_char_cursor#155 test_16s::@5/(byte*) print_char_cursor#126 test_16s::@7/(byte*) print_char_cursor#126 test_16s::@9/(byte*) print_char_cursor#126 ) [ print_sword::w#5 print_char_cursor#129 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#129 ] ) + [49] (byte*) print_char_cursor#129 ← phi( test_16s::@3/(byte*~) print_char_cursor#156 test_16s::@5/(byte*) print_char_cursor#126 test_16s::@7/(byte*) print_char_cursor#126 test_16s::@9/(byte*) print_char_cursor#126 ) [ print_sword::w#5 print_char_cursor#129 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#129 ] ) [49] (signed word) print_sword::w#5 ← phi( test_16s::@3/(signed word) print_sword::w#1 test_16s::@5/(signed word) print_sword::w#2 test_16s::@7/(signed word) print_sword::w#3 test_16s::@9/(signed word) print_sword::w#4 ) [ print_sword::w#5 print_char_cursor#129 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#129 ] ) [50] if((signed word) print_sword::w#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sword::@1 [ print_sword::w#5 print_char_cursor#129 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_sword::w#5 print_char_cursor#129 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_sword::w#5 print_char_cursor#129 ] ) to:print_sword::@2 @@ -6182,7 +6192,7 @@ print_sword::@return: scope:[print_sword] from print_sword::@1 [57] return [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] ) to:@return print_word: scope:[print_word] from print_sword::@1 test_16u::@3 test_16u::@5 test_16u::@7 test_16u::@9 - [58] (byte*) print_char_cursor#132 ← phi( print_sword::@1/(byte*) print_char_cursor#128 test_16u::@3/(byte*~) print_char_cursor#162 test_16u::@5/(byte*) print_char_cursor#126 test_16u::@7/(byte*) print_char_cursor#126 test_16u::@9/(byte*) print_char_cursor#126 ) [ print_word::w#5 print_char_cursor#132 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] ) + [58] (byte*) print_char_cursor#132 ← phi( print_sword::@1/(byte*) print_char_cursor#128 test_16u::@3/(byte*~) print_char_cursor#163 test_16u::@5/(byte*) print_char_cursor#126 test_16u::@7/(byte*) print_char_cursor#126 test_16u::@9/(byte*) print_char_cursor#126 ) [ print_word::w#5 print_char_cursor#132 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] ) [58] (word) print_word::w#5 ← phi( print_sword::@1/(word~) print_word::w#7 test_16u::@3/(word) print_word::w#1 test_16u::@5/(word) print_word::w#2 test_16u::@7/(word) print_word::w#3 test_16u::@9/(word) print_word::w#4 ) [ print_word::w#5 print_char_cursor#132 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 ] ) [59] (byte) print_byte::b#1 ← > (word) print_word::w#5 [ print_word::w#5 print_char_cursor#132 print_byte::b#1 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#132 print_byte::b#1 ] ) [60] call print_byte param-assignment [ print_char_cursor#17 print_word::w#5 ] ( main:2::test_16s:13::print_sword:26::print_word:56 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_word::w#5 ] main:2::test_16s:13::print_sword:30::print_word:56 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_word::w#5 ] main:2::test_16s:13::print_sword:34::print_word:56 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_word::w#5 ] main:2::test_16s:13::print_sword:38::print_word:56 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_word::w#5 ] main:2::test_16u:9::print_word:227 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_word::w#5 ] main:2::test_16u:9::print_word:231 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_word::w#5 ] main:2::test_16u:9::print_word:235 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_word::w#5 ] main:2::test_16u:9::print_word:239 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_word::w#5 ] ) @@ -6198,12 +6208,12 @@ print_byte: scope:[print_byte] from print_sbyte::@1 print_word print_word::@1 t [64] (byte*) print_char_cursor#133 ← phi( print_sbyte::@1/(byte*) print_char_cursor#130 print_word/(byte*) print_char_cursor#132 print_word::@1/(byte*) print_char_cursor#17 test_8u::@3/(byte*) print_char_cursor#135 test_8u::@5/(byte*) print_char_cursor#126 test_8u::@7/(byte*) print_char_cursor#126 test_8u::@9/(byte*) print_char_cursor#126 ) [ print_byte::b#7 print_char_cursor#133 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 ] ) [64] (byte) print_byte::b#7 ← phi( print_sbyte::@1/(byte~) print_byte::b#9 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 test_8u::@3/(byte) print_byte::b#3 test_8u::@5/(byte) print_byte::b#4 test_8u::@7/(byte) print_byte::b#5 test_8u::@9/(byte) print_byte::b#6 ) [ print_byte::b#7 print_char_cursor#133 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 ] ) [65] (byte~) print_byte::$0 ← (byte) print_byte::b#7 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#7 print_char_cursor#133 print_byte::$0 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_byte::$0 ] ) - [66] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) + [66] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) [67] call print_char param-assignment [ print_char_cursor#17 print_byte::b#7 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::$2 ] ) - [69] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) + [69] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) [70] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -6349,7 +6359,7 @@ test_8s::@1: scope:[test_8s] from test_8s test_8s::@11 test_8s::@3: scope:[test_8s] from test_8s::@1 [139] (signed byte) test_8s::res#0 ← (signed byte) div8s::return#3 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ) [140] (signed byte) print_sbyte::b#1 ← (signed byte) test_8s::dividend#0 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ) - [141] (byte*~) print_char_cursor#179 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ) + [141] (byte*~) print_char_cursor#180 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ) [142] call print_sbyte param-assignment [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ) to:test_8s::@4 test_8s::@4: scope:[test_8s] from test_8s::@3 @@ -6388,7 +6398,7 @@ test_8s::@return: scope:[test_8s] from test_8s::@11 [159] return [ print_line_cursor#1 ] ( main:2::test_8s:11 [ print_line_cursor#1 ] ) to:@return print_sbyte: scope:[print_sbyte] from test_8s::@3 test_8s::@5 test_8s::@7 test_8s::@9 - [160] (byte*) print_char_cursor#131 ← phi( test_8s::@3/(byte*~) print_char_cursor#179 test_8s::@5/(byte*) print_char_cursor#126 test_8s::@7/(byte*) print_char_cursor#126 test_8s::@9/(byte*) print_char_cursor#126 ) [ print_char_cursor#131 print_sbyte::b#5 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#131 print_sbyte::b#5 ] ) + [160] (byte*) print_char_cursor#131 ← phi( test_8s::@3/(byte*~) print_char_cursor#180 test_8s::@5/(byte*) print_char_cursor#126 test_8s::@7/(byte*) print_char_cursor#126 test_8s::@9/(byte*) print_char_cursor#126 ) [ print_char_cursor#131 print_sbyte::b#5 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#131 print_sbyte::b#5 ] ) [160] (signed byte) print_sbyte::b#5 ← phi( test_8s::@3/(signed byte) print_sbyte::b#1 test_8s::@5/(signed byte) print_sbyte::b#2 test_8s::@7/(signed byte) print_sbyte::b#3 test_8s::@9/(signed byte) print_sbyte::b#4 ) [ print_char_cursor#131 print_sbyte::b#5 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#131 print_sbyte::b#5 ] ) [161] if((signed byte) print_sbyte::b#5>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto print_sbyte::@1 [ print_char_cursor#131 print_sbyte::b#5 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#131 print_sbyte::b#5 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#131 print_sbyte::b#5 ] ) to:print_sbyte::@2 @@ -6522,7 +6532,7 @@ test_16u::@1: scope:[test_16u] from test_16u test_16u::@11 test_16u::@3: scope:[test_16u] from test_16u::@1 [224] (word) test_16u::res#0 ← (word) div16u::return#3 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 ] ) [225] (word) print_word::w#1 ← (word) test_16u::dividend#0 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) - [226] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) + [226] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) [227] call print_word param-assignment [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) to:test_16u::@4 test_16u::@4: scope:[test_16u] from test_16u::@3 @@ -6565,7 +6575,7 @@ test_8u: scope:[test_8u] from main::@1 to:test_8u::@1 test_8u::@1: scope:[test_8u] from test_8u test_8u::@12 [246] (byte*) print_line_cursor#41 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*) print_line_cursor#1 ) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ) - [246] (byte*) print_char_cursor#135 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*~) print_char_cursor#185 ) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ) + [246] (byte*) print_char_cursor#135 ← phi( test_8u/((byte*))(word/signed word/dword/signed dword) 1024 test_8u::@12/(byte*~) print_char_cursor#186 ) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ) [246] (byte) test_8u::i#10 ← phi( test_8u/(byte/signed byte/word/signed word/dword/signed dword) 0 test_8u::@12/(byte) test_8u::i#1 ) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 ] ) [247] (byte) test_8u::dividend#0 ← *((const byte[]) test_8u::dividends#0 + (byte) test_8u::i#10) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 ] ) [248] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ) @@ -6615,7 +6625,7 @@ test_8u::@return: scope:[test_8u] from test_8u::@11 [272] return [ print_line_cursor#1 ] ( main:2::test_8u:7 [ print_line_cursor#1 ] ) to:@return test_8u::@12: scope:[test_8u] from test_8u::@11 - [273] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ) + [273] (byte*~) print_char_cursor#186 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ) to:test_8u::@1 print_cls: scope:[print_cls] from main [274] phi() [ ] ( main:2::print_cls:5 [ ] ) @@ -6975,7 +6985,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#6 22.0 (byte) print_byte::b#7 13.5 (byte~) print_byte::b#9 4.0 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#2 4.0 @@ -6991,16 +7000,17 @@ VARIABLE REGISTER WEIGHTS (byte*) print_char_cursor#132 24.0 (byte*) print_char_cursor#133 17.333333333333332 (byte*) print_char_cursor#135 2.4444444444444446 -(byte*~) print_char_cursor#155 22.0 -(byte*~) print_char_cursor#162 22.0 +(byte*~) print_char_cursor#156 22.0 +(byte*~) print_char_cursor#163 22.0 (byte*) print_char_cursor#17 2.0178571428571432 -(byte*~) print_char_cursor#179 22.0 -(byte*~) print_char_cursor#185 22.0 +(byte*~) print_char_cursor#180 22.0 +(byte*~) print_char_cursor#186 22.0 (byte*) print_char_cursor#80 6.0 (void()) print_cls() (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_line_cursor#1 3.9099999999999993 (byte*) print_line_cursor#20 204.0 @@ -7107,7 +7117,7 @@ Initial phi equivalence classes [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ] [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -[ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 ] +[ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 ] [ print_str::str#13 print_str::str#15 print_str::str#0 ] [ div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 ] [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 ] @@ -7184,7 +7194,7 @@ Complete equivalence classes [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ] [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -[ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 ] +[ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 ] [ print_str::str#13 print_str::str#15 print_str::str#0 ] [ div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 ] [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 ] @@ -7260,7 +7270,7 @@ Allocated zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 prin Allocated zp ZP_WORD:7 [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ] Allocated zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] Allocated zp ZP_BYTE:10 [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -Allocated zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 ] +Allocated zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 ] Allocated zp ZP_WORD:13 [ print_str::str#13 print_str::str#15 print_str::str#0 ] Allocated zp ZP_WORD:15 [ div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 ] Allocated zp ZP_WORD:17 [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 ] @@ -7467,7 +7477,7 @@ test_16s: { sta print_sword.w lda dividend+1 sta print_sword.w+1 - //SEG45 [25] (byte*~) print_char_cursor#155 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ) -- pbuz1=pbuz2 + //SEG45 [25] (byte*~) print_char_cursor#156 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -7475,7 +7485,7 @@ test_16s: { //SEG46 [26] call print_sword param-assignment [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ) //SEG47 [49] phi from test_16s::@3 to print_sword [phi:test_16s::@3->print_sword] print_sword_from_b3: - //SEG48 [49] phi (byte*) print_char_cursor#129 = (byte*~) print_char_cursor#155 [phi:test_16s::@3->print_sword#0] -- register_copy + //SEG48 [49] phi (byte*) print_char_cursor#129 = (byte*~) print_char_cursor#156 [phi:test_16s::@3->print_sword#0] -- register_copy //SEG49 [49] phi (signed word) print_sword::w#5 = (signed word) print_sword::w#1 [phi:test_16s::@3->print_sword#1] -- register_copy jsr print_sword //SEG50 [27] phi from test_16s::@3 to test_16s::@4 [phi:test_16s::@3->test_16s::@4] @@ -7726,9 +7736,9 @@ print_byte: { lsr lsr sta _0 - //SEG138 [66] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG138 [66] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG139 [67] call print_char param-assignment [ print_char_cursor#17 print_byte::b#7 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] ) //SEG140 [72] phi from print_byte to print_char [phi:print_byte->print_char] @@ -7743,9 +7753,9 @@ print_byte: { lda #$f and b sta _2 - //SEG145 [69] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG145 [69] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG146 [70] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 ] ) //SEG147 [72] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -7758,7 +7768,6 @@ print_byte: { breturn: //SEG151 [71] return [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG152 print_char print_char: { @@ -8203,7 +8212,7 @@ test_8s: { //SEG276 [140] (signed byte) print_sbyte::b#1 ← (signed byte) test_8s::dividend#0 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ) -- vbsz1=vbsz2 lda dividend sta print_sbyte.b - //SEG277 [141] (byte*~) print_char_cursor#179 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ) -- pbuz1=pbuz2 + //SEG277 [141] (byte*~) print_char_cursor#180 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -8211,7 +8220,7 @@ test_8s: { //SEG278 [142] call print_sbyte param-assignment [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ) //SEG279 [160] phi from test_8s::@3 to print_sbyte [phi:test_8s::@3->print_sbyte] print_sbyte_from_b3: - //SEG280 [160] phi (byte*) print_char_cursor#131 = (byte*~) print_char_cursor#179 [phi:test_8s::@3->print_sbyte#0] -- register_copy + //SEG280 [160] phi (byte*) print_char_cursor#131 = (byte*~) print_char_cursor#180 [phi:test_8s::@3->print_sbyte#0] -- register_copy //SEG281 [160] phi (signed byte) print_sbyte::b#5 = (signed byte) print_sbyte::b#1 [phi:test_8s::@3->print_sbyte#1] -- register_copy jsr print_sbyte //SEG282 [143] phi from test_8s::@3 to test_8s::@4 [phi:test_8s::@3->test_8s::@4] @@ -8711,7 +8720,7 @@ test_16u: { sta print_word.w lda dividend+1 sta print_word.w+1 - //SEG456 [226] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) -- pbuz1=pbuz2 + //SEG456 [226] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -8719,7 +8728,7 @@ test_16u: { //SEG457 [227] call print_word param-assignment [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) //SEG458 [58] phi from test_16u::@3 to print_word [phi:test_16u::@3->print_word] print_word_from_b3: - //SEG459 [58] phi (byte*) print_char_cursor#132 = (byte*~) print_char_cursor#162 [phi:test_16u::@3->print_word#0] -- register_copy + //SEG459 [58] phi (byte*) print_char_cursor#132 = (byte*~) print_char_cursor#163 [phi:test_16u::@3->print_word#0] -- register_copy //SEG460 [58] phi (word) print_word::w#5 = (word) print_word::w#1 [phi:test_16u::@3->print_word#1] -- register_copy jsr print_word //SEG461 [228] phi from test_16u::@3 to test_16u::@4 [phi:test_16u::@3->test_16u::@4] @@ -9005,7 +9014,7 @@ test_8u: { rts //SEG569 test_8u::@12 b12: - //SEG570 [273] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ) -- pbuz1=pbuz2 + //SEG570 [273] (byte*~) print_char_cursor#186 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -9013,7 +9022,7 @@ test_8u: { //SEG571 [246] phi from test_8u::@12 to test_8u::@1 [phi:test_8u::@12->test_8u::@1] b1_from_b12: //SEG572 [246] phi (byte*) print_line_cursor#41 = (byte*) print_line_cursor#1 [phi:test_8u::@12->test_8u::@1#0] -- register_copy - //SEG573 [246] phi (byte*) print_char_cursor#135 = (byte*~) print_char_cursor#185 [phi:test_8u::@12->test_8u::@1#1] -- register_copy + //SEG573 [246] phi (byte*) print_char_cursor#135 = (byte*~) print_char_cursor#186 [phi:test_8u::@12->test_8u::@1#1] -- register_copy //SEG574 [246] phi (byte) test_8u::i#10 = (byte) test_8u::i#1 [phi:test_8u::@12->test_8u::@1#2] -- register_copy jmp b1 str: .text " / @" @@ -9061,6 +9070,7 @@ print_cls: { //SEG585 [279] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Statement [17] (signed word) test_16s::dividend#0 ← *((const signed word[]) test_16s::dividends#0 + (byte) test_16s::i#10) [ test_16s::i#10 test_16s::dividend#0 print_line_cursor#1 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 print_line_cursor#1 ] ) always clobbers reg byte a @@ -9071,7 +9081,7 @@ Statement [20] (signed word) div16s::divisor#0 ← (signed word) test_16s::divis Statement [22] (signed word) div16s::return#3 ← (signed word) div16s::return#2 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 div16s::return#3 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 div16s::return#3 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a Statement [23] (signed word) test_16s::res#0 ← (signed word) div16s::return#3 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a Statement [24] (signed word) print_sword::w#1 ← (signed word) test_16s::dividend#0 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a -Statement [25] (byte*~) print_char_cursor#155 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a +Statement [25] (byte*~) print_char_cursor#156 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a Statement [29] (signed word) print_sword::w#2 ← (signed word) test_16s::divisor#0 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 print_sword::w#2 rem16s#3 print_char_cursor#126 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 print_sword::w#2 rem16s#3 print_char_cursor#126 ] ) always clobbers reg byte a Statement [33] (signed word) print_sword::w#3 ← (signed word) test_16s::res#0 [ test_16s::i#10 print_line_cursor#1 print_sword::w#3 rem16s#3 print_char_cursor#126 ] ( main:2::test_16s:13 [ test_16s::i#10 print_line_cursor#1 print_sword::w#3 rem16s#3 print_char_cursor#126 ] ) always clobbers reg byte a Statement [37] (signed word) print_sword::w#4 ← (signed word) rem16s#3 [ test_16s::i#10 print_line_cursor#1 print_sword::w#4 print_char_cursor#126 ] ( main:2::test_16s:13 [ test_16s::i#10 print_line_cursor#1 print_sword::w#4 print_char_cursor#126 ] ) always clobbers reg byte a @@ -9139,7 +9149,7 @@ Statement [125] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (word) divr16u Statement [129] (word) rem16u#1 ← (word) divr16u::rem#10 [ rem16u#1 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#0 ] ) always clobbers reg byte a Statement [134] (signed byte) test_8s::divisor#0 ← *((const signed byte[]) test_8s::divisors#0 + (byte) test_8s::i#10) [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:84 [ test_8s::dividend#0 ] -Statement [141] (byte*~) print_char_cursor#179 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ) always clobbers reg byte a +Statement [141] (byte*~) print_char_cursor#180 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ print_sbyte::b#6 print_sbyte::b#5 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 print_sbyte::b#0 ] Statement [164] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#5 [ print_char_cursor#17 print_sbyte::b#0 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_sbyte::b#0 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_sbyte::b#0 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_sbyte::b#0 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_sbyte::b#0 ] ) always clobbers reg byte a Statement [170] (signed byte~) div8s::$2 ← - (signed byte) div8s::dividend#0 [ div8s::divisor#0 div8s::$2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::$2 ] ) always clobbers reg byte a @@ -9168,13 +9178,13 @@ Statement [221] (word) div16u::divisor#1 ← (word) test_16u::divisor#0 [ print_ Statement [223] (word) div16u::return#3 ← (word) div16u::return#0 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#3 ] ( main:2::test_16u:9 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#3 ] ) always clobbers reg byte a Statement [224] (word) test_16u::res#0 ← (word) div16u::return#3 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 ] ) always clobbers reg byte a Statement [225] (word) print_word::w#1 ← (word) test_16u::dividend#0 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) always clobbers reg byte a -Statement [226] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) always clobbers reg byte a +Statement [226] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) always clobbers reg byte a Statement [230] (word) print_word::w#2 ← (word) test_16u::divisor#0 [ print_line_cursor#1 print_char_cursor#126 print_word::w#2 rem16u#1 test_16u::i#10 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#126 print_word::w#2 rem16u#1 test_16u::i#10 test_16u::res#0 ] ) always clobbers reg byte a Statement [234] (word) print_word::w#3 ← (word) test_16u::res#0 [ print_line_cursor#1 print_char_cursor#126 print_word::w#3 rem16u#1 test_16u::i#10 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#126 print_word::w#3 rem16u#1 test_16u::i#10 ] ) always clobbers reg byte a Statement [238] (word) print_word::w#4 ← (word) rem16u#1 [ print_line_cursor#1 print_char_cursor#126 print_word::w#4 test_16u::i#10 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#126 print_word::w#4 test_16u::i#10 ] ) always clobbers reg byte a Statement [242] (byte) test_16u::i#1 ← (byte) test_16u::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ print_line_cursor#1 test_16u::i#1 ] ( main:2::test_16u:9 [ print_line_cursor#1 test_16u::i#1 ] ) always clobbers reg byte a Statement [248] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ) always clobbers reg byte a -Statement [273] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ) always clobbers reg byte a +Statement [273] (byte*~) print_char_cursor#186 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ) always clobbers reg byte a Statement [276] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y Statement [278] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Statement [17] (signed word) test_16s::dividend#0 ← *((const signed word[]) test_16s::dividends#0 + (byte) test_16s::i#10) [ test_16s::i#10 test_16s::dividend#0 print_line_cursor#1 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 print_line_cursor#1 ] ) always clobbers reg byte a @@ -9184,7 +9194,7 @@ Statement [20] (signed word) div16s::divisor#0 ← (signed word) test_16s::divis Statement [22] (signed word) div16s::return#3 ← (signed word) div16s::return#2 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 div16s::return#3 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 div16s::return#3 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a Statement [23] (signed word) test_16s::res#0 ← (signed word) div16s::return#3 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a Statement [24] (signed word) print_sword::w#1 ← (signed word) test_16s::dividend#0 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a -Statement [25] (byte*~) print_char_cursor#155 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a +Statement [25] (byte*~) print_char_cursor#156 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ) always clobbers reg byte a Statement [29] (signed word) print_sword::w#2 ← (signed word) test_16s::divisor#0 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 print_sword::w#2 rem16s#3 print_char_cursor#126 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 print_sword::w#2 rem16s#3 print_char_cursor#126 ] ) always clobbers reg byte a Statement [33] (signed word) print_sword::w#3 ← (signed word) test_16s::res#0 [ test_16s::i#10 print_line_cursor#1 print_sword::w#3 rem16s#3 print_char_cursor#126 ] ( main:2::test_16s:13 [ test_16s::i#10 print_line_cursor#1 print_sword::w#3 rem16s#3 print_char_cursor#126 ] ) always clobbers reg byte a Statement [37] (signed word) print_sword::w#4 ← (signed word) rem16s#3 [ test_16s::i#10 print_line_cursor#1 print_sword::w#4 print_char_cursor#126 ] ( main:2::test_16s:13 [ test_16s::i#10 print_line_cursor#1 print_sword::w#4 print_char_cursor#126 ] ) always clobbers reg byte a @@ -9228,7 +9238,7 @@ Statement [123] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u Statement [125] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (word) divr16u::divisor#0 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a Statement [129] (word) rem16u#1 ← (word) divr16u::rem#10 [ rem16u#1 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#0 ] ) always clobbers reg byte a Statement [134] (signed byte) test_8s::divisor#0 ← *((const signed byte[]) test_8s::divisors#0 + (byte) test_8s::i#10) [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 ] ) always clobbers reg byte a -Statement [141] (byte*~) print_char_cursor#179 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ) always clobbers reg byte a +Statement [141] (byte*~) print_char_cursor#180 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ) always clobbers reg byte a Statement [164] (signed byte) print_sbyte::b#0 ← - (signed byte) print_sbyte::b#5 [ print_char_cursor#17 print_sbyte::b#0 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_sbyte::b#0 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_sbyte::b#0 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_sbyte::b#0 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_sbyte::b#0 ] ) always clobbers reg byte a Statement [170] (signed byte~) div8s::$2 ← - (signed byte) div8s::dividend#0 [ div8s::divisor#0 div8s::$2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::$2 ] ) always clobbers reg byte a Statement [174] (signed byte~) div8s::$7 ← - (signed byte) div8s::divisor#0 [ div8s::neg#3 div8s::dividendu#3 div8s::$7 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#3 div8s::dividendu#3 div8s::$7 ] ) always clobbers reg byte a @@ -9245,13 +9255,13 @@ Statement [221] (word) div16u::divisor#1 ← (word) test_16u::divisor#0 [ print_ Statement [223] (word) div16u::return#3 ← (word) div16u::return#0 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#3 ] ( main:2::test_16u:9 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#3 ] ) always clobbers reg byte a Statement [224] (word) test_16u::res#0 ← (word) div16u::return#3 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 test_16u::res#0 ] ) always clobbers reg byte a Statement [225] (word) print_word::w#1 ← (word) test_16u::dividend#0 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) always clobbers reg byte a -Statement [226] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) always clobbers reg byte a +Statement [226] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) always clobbers reg byte a Statement [230] (word) print_word::w#2 ← (word) test_16u::divisor#0 [ print_line_cursor#1 print_char_cursor#126 print_word::w#2 rem16u#1 test_16u::i#10 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#126 print_word::w#2 rem16u#1 test_16u::i#10 test_16u::res#0 ] ) always clobbers reg byte a Statement [234] (word) print_word::w#3 ← (word) test_16u::res#0 [ print_line_cursor#1 print_char_cursor#126 print_word::w#3 rem16u#1 test_16u::i#10 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#126 print_word::w#3 rem16u#1 test_16u::i#10 ] ) always clobbers reg byte a Statement [238] (word) print_word::w#4 ← (word) rem16u#1 [ print_line_cursor#1 print_char_cursor#126 print_word::w#4 test_16u::i#10 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#126 print_word::w#4 test_16u::i#10 ] ) always clobbers reg byte a Statement [242] (byte) test_16u::i#1 ← (byte) test_16u::i#10 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ print_line_cursor#1 test_16u::i#1 ] ( main:2::test_16u:9 [ print_line_cursor#1 test_16u::i#1 ] ) always clobbers reg byte a Statement [248] (byte) test_8u::divisor#0 ← *((const byte[]) test_8u::divisors#0 + (byte) test_8u::i#10) [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ( main:2::test_8u:7 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 ] ) always clobbers reg byte a -Statement [273] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ) always clobbers reg byte a +Statement [273] (byte*~) print_char_cursor#186 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ) always clobbers reg byte a Statement [276] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y Statement [278] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 ] : zp ZP_BYTE:2 , reg byte x , @@ -9260,7 +9270,7 @@ Potential registers zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword Potential registers zp ZP_WORD:7 [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ] : zp ZP_WORD:7 , Potential registers zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] : zp ZP_BYTE:9 , reg byte a , reg byte x , Potential registers zp ZP_BYTE:10 [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] : zp ZP_BYTE:10 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 ] : zp ZP_WORD:11 , +Potential registers zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 ] : zp ZP_WORD:11 , Potential registers zp ZP_WORD:13 [ print_str::str#13 print_str::str#15 print_str::str#0 ] : zp ZP_WORD:13 , Potential registers zp ZP_WORD:15 [ div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 ] : zp ZP_WORD:15 , Potential registers zp ZP_WORD:17 [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 ] : zp ZP_WORD:17 , @@ -9334,7 +9344,7 @@ Potential registers zp ZP_BYTE:110 [ test_8u::res#0 ] : zp ZP_BYTE:110 , reg byt REGISTER UPLIFT SCOPES Uplift Scope [divr16u] 884.42: zp ZP_WORD:28 [ divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] 328.58: zp ZP_WORD:32 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] 202: zp ZP_BYTE:80 [ divr16u::$1 ] 202: zp ZP_BYTE:81 [ divr16u::$2 ] 167.04: zp ZP_BYTE:34 [ divr16u::i#2 divr16u::i#1 ] 70.15: zp ZP_WORD:30 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] 12: zp ZP_WORD:74 [ divr16u::divisor#0 ] 4: zp ZP_WORD:76 [ divr16u::return#2 ] Uplift Scope [divr8u] 909.67: zp ZP_BYTE:44 [ divr8u::rem#4 divr8u::rem#10 divr8u::rem#5 divr8u::rem#1 divr8u::rem#2 divr8u::rem#3 ] 332.19: zp ZP_BYTE:46 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ] 202: zp ZP_BYTE:97 [ divr8u::$1 ] 168.33: zp ZP_BYTE:47 [ divr8u::i#2 divr8u::i#1 ] 77.42: zp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ] 12.75: zp ZP_BYTE:94 [ divr8u::divisor#0 ] 4: zp ZP_BYTE:95 [ divr8u::return#0 ] -Uplift Scope [] 294.4: zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 ] 254.87: zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] 6.83: zp ZP_WORD:22 [ rem16s#3 rem16s#31 rem16s#1 ] 6.83: zp ZP_BYTE:41 [ rem8s#3 rem8s#32 rem8s#1 ] 0.5: zp ZP_BYTE:98 [ rem8u#17 ] 0.48: zp ZP_WORD:82 [ rem16u#1 ] +Uplift Scope [] 294.4: zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 ] 254.87: zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] 6.83: zp ZP_WORD:22 [ rem16s#3 rem16s#31 rem16s#1 ] 6.83: zp ZP_BYTE:41 [ rem8s#3 rem8s#32 rem8s#1 ] 0.5: zp ZP_BYTE:98 [ rem8u#17 ] 0.48: zp ZP_WORD:82 [ rem16u#1 ] Uplift Scope [print_str] 305.5: zp ZP_WORD:13 [ print_str::str#13 print_str::str#15 print_str::str#0 ] Uplift Scope [print_byte] 113.5: zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] 4: zp ZP_BYTE:64 [ print_byte::$0 ] 4: zp ZP_BYTE:65 [ print_byte::$2 ] Uplift Scope [print_word] 97.67: zp ZP_WORD:7 [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ] @@ -9356,7 +9366,7 @@ Uplift Scope [main] Uplifting [divr16u] best 44804 combination zp ZP_WORD:28 [ divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:32 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:30 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:74 [ divr16u::divisor#0 ] zp ZP_WORD:76 [ divr16u::return#2 ] Uplifting [divr8u] best 42601 combination reg byte y [ divr8u::rem#4 divr8u::rem#10 divr8u::rem#5 divr8u::rem#1 divr8u::rem#2 divr8u::rem#3 ] zp ZP_BYTE:46 [ divr8u::quotient#3 divr8u::return#1 divr8u::quotient#1 divr8u::quotient#2 ] reg byte a [ divr8u::$1 ] reg byte x [ divr8u::i#2 divr8u::i#1 ] zp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ] zp ZP_BYTE:94 [ divr8u::divisor#0 ] zp ZP_BYTE:95 [ divr8u::return#0 ] Limited combination testing to 100 combinations of 3888 possible. -Uplifting [] best 42534 combination zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 ] zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] zp ZP_WORD:22 [ rem16s#3 rem16s#31 rem16s#1 ] reg byte x [ rem8s#3 rem8s#32 rem8s#1 ] reg byte x [ rem8u#17 ] zp ZP_WORD:82 [ rem16u#1 ] +Uplifting [] best 42534 combination zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 ] zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] zp ZP_WORD:22 [ rem16s#3 rem16s#31 rem16s#1 ] reg byte x [ rem8s#3 rem8s#32 rem8s#1 ] reg byte x [ rem8u#17 ] zp ZP_WORD:82 [ rem16u#1 ] Uplifting [print_str] best 42534 combination zp ZP_WORD:13 [ print_str::str#13 print_str::str#15 print_str::str#0 ] Uplifting [print_byte] best 42526 combination zp ZP_BYTE:9 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] Uplifting [print_word] best 42526 combination zp ZP_WORD:7 [ print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 ] @@ -9455,12 +9465,12 @@ Coalescing zero page register [ zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 test Coalescing zero page register [ zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 test_8s::i#10 test_8s::i#1 test_16u::i#10 test_16u::i#1 ] ] with [ zp ZP_BYTE:49 [ test_8u::i#10 test_8u::i#1 ] ] Coalescing zero page register [ zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 ] ] with [ zp ZP_WORD:50 [ print_cls::sc#2 print_cls::sc#1 ] ] Coalescing zero page register [ zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 test_16s::dividend#0 test_16u::dividend#0 ] ] with [ zp ZP_WORD:13 [ print_str::str#13 print_str::str#15 print_str::str#0 ] ] -Coalescing zero page register [ zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 ] ] with [ zp ZP_WORD:15 [ div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] ] +Coalescing zero page register [ zp ZP_WORD:11 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 ] ] with [ zp ZP_WORD:15 [ div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] ] Coalescing zero page register [ zp ZP_BYTE:39 [ div8s::neg#4 div8s::neg#3 div8s::neg#2 ] ] with [ zp ZP_BYTE:89 [ test_8s::res#0 ] ] Coalescing zero page register [ zp ZP_BYTE:39 [ div8s::neg#4 div8s::neg#3 div8s::neg#2 test_8s::res#0 ] ] with [ zp ZP_BYTE:108 [ test_8u::divisor#0 ] ] Coalescing zero page register [ zp ZP_BYTE:45 [ divr8u::dividend#2 divr8u::dividend#0 divr8u::dividend#1 ] ] with [ zp ZP_BYTE:110 [ test_8u::res#0 ] ] Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:7 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 print_sbyte::b#6 print_sbyte::b#5 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 print_sbyte::b#0 test_8u::dividend#0 test_8s::dividend#0 ] -Allocated (was zp ZP_WORD:11) zp ZP_WORD:8 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] +Allocated (was zp ZP_WORD:11) zp ZP_WORD:8 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] Allocated (was zp ZP_WORD:17) zp ZP_WORD:10 [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 div16u::divisor#2 div16u::divisor#0 div16u::divisor#1 div16s::divisor#0 div16s::$7 divr16u::divisor#0 test_16u::divisor#0 ] Allocated (was zp ZP_WORD:20) zp ZP_WORD:12 [ div16s::return#2 div16s::return#6 div16s::return#0 div16s::resultu#0 div16s::return#3 test_16s::res#0 div16u::return#2 div16u::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#3 test_16u::res#0 ] Allocated (was zp ZP_WORD:22) zp ZP_WORD:14 [ rem16s#3 rem16s#31 rem16s#1 rem16u#1 divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] @@ -9596,7 +9606,7 @@ test_16s: { // (signed word) test_16s::res#0 = (signed word) div16s::return#3 // register copy zp ZP_WORD:12 //SEG44 [24] (signed word) print_sword::w#1 ← (signed word) test_16s::dividend#0 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ) // (signed word) print_sword::w#1 = (signed word) test_16s::dividend#0 // register copy zp ZP_WORD:5 - //SEG45 [25] (byte*~) print_char_cursor#155 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ) -- pbuz1=pbuz2 + //SEG45 [25] (byte*~) print_char_cursor#156 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -9604,7 +9614,7 @@ test_16s: { //SEG46 [26] call print_sword param-assignment [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ) //SEG47 [49] phi from test_16s::@3 to print_sword [phi:test_16s::@3->print_sword] print_sword_from_b3: - //SEG48 [49] phi (byte*) print_char_cursor#129 = (byte*~) print_char_cursor#155 [phi:test_16s::@3->print_sword#0] -- register_copy + //SEG48 [49] phi (byte*) print_char_cursor#129 = (byte*~) print_char_cursor#156 [phi:test_16s::@3->print_sword#0] -- register_copy //SEG49 [49] phi (signed word) print_sword::w#5 = (signed word) print_sword::w#1 [phi:test_16s::@3->print_sword#1] -- register_copy jsr print_sword //SEG50 [27] phi from test_16s::@3 to test_16s::@4 [phi:test_16s::@3->test_16s::@4] @@ -9848,9 +9858,9 @@ print_byte: { lsr lsr lsr - //SEG138 [66] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG138 [66] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG139 [67] call print_char param-assignment [ print_char_cursor#17 print_byte::b#7 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] ) //SEG140 [72] phi from print_byte to print_char [phi:print_byte->print_char] print_char_from_print_byte: @@ -9863,9 +9873,9 @@ print_byte: { //SEG144 [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and b - //SEG145 [69] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG145 [69] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG146 [70] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 ] ) //SEG147 [72] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -9877,7 +9887,6 @@ print_byte: { breturn: //SEG151 [71] return [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG152 print_char print_char: { @@ -10255,7 +10264,7 @@ test_8s: { sta res //SEG276 [140] (signed byte) print_sbyte::b#1 ← (signed byte) test_8s::dividend#0 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ) // (signed byte) print_sbyte::b#1 = (signed byte) test_8s::dividend#0 // register copy zp ZP_BYTE:7 - //SEG277 [141] (byte*~) print_char_cursor#179 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ) -- pbuz1=pbuz2 + //SEG277 [141] (byte*~) print_char_cursor#180 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -10263,7 +10272,7 @@ test_8s: { //SEG278 [142] call print_sbyte param-assignment [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ) //SEG279 [160] phi from test_8s::@3 to print_sbyte [phi:test_8s::@3->print_sbyte] print_sbyte_from_b3: - //SEG280 [160] phi (byte*) print_char_cursor#131 = (byte*~) print_char_cursor#179 [phi:test_8s::@3->print_sbyte#0] -- register_copy + //SEG280 [160] phi (byte*) print_char_cursor#131 = (byte*~) print_char_cursor#180 [phi:test_8s::@3->print_sbyte#0] -- register_copy //SEG281 [160] phi (signed byte) print_sbyte::b#5 = (signed byte) print_sbyte::b#1 [phi:test_8s::@3->print_sbyte#1] -- register_copy jsr print_sbyte //SEG282 [143] phi from test_8s::@3 to test_8s::@4 [phi:test_8s::@3->test_8s::@4] @@ -10709,7 +10718,7 @@ test_16u: { // (word) test_16u::res#0 = (word) div16u::return#3 // register copy zp ZP_WORD:12 //SEG455 [225] (word) print_word::w#1 ← (word) test_16u::dividend#0 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) // (word) print_word::w#1 = (word) test_16u::dividend#0 // register copy zp ZP_WORD:5 - //SEG456 [226] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) -- pbuz1=pbuz2 + //SEG456 [226] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -10717,7 +10726,7 @@ test_16u: { //SEG457 [227] call print_word param-assignment [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) //SEG458 [58] phi from test_16u::@3 to print_word [phi:test_16u::@3->print_word] print_word_from_b3: - //SEG459 [58] phi (byte*) print_char_cursor#132 = (byte*~) print_char_cursor#162 [phi:test_16u::@3->print_word#0] -- register_copy + //SEG459 [58] phi (byte*) print_char_cursor#132 = (byte*~) print_char_cursor#163 [phi:test_16u::@3->print_word#0] -- register_copy //SEG460 [58] phi (word) print_word::w#5 = (word) print_word::w#1 [phi:test_16u::@3->print_word#1] -- register_copy jsr print_word //SEG461 [228] phi from test_16u::@3 to test_16u::@4 [phi:test_16u::@3->test_16u::@4] @@ -10997,7 +11006,7 @@ test_8u: { rts //SEG569 test_8u::@12 b12: - //SEG570 [273] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ) -- pbuz1=pbuz2 + //SEG570 [273] (byte*~) print_char_cursor#186 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -11005,7 +11014,7 @@ test_8u: { //SEG571 [246] phi from test_8u::@12 to test_8u::@1 [phi:test_8u::@12->test_8u::@1] b1_from_b12: //SEG572 [246] phi (byte*) print_line_cursor#41 = (byte*) print_line_cursor#1 [phi:test_8u::@12->test_8u::@1#0] -- register_copy - //SEG573 [246] phi (byte*) print_char_cursor#135 = (byte*~) print_char_cursor#185 [phi:test_8u::@12->test_8u::@1#1] -- register_copy + //SEG573 [246] phi (byte*) print_char_cursor#135 = (byte*~) print_char_cursor#186 [phi:test_8u::@12->test_8u::@1#1] -- register_copy //SEG574 [246] phi (byte) test_8u::i#10 = (byte) test_8u::i#1 [phi:test_8u::@12->test_8u::@1#2] -- register_copy jmp b1 str: .text " / @" @@ -11053,6 +11062,7 @@ print_cls: { //SEG585 [279] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b26 @@ -11605,8 +11615,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#6 b zp ZP_BYTE:7 22.0 (byte) print_byte::b#7 b zp ZP_BYTE:7 13.5 (byte~) print_byte::b#9 b zp ZP_BYTE:7 4.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -11623,11 +11631,11 @@ FINAL SYMBOL TABLE (byte*) print_char_cursor#132 print_char_cursor zp ZP_WORD:8 24.0 (byte*) print_char_cursor#133 print_char_cursor zp ZP_WORD:8 17.333333333333332 (byte*) print_char_cursor#135 print_char_cursor zp ZP_WORD:8 2.4444444444444446 -(byte*~) print_char_cursor#155 print_char_cursor zp ZP_WORD:8 22.0 -(byte*~) print_char_cursor#162 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#156 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#163 print_char_cursor zp ZP_WORD:8 22.0 (byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:8 2.0178571428571432 -(byte*~) print_char_cursor#179 print_char_cursor zp ZP_WORD:8 22.0 -(byte*~) print_char_cursor#185 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#180 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#186 print_char_cursor zp ZP_WORD:8 22.0 (byte*) print_char_cursor#80 print_char_cursor zp ZP_WORD:8 6.0 (void()) print_cls() (label) print_cls::@1 @@ -11635,6 +11643,8 @@ FINAL SYMBOL TABLE (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:3 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:3 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 3.9099999999999993 (byte*) print_line_cursor#20 print_line_cursor zp ZP_WORD:3 204.0 @@ -11819,7 +11829,7 @@ zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 pri zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 test_16s::dividend#0 test_16u::dividend#0 print_str::str#13 print_str::str#15 print_str::str#0 ] zp ZP_BYTE:7 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 print_sbyte::b#6 print_sbyte::b#5 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 print_sbyte::b#0 test_8u::dividend#0 test_8s::dividend#0 ] reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -zp ZP_WORD:8 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] +zp ZP_WORD:8 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:10 [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 div16u::divisor#2 div16u::divisor#0 div16u::divisor#1 div16s::divisor#0 div16s::$7 divr16u::divisor#0 test_16u::divisor#0 ] reg byte y [ div16s::neg#4 div16s::neg#3 div16s::neg#2 ] zp ZP_WORD:12 [ div16s::return#2 div16s::return#6 div16s::return#0 div16s::resultu#0 div16s::return#3 test_16s::res#0 div16u::return#2 div16u::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#3 test_16u::res#0 ] @@ -11950,14 +11960,14 @@ test_16s: { // (signed word) test_16s::res#0 = (signed word) div16s::return#3 // register copy zp ZP_WORD:12 //SEG44 [24] (signed word) print_sword::w#1 ← (signed word) test_16s::dividend#0 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_line_cursor#1 rem16s#3 ] ) // (signed word) print_sword::w#1 = (signed word) test_16s::dividend#0 // register copy zp ZP_WORD:5 - //SEG45 [25] (byte*~) print_char_cursor#155 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#155 print_line_cursor#1 rem16s#3 ] ) -- pbuz1=pbuz2 + //SEG45 [25] (byte*~) print_char_cursor#156 ← (byte*) print_line_cursor#1 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_sword::w#1 print_char_cursor#156 print_line_cursor#1 rem16s#3 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG46 [26] call print_sword param-assignment [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] ) //SEG47 [49] phi from test_16s::@3 to print_sword [phi:test_16s::@3->print_sword] - //SEG48 [49] phi (byte*) print_char_cursor#129 = (byte*~) print_char_cursor#155 [phi:test_16s::@3->print_sword#0] -- register_copy + //SEG48 [49] phi (byte*) print_char_cursor#129 = (byte*~) print_char_cursor#156 [phi:test_16s::@3->print_sword#0] -- register_copy //SEG49 [49] phi (signed word) print_sword::w#5 = (signed word) print_sword::w#1 [phi:test_16s::@3->print_sword#1] -- register_copy jsr print_sword //SEG50 [27] phi from test_16s::@3 to test_16s::@4 [phi:test_16s::@3->test_16s::@4] @@ -12150,9 +12160,9 @@ print_byte: { lsr lsr lsr - //SEG138 [66] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG138 [66] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_byte::b#7 print_char_cursor#133 print_char::ch#2 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG139 [67] call print_char param-assignment [ print_char_cursor#17 print_byte::b#7 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::b#7 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::b#7 ] ) //SEG140 [72] phi from print_byte to print_char [phi:print_byte->print_char] //SEG141 [72] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#133 [phi:print_byte->print_char#0] -- register_copy @@ -12162,9 +12172,9 @@ print_byte: { //SEG144 [68] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_byte::$2 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_byte::$2 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_byte::$2 ] ) -- vbuaa=vbuz1_band_vbuc1 lda #$f and b - //SEG145 [69] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG145 [69] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 print_char::ch#3 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG146 [70] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 ] ) //SEG147 [72] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG148 [72] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#17 [phi:print_byte::@1->print_char#0] -- register_copy @@ -12173,7 +12183,6 @@ print_byte: { //SEG150 print_byte::@return //SEG151 [71] return [ print_char_cursor#17 ] ( main:2::test_16s:13::print_sword:26::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:60 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:60 [ test_16s::i#10 print_line_cursor#1 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:60 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:60 [ print_line_cursor#1 test_16u::i#10 print_word::w#5 print_char_cursor#17 ] main:2::test_16s:13::print_sword:26::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:30::print_word:56::print_byte:62 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:34::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_char_cursor#17 ] main:2::test_16s:13::print_sword:38::print_word:56::print_byte:62 [ test_16s::i#10 print_line_cursor#1 print_char_cursor#17 ] main:2::test_16u:9::print_word:227::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:231::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_char_cursor#17 ] main:2::test_16u:9::print_word:235::print_byte:62 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_16u:9::print_word:239::print_byte:62 [ print_line_cursor#1 test_16u::i#10 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:142::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146::print_byte:167 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150::print_byte:167 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154::print_byte:167 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:255 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:259 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_char_cursor#17 ] main:2::test_8u:7::print_byte:263 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_char_cursor#17 ] main:2::test_8u:7::print_byte:267 [ print_line_cursor#41 test_8u::i#10 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG152 print_char print_char: { @@ -12490,14 +12499,14 @@ test_8s: { sta res //SEG276 [140] (signed byte) print_sbyte::b#1 ← (signed byte) test_8s::dividend#0 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 rem8s#3 ] ) // (signed byte) print_sbyte::b#1 = (signed byte) test_8s::dividend#0 // register copy zp ZP_BYTE:7 - //SEG277 [141] (byte*~) print_char_cursor#179 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#179 rem8s#3 ] ) -- pbuz1=pbuz2 + //SEG277 [141] (byte*~) print_char_cursor#180 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 print_sbyte::b#1 print_char_cursor#180 rem8s#3 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG278 [142] call print_sbyte param-assignment [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ( main:2::test_8s:11 [ print_line_cursor#1 print_char_cursor#17 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 ] ) //SEG279 [160] phi from test_8s::@3 to print_sbyte [phi:test_8s::@3->print_sbyte] - //SEG280 [160] phi (byte*) print_char_cursor#131 = (byte*~) print_char_cursor#179 [phi:test_8s::@3->print_sbyte#0] -- register_copy + //SEG280 [160] phi (byte*) print_char_cursor#131 = (byte*~) print_char_cursor#180 [phi:test_8s::@3->print_sbyte#0] -- register_copy //SEG281 [160] phi (signed byte) print_sbyte::b#5 = (signed byte) print_sbyte::b#1 [phi:test_8s::@3->print_sbyte#1] -- register_copy jsr print_sbyte //SEG282 [143] phi from test_8s::@3 to test_8s::@4 [phi:test_8s::@3->test_8s::@4] @@ -12851,14 +12860,14 @@ test_16u: { // (word) test_16u::res#0 = (word) div16u::return#3 // register copy zp ZP_WORD:12 //SEG455 [225] (word) print_word::w#1 ← (word) test_16u::dividend#0 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) // (word) print_word::w#1 = (word) test_16u::dividend#0 // register copy zp ZP_WORD:5 - //SEG456 [226] (byte*~) print_char_cursor#162 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#162 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) -- pbuz1=pbuz2 + //SEG456 [226] (byte*~) print_char_cursor#163 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_word::w#1 print_char_cursor#163 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG457 [227] call print_word param-assignment [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ( main:2::test_16u:9 [ print_line_cursor#1 print_char_cursor#17 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 ] ) //SEG458 [58] phi from test_16u::@3 to print_word [phi:test_16u::@3->print_word] - //SEG459 [58] phi (byte*) print_char_cursor#132 = (byte*~) print_char_cursor#162 [phi:test_16u::@3->print_word#0] -- register_copy + //SEG459 [58] phi (byte*) print_char_cursor#132 = (byte*~) print_char_cursor#163 [phi:test_16u::@3->print_word#0] -- register_copy //SEG460 [58] phi (word) print_word::w#5 = (word) print_word::w#1 [phi:test_16u::@3->print_word#1] -- register_copy jsr print_word //SEG461 [228] phi from test_16u::@3 to test_16u::@4 [phi:test_16u::@3->test_16u::@4] @@ -13072,14 +13081,14 @@ test_8u: { rts //SEG569 test_8u::@12 b12: - //SEG570 [273] (byte*~) print_char_cursor#185 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#185 ] ) -- pbuz1=pbuz2 + //SEG570 [273] (byte*~) print_char_cursor#186 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ( main:2::test_8u:7 [ print_line_cursor#1 test_8u::i#1 print_char_cursor#186 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG571 [246] phi from test_8u::@12 to test_8u::@1 [phi:test_8u::@12->test_8u::@1] //SEG572 [246] phi (byte*) print_line_cursor#41 = (byte*) print_line_cursor#1 [phi:test_8u::@12->test_8u::@1#0] -- register_copy - //SEG573 [246] phi (byte*) print_char_cursor#135 = (byte*~) print_char_cursor#185 [phi:test_8u::@12->test_8u::@1#1] -- register_copy + //SEG573 [246] phi (byte*) print_char_cursor#135 = (byte*~) print_char_cursor#186 [phi:test_8u::@12->test_8u::@1#1] -- register_copy //SEG574 [246] phi (byte) test_8u::i#10 = (byte) test_8u::i#1 [phi:test_8u::@12->test_8u::@1#2] -- register_copy jmp b1 str: .text " / @" @@ -13121,4 +13130,5 @@ print_cls: { //SEG585 [279] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-division.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-division.sym index 7946fed2c..ee7769ebd 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-division.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-division.sym @@ -188,8 +188,6 @@ (byte) print_byte::b#6 b zp ZP_BYTE:7 22.0 (byte) print_byte::b#7 b zp ZP_BYTE:7 13.5 (byte~) print_byte::b#9 b zp ZP_BYTE:7 4.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -206,11 +204,11 @@ (byte*) print_char_cursor#132 print_char_cursor zp ZP_WORD:8 24.0 (byte*) print_char_cursor#133 print_char_cursor zp ZP_WORD:8 17.333333333333332 (byte*) print_char_cursor#135 print_char_cursor zp ZP_WORD:8 2.4444444444444446 -(byte*~) print_char_cursor#155 print_char_cursor zp ZP_WORD:8 22.0 -(byte*~) print_char_cursor#162 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#156 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#163 print_char_cursor zp ZP_WORD:8 22.0 (byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:8 2.0178571428571432 -(byte*~) print_char_cursor#179 print_char_cursor zp ZP_WORD:8 22.0 -(byte*~) print_char_cursor#185 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#180 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#186 print_char_cursor zp ZP_WORD:8 22.0 (byte*) print_char_cursor#80 print_char_cursor zp ZP_WORD:8 6.0 (void()) print_cls() (label) print_cls::@1 @@ -218,6 +216,8 @@ (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:3 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:3 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:3 3.9099999999999993 (byte*) print_line_cursor#20 print_line_cursor zp ZP_WORD:3 204.0 @@ -402,7 +402,7 @@ zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 pri zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#4 print_sword::w#0 print_word::w#5 print_word::w#7 print_word::w#1 print_word::w#2 print_word::w#3 print_word::w#4 test_16s::dividend#0 test_16u::dividend#0 print_str::str#13 print_str::str#15 print_str::str#0 ] zp ZP_BYTE:7 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 print_sbyte::b#6 print_sbyte::b#5 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 print_sbyte::b#0 test_8u::dividend#0 test_8s::dividend#0 ] reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -zp ZP_WORD:8 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#155 print_char_cursor#126 print_char_cursor#17 print_char_cursor#162 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#179 print_char_cursor#185 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] +zp ZP_WORD:8 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:10 [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 div16u::divisor#2 div16u::divisor#0 div16u::divisor#1 div16s::divisor#0 div16s::$7 divr16u::divisor#0 test_16u::divisor#0 ] reg byte y [ div16s::neg#4 div16s::neg#3 div16s::neg#2 ] zp ZP_WORD:12 [ div16s::return#2 div16s::return#6 div16s::return#0 div16s::resultu#0 div16s::return#3 test_16s::res#0 div16u::return#2 div16u::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#3 test_16u::res#0 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.asm b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.asm index 51ed286eb..59f7ca30f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.asm @@ -171,15 +171,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char txa and #$f tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -236,3 +235,4 @@ print_cls: { bne b1 rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.cfg index dbbb43b2c..64651022d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.cfg @@ -13,7 +13,7 @@ main: scope:[main] from @15 to:main::@1 main::@1: scope:[main] from main main::@18 [6] (byte*) print_line_cursor#19 ← phi( main::@18/(byte*) print_line_cursor#1 main/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ) - [6] (byte*) print_char_cursor#69 ← phi( main::@18/(byte*~) print_char_cursor#71 main/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ) + [6] (byte*) print_char_cursor#69 ← phi( main::@18/(byte*~) print_char_cursor#72 main/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ) [6] (dword) main::dw#10 ← phi( main::@18/(dword) main::dw#1 main/(dword/signed dword) 305419896 ) [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ) [7] (word~) main::$2 ← > (dword) main::dw#10 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$2 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$2 ] ) [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ) @@ -88,7 +88,7 @@ main::@return: scope:[main] from main::@17 [47] return [ ] ( main:2 [ ] ) to:@return main::@18: scope:[main] from main::@17 - [48] (byte*~) print_char_cursor#71 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ) + [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) to:main::@1 print_ln: scope:[print_ln] from main::@16 [49] phi() [ print_line_cursor#19 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] ) @@ -105,12 +105,12 @@ print_byte: scope:[print_byte] from main::@11 main::@13 main::@15 main::@9 prin [54] (byte*) print_char_cursor#67 ← phi( main::@11/(byte*) print_char_cursor#12 main::@13/(byte*) print_char_cursor#12 main::@15/(byte*) print_char_cursor#12 main::@9/(byte*) print_char_cursor#12 print_word/(byte*) print_char_cursor#65 print_word::@1/(byte*) print_char_cursor#12 ) [ print_byte::b#6 print_char_cursor#67 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] ) [54] (byte) print_byte::b#6 ← phi( main::@11/(byte) print_byte::b#3 main::@13/(byte) print_byte::b#4 main::@15/(byte) print_byte::b#5 main::@9/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#6 print_char_cursor#67 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] ) [55] (byte~) print_byte::$0 ← (byte) print_byte::b#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#6 print_char_cursor#67 print_byte::$0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] ) - [56] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) + [56] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) [57] call print_char param-assignment [ print_char_cursor#12 print_byte::b#6 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) - [59] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) + [59] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) [60] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log index 194e0a253..5f7964c2a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log @@ -111,12 +111,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -276,12 +277,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -401,7 +402,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -419,6 +419,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -700,13 +701,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -836,7 +837,7 @@ Eliminating unused variable - keeping the call (void~) main::$25 Eliminating unused variable - keeping the call (void~) main::$26 Eliminating unused variable - keeping the call (void~) main::$29 Eliminating unused variable - keeping the call (void~) main::$30 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Removing empty block @1 Removing empty block @2 Removing empty block @3 @@ -846,7 +847,6 @@ Removing empty block @6 Removing empty block @7 Removing empty block @8 Removing empty block @9 -Removing empty block @10 Removing empty block @11 Removing empty block @12 Removing empty block @13 @@ -885,7 +885,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@15 + to:@10 print_ln: scope:[print_ln] from main::@16 (byte*) print_char_cursor#64 ← phi( main::@16/(byte*) print_char_cursor#29 ) (byte*) print_line_cursor#17 ← phi( main::@16/(byte*) print_line_cursor#19 ) @@ -957,12 +957,17 @@ print_dword::@return: scope:[print_dword] from print_dword::@2 (byte*) print_char_cursor#8 ← (byte*) print_char_cursor#40 return to:@return +@10: scope:[] from @begin + (byte*) print_screen#6 ← phi( @begin/(byte*) print_screen#0 ) + (byte*) print_char_cursor#71 ← phi( @begin/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#22 ← phi( @begin/(byte*) print_line_cursor#0 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@15 print_byte: scope:[print_byte] from main::@11 main::@13 main::@15 main::@9 print_word print_word::@1 (byte*) print_char_cursor#67 ← phi( main::@11/(byte*) print_char_cursor#24 main::@13/(byte*) print_char_cursor#26 main::@15/(byte*) print_char_cursor#28 main::@9/(byte*) print_char_cursor#22 print_word/(byte*) print_char_cursor#65 print_word::@1/(byte*) print_char_cursor#3 ) (byte) print_byte::b#6 ← phi( main::@11/(byte) print_byte::b#3 main::@13/(byte) print_byte::b#4 main::@15/(byte) print_byte::b#5 main::@9/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#0 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#0 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -970,7 +975,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#41 ← phi( print_byte/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#9 ← (byte*) print_char_cursor#41 (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#1 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#1 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -1032,7 +1037,7 @@ main::@3: scope:[main] from main (dword) main::dw#0 ← (dword/signed dword) 305419896 to:main::@1 main::@1: scope:[main] from main::@17 main::@3 - (byte*) print_line_cursor#33 ← phi( main::@17/(byte*) print_line_cursor#6 main::@3/(byte*) print_line_cursor#5 ) + (byte*) print_line_cursor#34 ← phi( main::@17/(byte*) print_line_cursor#6 main::@3/(byte*) print_line_cursor#5 ) (byte*) print_char_cursor#69 ← phi( main::@17/(byte*) print_char_cursor#30 main::@3/(byte*) print_char_cursor#16 ) (dword) main::dw#2 ← phi( main::@17/(dword) main::dw#1 main::@3/(dword) main::dw#0 ) (dword) main::dw2#0 ← (dword) main::dw#2 @@ -1049,7 +1054,7 @@ main::@1: scope:[main] from main::@17 main::@3 to:main::@4 main::@4: scope:[main] from main::@1 (dword) main::dw#16 ← phi( main::@1/(dword) main::dw#2 ) - (byte*) print_line_cursor#32 ← phi( main::@1/(byte*) print_line_cursor#33 ) + (byte*) print_line_cursor#33 ← phi( main::@1/(byte*) print_line_cursor#34 ) (dword) main::dw2#9 ← phi( main::@1/(dword) main::dw2#2 ) (byte*) print_char_cursor#48 ← phi( main::@1/(byte*) print_char_cursor#8 ) (byte*) print_char_cursor#17 ← (byte*) print_char_cursor#48 @@ -1058,7 +1063,7 @@ main::@4: scope:[main] from main::@1 to:main::@5 main::@5: scope:[main] from main::@4 (dword) main::dw#15 ← phi( main::@4/(dword) main::dw#16 ) - (byte*) print_line_cursor#31 ← phi( main::@4/(byte*) print_line_cursor#32 ) + (byte*) print_line_cursor#32 ← phi( main::@4/(byte*) print_line_cursor#33 ) (dword) main::dw2#3 ← phi( main::@4/(dword) main::dw2#9 ) (byte*) print_char_cursor#49 ← phi( main::@4/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#18 ← (byte*) print_char_cursor#49 @@ -1068,7 +1073,7 @@ main::@5: scope:[main] from main::@4 to:main::@6 main::@6: scope:[main] from main::@5 (dword) main::dw#14 ← phi( main::@5/(dword) main::dw#15 ) - (byte*) print_line_cursor#30 ← phi( main::@5/(byte*) print_line_cursor#31 ) + (byte*) print_line_cursor#31 ← phi( main::@5/(byte*) print_line_cursor#32 ) (dword) main::dw2#10 ← phi( main::@5/(dword) main::dw2#3 ) (byte*) print_char_cursor#50 ← phi( main::@5/(byte*) print_char_cursor#5 ) (byte*) print_char_cursor#19 ← (byte*) print_char_cursor#50 @@ -1077,7 +1082,7 @@ main::@6: scope:[main] from main::@5 to:main::@7 main::@7: scope:[main] from main::@6 (dword) main::dw#13 ← phi( main::@6/(dword) main::dw#14 ) - (byte*) print_line_cursor#29 ← phi( main::@6/(byte*) print_line_cursor#30 ) + (byte*) print_line_cursor#30 ← phi( main::@6/(byte*) print_line_cursor#31 ) (dword) main::dw2#4 ← phi( main::@6/(dword) main::dw2#10 ) (byte*) print_char_cursor#51 ← phi( main::@6/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#20 ← (byte*) print_char_cursor#51 @@ -1087,7 +1092,7 @@ main::@7: scope:[main] from main::@6 to:main::@8 main::@8: scope:[main] from main::@7 (dword) main::dw#12 ← phi( main::@7/(dword) main::dw#13 ) - (byte*) print_line_cursor#28 ← phi( main::@7/(byte*) print_line_cursor#29 ) + (byte*) print_line_cursor#29 ← phi( main::@7/(byte*) print_line_cursor#30 ) (dword) main::dw2#11 ← phi( main::@7/(dword) main::dw2#4 ) (byte*) print_char_cursor#52 ← phi( main::@7/(byte*) print_char_cursor#5 ) (byte*) print_char_cursor#21 ← (byte*) print_char_cursor#52 @@ -1096,7 +1101,7 @@ main::@8: scope:[main] from main::@7 to:main::@9 main::@9: scope:[main] from main::@8 (dword) main::dw#11 ← phi( main::@8/(dword) main::dw#12 ) - (byte*) print_line_cursor#27 ← phi( main::@8/(byte*) print_line_cursor#28 ) + (byte*) print_line_cursor#28 ← phi( main::@8/(byte*) print_line_cursor#29 ) (dword) main::dw2#5 ← phi( main::@8/(dword) main::dw2#11 ) (byte*) print_char_cursor#53 ← phi( main::@8/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#22 ← (byte*) print_char_cursor#53 @@ -1107,7 +1112,7 @@ main::@9: scope:[main] from main::@8 to:main::@10 main::@10: scope:[main] from main::@9 (dword) main::dw#10 ← phi( main::@9/(dword) main::dw#11 ) - (byte*) print_line_cursor#26 ← phi( main::@9/(byte*) print_line_cursor#27 ) + (byte*) print_line_cursor#27 ← phi( main::@9/(byte*) print_line_cursor#28 ) (dword) main::dw2#12 ← phi( main::@9/(dword) main::dw2#5 ) (byte*) print_char_cursor#54 ← phi( main::@9/(byte*) print_char_cursor#11 ) (byte*) print_char_cursor#23 ← (byte*) print_char_cursor#54 @@ -1116,7 +1121,7 @@ main::@10: scope:[main] from main::@9 to:main::@11 main::@11: scope:[main] from main::@10 (dword) main::dw#9 ← phi( main::@10/(dword) main::dw#10 ) - (byte*) print_line_cursor#25 ← phi( main::@10/(byte*) print_line_cursor#26 ) + (byte*) print_line_cursor#26 ← phi( main::@10/(byte*) print_line_cursor#27 ) (dword) main::dw2#6 ← phi( main::@10/(dword) main::dw2#12 ) (byte*) print_char_cursor#55 ← phi( main::@10/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#24 ← (byte*) print_char_cursor#55 @@ -1127,7 +1132,7 @@ main::@11: scope:[main] from main::@10 to:main::@12 main::@12: scope:[main] from main::@11 (dword) main::dw#8 ← phi( main::@11/(dword) main::dw#9 ) - (byte*) print_line_cursor#24 ← phi( main::@11/(byte*) print_line_cursor#25 ) + (byte*) print_line_cursor#25 ← phi( main::@11/(byte*) print_line_cursor#26 ) (dword) main::dw2#13 ← phi( main::@11/(dword) main::dw2#6 ) (byte*) print_char_cursor#56 ← phi( main::@11/(byte*) print_char_cursor#11 ) (byte*) print_char_cursor#25 ← (byte*) print_char_cursor#56 @@ -1136,7 +1141,7 @@ main::@12: scope:[main] from main::@11 to:main::@13 main::@13: scope:[main] from main::@12 (dword) main::dw#7 ← phi( main::@12/(dword) main::dw#8 ) - (byte*) print_line_cursor#23 ← phi( main::@12/(byte*) print_line_cursor#24 ) + (byte*) print_line_cursor#24 ← phi( main::@12/(byte*) print_line_cursor#25 ) (dword) main::dw2#7 ← phi( main::@12/(dword) main::dw2#13 ) (byte*) print_char_cursor#57 ← phi( main::@12/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#26 ← (byte*) print_char_cursor#57 @@ -1147,7 +1152,7 @@ main::@13: scope:[main] from main::@12 to:main::@14 main::@14: scope:[main] from main::@13 (dword) main::dw#6 ← phi( main::@13/(dword) main::dw#7 ) - (byte*) print_line_cursor#22 ← phi( main::@13/(byte*) print_line_cursor#23 ) + (byte*) print_line_cursor#23 ← phi( main::@13/(byte*) print_line_cursor#24 ) (dword) main::dw2#14 ← phi( main::@13/(dword) main::dw2#7 ) (byte*) print_char_cursor#58 ← phi( main::@13/(byte*) print_char_cursor#11 ) (byte*) print_char_cursor#27 ← (byte*) print_char_cursor#58 @@ -1156,7 +1161,7 @@ main::@14: scope:[main] from main::@13 to:main::@15 main::@15: scope:[main] from main::@14 (dword) main::dw#5 ← phi( main::@14/(dword) main::dw#6 ) - (byte*) print_line_cursor#21 ← phi( main::@14/(byte*) print_line_cursor#22 ) + (byte*) print_line_cursor#21 ← phi( main::@14/(byte*) print_line_cursor#23 ) (dword) main::dw2#8 ← phi( main::@14/(dword) main::dw2#14 ) (byte*) print_char_cursor#59 ← phi( main::@14/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#28 ← (byte*) print_char_cursor#59 @@ -1189,10 +1194,10 @@ main::@return: scope:[main] from main::@17 (byte*) print_char_cursor#31 ← (byte*) print_char_cursor#62 return to:@return -@15: scope:[] from @begin - (byte*) print_screen#5 ← phi( @begin/(byte*) print_screen#0 ) - (byte*) print_char_cursor#70 ← phi( @begin/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#20 ← phi( @begin/(byte*) print_line_cursor#0 ) +@15: scope:[] from @10 + (byte*) print_screen#5 ← phi( @10/(byte*) print_screen#6 ) + (byte*) print_char_cursor#70 ← phi( @10/(byte*) print_char_cursor#71 ) + (byte*) print_line_cursor#20 ← phi( @10/(byte*) print_line_cursor#22 ) call main param-assignment to:@16 @16: scope:[] from @15 @@ -1204,6 +1209,8 @@ main::@return: scope:[main] from main::@17 @end: scope:[] from @16 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" +(label) @10 (label) @15 (label) @16 (label) @begin @@ -1280,7 +1287,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -1293,8 +1299,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#5 (byte) print_byte::b#6 (byte) print_byte::b#7 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1377,6 +1381,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#69 (byte*) print_char_cursor#7 (byte*) print_char_cursor#70 +(byte*) print_char_cursor#71 (byte*) print_char_cursor#8 (byte*) print_char_cursor#9 (void()) print_cls() @@ -1399,6 +1404,8 @@ SYMBOL TABLE SSA (dword) print_dword::dw#0 (dword) print_dword::dw#1 (dword) print_dword::dw#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -1428,6 +1435,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#31 (byte*) print_line_cursor#32 (byte*) print_line_cursor#33 +(byte*) print_line_cursor#34 (byte*) print_line_cursor#4 (byte*) print_line_cursor#5 (byte*) print_line_cursor#6 @@ -1447,6 +1455,7 @@ SYMBOL TABLE SSA (byte*) print_screen#3 (byte*) print_screen#4 (byte*) print_screen#5 +(byte*) print_screen#6 (void()) print_word((word) print_word::w) (byte~) print_word::$0 (byte~) print_word::$2 @@ -1503,7 +1512,7 @@ Not aliassing across scopes: print_line_cursor#14 print_line_cursor#2 Not aliassing across scopes: print_char_cursor#61 print_char_cursor#2 Not aliassing across scopes: print_line_cursor#16 print_line_cursor#7 Not aliassing across scopes: print_char_cursor#63 print_char_cursor#31 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#20 (byte*) print_char_cursor#70 (byte*) print_screen#5 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#22 (byte*) print_char_cursor#71 (byte*) print_screen#6 (byte*) print_line_cursor#20 (byte*) print_char_cursor#70 (byte*) print_screen#5 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#10 (byte*) print_char_cursor#1 (byte*) print_line_cursor#11 (byte*) print_char_cursor#34 (byte*) print_line_cursor#2 (byte*) print_char_cursor#2 Alias (byte) print_byte::b#0 = (byte~) print_word::$0 Alias (word) print_word::w#4 = (word) print_word::w#5 @@ -1526,7 +1535,7 @@ Alias (dword) main::dw#10 = (dword) main::dw2#0 (dword) main::dw#2 (dword) main: Alias (word/signed dword/dword~) main::$32 = (word/signed dword/dword~) main::$3 Alias (word/signed dword/dword~) main::$33 = (word/signed dword/dword~) main::$6 Alias (dword) main::dw2#10 = (dword) main::dw2#9 (dword) main::dw2#2 (dword) main::dw2#3 (dword) main::dw2#4 (dword) main::dw2#11 (dword) main::dw2#5 (dword) main::dw2#12 (dword) main::dw2#6 (dword) main::dw2#13 (dword) main::dw2#7 (dword) main::dw2#14 (dword) main::dw2#8 -Alias (byte*) print_line_cursor#19 = (byte*) print_line_cursor#32 (byte*) print_line_cursor#33 (byte*) print_line_cursor#31 (byte*) print_line_cursor#30 (byte*) print_line_cursor#29 (byte*) print_line_cursor#28 (byte*) print_line_cursor#27 (byte*) print_line_cursor#26 (byte*) print_line_cursor#25 (byte*) print_line_cursor#24 (byte*) print_line_cursor#23 (byte*) print_line_cursor#22 (byte*) print_line_cursor#21 +Alias (byte*) print_line_cursor#19 = (byte*) print_line_cursor#33 (byte*) print_line_cursor#34 (byte*) print_line_cursor#32 (byte*) print_line_cursor#31 (byte*) print_line_cursor#30 (byte*) print_line_cursor#29 (byte*) print_line_cursor#28 (byte*) print_line_cursor#27 (byte*) print_line_cursor#26 (byte*) print_line_cursor#25 (byte*) print_line_cursor#24 (byte*) print_line_cursor#23 (byte*) print_line_cursor#21 Alias (byte*) print_char_cursor#17 = (byte*) print_char_cursor#48 Alias (byte*) print_char_cursor#18 = (byte*) print_char_cursor#49 Alias (word) print_word::w#2 = (word~) main::$9 @@ -1636,7 +1645,7 @@ Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(byte*~) p Simple Condition (boolean~) main::$31 if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@1 Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) print_line_cursor#0 = ((byte*))1024 -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const dword) main::dw#0 = 305419896 Constant (const byte) print_char::ch#2 = ' ' Constant (const byte) print_char::ch#3 = ' ' @@ -1651,6 +1660,7 @@ Succesful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_word::@2 Culled Empty Block (label) print_dword::@2 +Culled Empty Block (label) @10 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@3 @@ -1734,8 +1744,8 @@ Constant inlined print_char::ch#5 = (byte) ' ' Constant inlined print_char::ch#4 = (byte) ' ' Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000 Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined print_char::ch#7 = (byte) ' ' Constant inlined main::dw#0 = (dword/signed dword) 305419896 Constant inlined print_char::ch#6 = (byte) ' ' @@ -1810,41 +1820,41 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 11 initial phi equivalence classes -Coalesced [15] print_char_cursor#81 ← print_char_cursor#12 +Coalesced [15] print_char_cursor#82 ← print_char_cursor#12 Coalesced [18] print_word::w#6 ← print_word::w#2 -Coalesced [19] print_char_cursor#86 ← print_char_cursor#12 -Coalesced (already) [21] print_char_cursor#82 ← print_char_cursor#12 +Coalesced [19] print_char_cursor#87 ← print_char_cursor#12 +Coalesced (already) [21] print_char_cursor#83 ← print_char_cursor#12 Coalesced [24] print_word::w#7 ← print_word::w#3 -Coalesced (already) [25] print_char_cursor#87 ← print_char_cursor#12 -Coalesced (already) [27] print_char_cursor#83 ← print_char_cursor#12 +Coalesced (already) [25] print_char_cursor#88 ← print_char_cursor#12 +Coalesced (already) [27] print_char_cursor#84 ← print_char_cursor#12 Coalesced [31] print_byte::b#11 ← print_byte::b#2 -Coalesced [32] print_char_cursor#75 ← print_char_cursor#12 -Coalesced (already) [34] print_char_cursor#78 ← print_char_cursor#12 +Coalesced [32] print_char_cursor#76 ← print_char_cursor#12 +Coalesced (already) [34] print_char_cursor#79 ← print_char_cursor#12 Coalesced [38] print_byte::b#8 ← print_byte::b#3 -Coalesced (already) [39] print_char_cursor#72 ← print_char_cursor#12 -Coalesced (already) [41] print_char_cursor#79 ← print_char_cursor#12 +Coalesced (already) [39] print_char_cursor#73 ← print_char_cursor#12 +Coalesced (already) [41] print_char_cursor#80 ← print_char_cursor#12 Coalesced [45] print_byte::b#9 ← print_byte::b#4 -Coalesced (already) [46] print_char_cursor#73 ← print_char_cursor#12 -Coalesced (already) [48] print_char_cursor#80 ← print_char_cursor#12 +Coalesced (already) [46] print_char_cursor#74 ← print_char_cursor#12 +Coalesced (already) [48] print_char_cursor#81 ← print_char_cursor#12 Coalesced [52] print_byte::b#10 ← print_byte::b#5 -Coalesced (already) [53] print_char_cursor#74 ← print_char_cursor#12 +Coalesced (already) [53] print_char_cursor#75 ← print_char_cursor#12 Coalesced [60] main::dw#17 ← main::dw#1 -Not coalescing [61] print_char_cursor#71 ← print_line_cursor#1 -Coalesced [62] print_line_cursor#34 ← print_line_cursor#1 -Coalesced [63] print_line_cursor#35 ← print_line_cursor#19 -Coalesced (already) [68] print_line_cursor#36 ← print_line_cursor#1 +Not coalescing [61] print_char_cursor#72 ← print_line_cursor#1 +Coalesced [62] print_line_cursor#35 ← print_line_cursor#1 +Coalesced [63] print_line_cursor#36 ← print_line_cursor#19 +Coalesced (already) [68] print_line_cursor#37 ← print_line_cursor#1 Coalesced [72] print_char::ch#9 ← print_char::ch#0 -Coalesced (already) [73] print_char_cursor#84 ← print_char_cursor#67 +Coalesced (already) [73] print_char_cursor#85 ← print_char_cursor#67 Coalesced [77] print_char::ch#10 ← print_char::ch#1 -Coalesced (already) [78] print_char_cursor#85 ← print_char_cursor#12 +Coalesced (already) [78] print_char_cursor#86 ← print_char_cursor#12 Coalesced [87] print_byte::b#12 ← print_byte::b#0 -Coalesced (already) [88] print_char_cursor#76 ← print_char_cursor#65 +Coalesced (already) [88] print_char_cursor#77 ← print_char_cursor#65 Coalesced [91] print_byte::b#13 ← print_byte::b#1 -Coalesced (already) [92] print_char_cursor#77 ← print_char_cursor#12 +Coalesced (already) [92] print_char_cursor#78 ← print_char_cursor#12 Coalesced [96] print_word::w#8 ← print_word::w#0 -Coalesced [97] print_char_cursor#88 ← print_char_cursor#69 +Coalesced [97] print_char_cursor#89 ← print_char_cursor#69 Coalesced [100] print_word::w#9 ← print_word::w#1 -Coalesced (already) [101] print_char_cursor#89 ← print_char_cursor#12 +Coalesced (already) [101] print_char_cursor#90 ← print_char_cursor#12 Coalesced [110] print_cls::sc#3 ← print_cls::sc#1 Coalesced down to 7 phi equivalence classes Culled Empty Block (label) print_ln::@3 @@ -1920,7 +1930,7 @@ main: scope:[main] from @15 to:main::@1 main::@1: scope:[main] from main main::@18 [6] (byte*) print_line_cursor#19 ← phi( main::@18/(byte*) print_line_cursor#1 main/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ) - [6] (byte*) print_char_cursor#69 ← phi( main::@18/(byte*~) print_char_cursor#71 main/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ) + [6] (byte*) print_char_cursor#69 ← phi( main::@18/(byte*~) print_char_cursor#72 main/((byte*))(word/signed word/dword/signed dword) 1024 ) [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ) [6] (dword) main::dw#10 ← phi( main::@18/(dword) main::dw#1 main/(dword/signed dword) 305419896 ) [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 ] ) [7] (word~) main::$2 ← > (dword) main::dw#10 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$2 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$2 ] ) [8] (word/signed dword/dword~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ( main:2 [ main::dw#10 print_char_cursor#69 print_line_cursor#19 main::$32 ] ) @@ -1995,7 +2005,7 @@ main::@return: scope:[main] from main::@17 [47] return [ ] ( main:2 [ ] ) to:@return main::@18: scope:[main] from main::@17 - [48] (byte*~) print_char_cursor#71 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ) + [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) to:main::@1 print_ln: scope:[print_ln] from main::@16 [49] phi() [ print_line_cursor#19 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] ) @@ -2012,12 +2022,12 @@ print_byte: scope:[print_byte] from main::@11 main::@13 main::@15 main::@9 prin [54] (byte*) print_char_cursor#67 ← phi( main::@11/(byte*) print_char_cursor#12 main::@13/(byte*) print_char_cursor#12 main::@15/(byte*) print_char_cursor#12 main::@9/(byte*) print_char_cursor#12 print_word/(byte*) print_char_cursor#65 print_word::@1/(byte*) print_char_cursor#12 ) [ print_byte::b#6 print_char_cursor#67 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] ) [54] (byte) print_byte::b#6 ← phi( main::@11/(byte) print_byte::b#3 main::@13/(byte) print_byte::b#4 main::@15/(byte) print_byte::b#5 main::@9/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#6 print_char_cursor#67 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 ] ) [55] (byte~) print_byte::$0 ← (byte) print_byte::b#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#6 print_char_cursor#67 print_byte::$0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_byte::$0 ] ) - [56] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) + [56] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) [57] call print_char param-assignment [ print_char_cursor#12 print_byte::b#6 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) - [59] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) + [59] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) [60] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -2164,7 +2174,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#4 22.0 (byte) print_byte::b#5 22.0 (byte) print_byte::b#6 13.0 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#0 4.0 @@ -2176,7 +2185,7 @@ VARIABLE REGISTER WEIGHTS (byte*) print_char_cursor#65 14.0 (byte*) print_char_cursor#67 16.666666666666664 (byte*) print_char_cursor#69 1.4444444444444446 -(byte*~) print_char_cursor#71 22.0 +(byte*~) print_char_cursor#72 22.0 (void()) print_cls() (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 @@ -2184,6 +2193,7 @@ VARIABLE REGISTER WEIGHTS (void()) print_dword((dword) print_dword::dw) (dword) print_dword::dw (dword) print_dword::dw#0 5.0 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_line_cursor#1 46.42857142857143 (byte*) print_line_cursor#19 0.3333333333333333 @@ -2203,7 +2213,7 @@ Initial phi equivalence classes [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] -[ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] +[ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 ] [ print_cls::sc#2 print_cls::sc#1 ] Added variable main::$2 to zero page equivalence class [ main::$2 ] @@ -2224,7 +2234,7 @@ Complete equivalence classes [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] -[ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] +[ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 ] [ print_cls::sc#2 print_cls::sc#1 ] [ main::$2 ] @@ -2244,7 +2254,7 @@ Allocated zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ] Allocated zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] Allocated zp ZP_BYTE:8 [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Allocated zp ZP_BYTE:9 [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] -Allocated zp ZP_WORD:10 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] +Allocated zp ZP_WORD:10 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] Allocated zp ZP_WORD:12 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 ] Allocated zp ZP_WORD:14 [ print_cls::sc#2 print_cls::sc#1 ] Allocated zp ZP_WORD:16 [ main::$2 ] @@ -2596,7 +2606,7 @@ main: { rts //SEG110 main::@18 b18: - //SEG111 [48] (byte*~) print_char_cursor#71 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG111 [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -2604,7 +2614,7 @@ main: { //SEG112 [6] phi from main::@18 to main::@1 [phi:main::@18->main::@1] b1_from_b18: //SEG113 [6] phi (byte*) print_line_cursor#19 = (byte*) print_line_cursor#1 [phi:main::@18->main::@1#0] -- register_copy - //SEG114 [6] phi (byte*) print_char_cursor#69 = (byte*~) print_char_cursor#71 [phi:main::@18->main::@1#1] -- register_copy + //SEG114 [6] phi (byte*) print_char_cursor#69 = (byte*~) print_char_cursor#72 [phi:main::@18->main::@1#1] -- register_copy //SEG115 [6] phi (dword) main::dw#10 = (dword) main::dw#1 [phi:main::@18->main::@1#2] -- register_copy jmp b1 } @@ -2652,9 +2662,9 @@ print_byte: { lsr lsr sta _0 - //SEG126 [56] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG126 [56] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _0 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG127 [57] call print_char param-assignment [ print_char_cursor#12 print_byte::b#6 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] ) //SEG128 [62] phi from print_byte to print_char [phi:print_byte->print_char] @@ -2669,9 +2679,9 @@ print_byte: { lda #$f and b sta _2 - //SEG133 [59] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG133 [59] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG134 [60] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] ) //SEG135 [62] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -2684,7 +2694,6 @@ print_byte: { breturn: //SEG139 [61] return [ print_char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG140 print_char print_char: { @@ -2807,6 +2816,7 @@ print_cls: { //SEG183 [82] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp ZP_WORD:16 [ main::$2 ] has ALU potential. @@ -2827,7 +2837,7 @@ Statement [36] (byte) print_byte::b#4 ← > (word~) main::$23 [ main::dw#10 prin Statement [40] (word~) main::$27 ← < (dword) main::dw2#10 [ main::dw#10 print_line_cursor#19 main::$27 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 main::$27 print_char_cursor#12 ] ) always clobbers reg byte a Statement [41] (byte) print_byte::b#5 ← < (word~) main::$27 [ main::dw#10 print_line_cursor#19 print_byte::b#5 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 print_byte::b#5 print_char_cursor#12 ] ) always clobbers reg byte a Statement [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 [ main::dw#1 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [48] (byte*~) print_char_cursor#71 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) always clobbers reg byte a Statement [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [52] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a @@ -2855,7 +2865,7 @@ Statement [36] (byte) print_byte::b#4 ← > (word~) main::$23 [ main::dw#10 prin Statement [40] (word~) main::$27 ← < (dword) main::dw2#10 [ main::dw#10 print_line_cursor#19 main::$27 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 main::$27 print_char_cursor#12 ] ) always clobbers reg byte a Statement [41] (byte) print_byte::b#5 ← < (word~) main::$27 [ main::dw#10 print_line_cursor#19 print_byte::b#5 print_char_cursor#12 ] ( main:2 [ main::dw#10 print_line_cursor#19 print_byte::b#5 print_char_cursor#12 ] ) always clobbers reg byte a Statement [46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 [ main::dw#1 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [48] (byte*~) print_char_cursor#71 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) always clobbers reg byte a Statement [51] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [52] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#12) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 print_line_cursor#1 print_char_cursor#12 ] ) always clobbers reg byte a Statement [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) always clobbers reg byte a @@ -2870,7 +2880,7 @@ Potential registers zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ] : zp ZP_DWORD:2 , Potential registers zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] : zp ZP_WORD:6 , Potential registers zp ZP_BYTE:8 [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] : zp ZP_BYTE:8 , reg byte a , reg byte x , Potential registers zp ZP_BYTE:9 [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] : zp ZP_BYTE:9 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:10 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] : zp ZP_WORD:10 , +Potential registers zp ZP_WORD:10 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] : zp ZP_WORD:10 , Potential registers zp ZP_WORD:12 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 ] : zp ZP_WORD:12 , Potential registers zp ZP_WORD:14 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:14 , Potential registers zp ZP_WORD:16 [ main::$2 ] : zp ZP_WORD:16 , reg byte alu , @@ -2888,7 +2898,7 @@ Potential registers zp ZP_BYTE:44 [ print_byte::$0 ] : zp ZP_BYTE:44 , reg byte Potential registers zp ZP_BYTE:45 [ print_byte::$2 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [] 250.76: zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] 96.03: zp ZP_WORD:10 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] +Uplift Scope [] 250.76: zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] 96.03: zp ZP_WORD:10 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] Uplift Scope [main] 22: zp ZP_WORD:16 [ main::$2 ] 22: zp ZP_WORD:18 [ main::$32 ] 22: zp ZP_WORD:24 [ main::$5 ] 22: zp ZP_WORD:26 [ main::$33 ] 22: zp ZP_WORD:36 [ main::$15 ] 22: zp ZP_WORD:38 [ main::$19 ] 22: zp ZP_WORD:40 [ main::$23 ] 22: zp ZP_WORD:42 [ main::$27 ] 12.41: zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ] 7.33: zp ZP_DWORD:20 [ main::dw2#1 ] 3.14: zp ZP_DWORD:28 [ main::dw2#10 ] Uplift Scope [print_byte] 109: zp ZP_BYTE:8 [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] 4: zp ZP_BYTE:44 [ print_byte::$0 ] 4: zp ZP_BYTE:45 [ print_byte::$2 ] Uplift Scope [print_word] 62: zp ZP_WORD:12 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 ] @@ -2897,7 +2907,7 @@ Uplift Scope [print_char] 14: zp ZP_BYTE:9 [ print_char::ch#8 print_char::ch#0 p Uplift Scope [print_dword] 5: zp ZP_DWORD:32 [ print_dword::dw#0 ] Uplift Scope [print_ln] -Uplifting [] best 8947 combination zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] zp ZP_WORD:10 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] +Uplifting [] best 8947 combination zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 ] zp ZP_WORD:10 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] Uplifting [main] best 8947 combination zp ZP_WORD:16 [ main::$2 ] zp ZP_WORD:18 [ main::$32 ] zp ZP_WORD:24 [ main::$5 ] zp ZP_WORD:26 [ main::$33 ] zp ZP_WORD:36 [ main::$15 ] zp ZP_WORD:38 [ main::$19 ] zp ZP_WORD:40 [ main::$23 ] zp ZP_WORD:42 [ main::$27 ] zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ] zp ZP_DWORD:20 [ main::dw2#1 ] zp ZP_DWORD:28 [ main::dw2#10 ] Uplifting [print_byte] best 8895 combination reg byte x [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_byte::$0 ] reg byte a [ print_byte::$2 ] Uplifting [print_word] best 8895 combination zp ZP_WORD:12 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 ] @@ -2916,7 +2926,7 @@ Coalescing zero page register [ zp ZP_WORD:12 [ print_word::w#4 print_word::w#2 Coalescing zero page register [ zp ZP_WORD:12 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 main::$2 main::$32 main::$5 main::$33 main::$15 ] ] with [ zp ZP_WORD:38 [ main::$19 ] ] Coalescing zero page register [ zp ZP_WORD:12 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 main::$2 main::$32 main::$5 main::$33 main::$15 main::$19 ] ] with [ zp ZP_WORD:40 [ main::$23 ] ] Coalescing zero page register [ zp ZP_WORD:12 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 main::$2 main::$32 main::$5 main::$33 main::$15 main::$19 main::$23 ] ] with [ zp ZP_WORD:42 [ main::$27 ] ] -Allocated (was zp ZP_WORD:10) zp ZP_WORD:8 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] +Allocated (was zp ZP_WORD:10) zp ZP_WORD:8 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] Allocated (was zp ZP_WORD:12) zp ZP_WORD:10 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 main::$2 main::$32 main::$5 main::$33 main::$15 main::$19 main::$23 main::$27 ] Allocated (was zp ZP_DWORD:20) zp ZP_DWORD:12 [ main::dw2#1 main::dw2#10 print_dword::dw#0 ] @@ -3237,7 +3247,7 @@ main: { rts //SEG110 main::@18 b18: - //SEG111 [48] (byte*~) print_char_cursor#71 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG111 [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -3245,7 +3255,7 @@ main: { //SEG112 [6] phi from main::@18 to main::@1 [phi:main::@18->main::@1] b1_from_b18: //SEG113 [6] phi (byte*) print_line_cursor#19 = (byte*) print_line_cursor#1 [phi:main::@18->main::@1#0] -- register_copy - //SEG114 [6] phi (byte*) print_char_cursor#69 = (byte*~) print_char_cursor#71 [phi:main::@18->main::@1#1] -- register_copy + //SEG114 [6] phi (byte*) print_char_cursor#69 = (byte*~) print_char_cursor#72 [phi:main::@18->main::@1#1] -- register_copy //SEG115 [6] phi (dword) main::dw#10 = (dword) main::dw#1 [phi:main::@18->main::@1#2] -- register_copy jmp b1 } @@ -3289,9 +3299,9 @@ print_byte: { lsr lsr lsr - //SEG126 [56] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG126 [56] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG127 [57] call print_char param-assignment [ print_char_cursor#12 print_byte::b#6 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] ) //SEG128 [62] phi from print_byte to print_char [phi:print_byte->print_char] print_char_from_print_byte: @@ -3304,9 +3314,9 @@ print_byte: { //SEG132 [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG133 [59] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG133 [59] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG134 [60] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] ) //SEG135 [62] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -3318,7 +3328,6 @@ print_byte: { breturn: //SEG139 [61] return [ print_char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG140 print_char print_char: { @@ -3439,6 +3448,7 @@ print_cls: { //SEG183 [82] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" ASSEMBLER OPTIMIZATIONS Removing instruction jmp b15 @@ -3595,8 +3605,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#4 reg byte x 22.0 (byte) print_byte::b#5 reg byte x 22.0 (byte) print_byte::b#6 reg byte x 13.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -3609,7 +3617,7 @@ FINAL SYMBOL TABLE (byte*) print_char_cursor#65 print_char_cursor zp ZP_WORD:8 14.0 (byte*) print_char_cursor#67 print_char_cursor zp ZP_WORD:8 16.666666666666664 (byte*) print_char_cursor#69 print_char_cursor zp ZP_WORD:8 1.4444444444444446 -(byte*~) print_char_cursor#71 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#72 print_char_cursor zp ZP_WORD:8 22.0 (void()) print_cls() (label) print_cls::@1 (label) print_cls::@return @@ -3621,6 +3629,8 @@ FINAL SYMBOL TABLE (label) print_dword::@return (dword) print_dword::dw (dword) print_dword::dw#0 dw zp ZP_DWORD:12 5.0 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:6 46.42857142857143 (byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:6 0.3333333333333333 @@ -3643,7 +3653,7 @@ zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ] zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 print_cls::sc#2 print_cls::sc#1 ] reg byte x [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] -zp ZP_WORD:8 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] +zp ZP_WORD:8 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] zp ZP_WORD:10 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 main::$2 main::$32 main::$5 main::$33 main::$15 main::$19 main::$23 main::$27 ] zp ZP_DWORD:12 [ main::dw2#1 main::dw2#10 print_dword::dw#0 ] reg byte a [ print_byte::$0 ] @@ -3906,14 +3916,14 @@ main: { rts //SEG110 main::@18 b18: - //SEG111 [48] (byte*~) print_char_cursor#71 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#71 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG111 [48] (byte*~) print_char_cursor#72 ← (byte*) print_line_cursor#1 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ( main:2 [ main::dw#1 print_char_cursor#72 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG112 [6] phi from main::@18 to main::@1 [phi:main::@18->main::@1] //SEG113 [6] phi (byte*) print_line_cursor#19 = (byte*) print_line_cursor#1 [phi:main::@18->main::@1#0] -- register_copy - //SEG114 [6] phi (byte*) print_char_cursor#69 = (byte*~) print_char_cursor#71 [phi:main::@18->main::@1#1] -- register_copy + //SEG114 [6] phi (byte*) print_char_cursor#69 = (byte*~) print_char_cursor#72 [phi:main::@18->main::@1#1] -- register_copy //SEG115 [6] phi (dword) main::dw#10 = (dword) main::dw#1 [phi:main::@18->main::@1#2] -- register_copy jmp b1 } @@ -3952,9 +3962,9 @@ print_byte: { lsr lsr lsr - //SEG126 [56] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG126 [56] (byte) print_char::ch#0 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_byte::b#6 print_char_cursor#67 print_char::ch#0 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG127 [57] call print_char param-assignment [ print_char_cursor#12 print_byte::b#6 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::b#6 ] ) //SEG128 [62] phi from print_byte to print_char [phi:print_byte->print_char] //SEG129 [62] phi (byte*) print_char_cursor#44 = (byte*) print_char_cursor#67 [phi:print_byte->print_char#0] -- register_copy @@ -3964,9 +3974,9 @@ print_byte: { //SEG132 [58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG133 [59] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG133 [59] (byte) print_char::ch#1 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 print_char::ch#1 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG134 [60] call print_char param-assignment [ print_char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] ) //SEG135 [62] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG136 [62] phi (byte*) print_char_cursor#44 = (byte*) print_char_cursor#12 [phi:print_byte::@1->print_char#0] -- register_copy @@ -3975,7 +3985,6 @@ print_byte: { //SEG138 print_byte::@return //SEG139 [61] return [ print_char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 print_line_cursor#19 print_char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_word::w#4 print_char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_dword::dw#0 print_char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 print_line_cursor#19 main::dw2#10 print_char_cursor#12 ] ) rts - hextab: .text "0123456789abcdef" } //SEG140 print_char print_char: { @@ -4076,4 +4085,5 @@ print_cls: { //SEG183 [82] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.sym index c6d390f17..e572d63c6 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.sym @@ -46,8 +46,6 @@ (byte) print_byte::b#4 reg byte x 22.0 (byte) print_byte::b#5 reg byte x 22.0 (byte) print_byte::b#6 reg byte x 13.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -60,7 +58,7 @@ (byte*) print_char_cursor#65 print_char_cursor zp ZP_WORD:8 14.0 (byte*) print_char_cursor#67 print_char_cursor zp ZP_WORD:8 16.666666666666664 (byte*) print_char_cursor#69 print_char_cursor zp ZP_WORD:8 1.4444444444444446 -(byte*~) print_char_cursor#71 print_char_cursor zp ZP_WORD:8 22.0 +(byte*~) print_char_cursor#72 print_char_cursor zp ZP_WORD:8 22.0 (void()) print_cls() (label) print_cls::@1 (label) print_cls::@return @@ -72,6 +70,8 @@ (label) print_dword::@return (dword) print_dword::dw (dword) print_dword::dw#0 dw zp ZP_DWORD:12 5.0 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:6 46.42857142857143 (byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:6 0.3333333333333333 @@ -94,7 +94,7 @@ zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ] zp ZP_WORD:6 [ print_line_cursor#9 print_line_cursor#19 print_line_cursor#1 print_cls::sc#2 print_cls::sc#1 ] reg byte x [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ] -zp ZP_WORD:8 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#71 ] +zp ZP_WORD:8 [ print_char_cursor#44 print_char_cursor#67 print_char_cursor#12 print_char_cursor#65 print_char_cursor#69 print_char_cursor#72 ] zp ZP_WORD:10 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 main::$2 main::$32 main::$5 main::$33 main::$15 main::$19 main::$23 main::$27 ] zp ZP_DWORD:12 [ main::dw2#1 main::dw2#10 print_dword::dw#0 ] reg byte a [ print_byte::$0 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.asm b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.asm index b9414f121..2eaad41ba 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.asm @@ -243,15 +243,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char txa and #$f tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -815,6 +814,7 @@ print_cls: { bne b1 rts } + print_hextab: .text "0123456789abcdef" .align $100 mulf_sqr1_lo: .fill $200, 0 .align $100 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.cfg index eda5a78bf..e7a2d3208 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.cfg @@ -83,7 +83,7 @@ mul16s_compare::@8: scope:[mul16s_compare] from mul16s_compare::@4 [42] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@1 [ mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::i#1 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::i#1 print_line_cursor#1 ] ) to:mul16s_compare::@9 mul16s_compare::@9: scope:[mul16s_compare] from mul16s_compare::@8 - [43] (byte*~) print_char_cursor#157 ← (byte*) print_line_cursor#1 [ print_char_cursor#157 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#157 print_line_cursor#1 ] ) + [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ print_char_cursor#158 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#158 print_line_cursor#1 ] ) [44] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#112 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#112 ] ) to:mul16s_compare::@13 mul16s_compare::@13: scope:[mul16s_compare] from mul16s_compare::@9 @@ -103,7 +103,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [51] return [ print_line_cursor#1 ] ( main:2::mul16s_compare:11::print_ln:46 [ print_line_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_ln:76 [ print_line_cursor#1 ] main:2::mul16u_compare:9::print_ln:193 [ print_line_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_ln:211 [ print_line_cursor#1 ] ) to:@return print_str: scope:[print_str] from mul16s_compare::@9 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16u_compare::@9 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6 - [52] (byte*) print_char_cursor#130 ← phi( mul16s_compare::@9/(byte*~) print_char_cursor#157 mul16s_error/(byte*~) print_char_cursor#158 mul16s_error::@2/(byte*) print_char_cursor#20 mul16s_error::@4/(byte*) print_char_cursor#20 mul16s_error::@6/(byte*) print_char_cursor#20 mul16u_compare::@9/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_error/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_error::@2/(byte*) print_char_cursor#20 mul16u_error::@4/(byte*) print_char_cursor#20 mul16u_error::@6/(byte*) print_char_cursor#20 ) [ print_str::str#13 print_char_cursor#130 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::print_str:191 [ print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] ) + [52] (byte*) print_char_cursor#130 ← phi( mul16s_compare::@9/(byte*~) print_char_cursor#158 mul16s_error/(byte*~) print_char_cursor#159 mul16s_error::@2/(byte*) print_char_cursor#20 mul16s_error::@4/(byte*) print_char_cursor#20 mul16s_error::@6/(byte*) print_char_cursor#20 mul16u_compare::@9/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_error/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_error::@2/(byte*) print_char_cursor#20 mul16u_error::@4/(byte*) print_char_cursor#20 mul16u_error::@6/(byte*) print_char_cursor#20 ) [ print_str::str#13 print_char_cursor#130 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::print_str:191 [ print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] ) [52] (byte*) print_str::str#13 ← phi( mul16s_compare::@9/(const string) mul16s_compare::str mul16s_error/(const string) mul16s_error::str mul16s_error::@2/(const string) mul16s_error::str1 mul16s_error::@4/(const string) mul16s_error::str2 mul16s_error::@6/(const string) mul16s_error::str3 mul16u_compare::@9/(const string) mul16u_compare::str mul16u_error/(const string) mul16u_error::str mul16u_error::@2/(const string) mul16u_error::str1 mul16u_error::@4/(const string) mul16u_error::str2 mul16u_error::@6/(const string) mul16u_error::str3 ) [ print_str::str#13 print_char_cursor#130 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::print_str:191 [ print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -120,7 +120,7 @@ print_str::@2: scope:[print_str] from print_str::@1 [58] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#11 [ print_str::str#0 print_char_cursor#1 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::print_str:191 [ print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_str::str#0 print_char_cursor#1 ] ) to:print_str::@1 mul16s_error: scope:[mul16s_error] from mul16s_compare::@6 - [59] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#158 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#158 ] ) + [59] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#159 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#159 ] ) [60] call print_str param-assignment [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 ] ) to:mul16s_error::@1 mul16s_error::@1: scope:[mul16s_error] from mul16s_error @@ -208,12 +208,12 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [99] (byte*) print_char_cursor#120 ← phi( print_word/(byte*) print_char_cursor#116 print_word::@1/(byte*) print_char_cursor#20 ) [ print_byte::b#2 print_char_cursor#120 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] ) [99] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 print_char_cursor#120 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] ) [100] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#120 print_byte::$0 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] ) - [101] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] ) + [101] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] ) [102] call print_char param-assignment [ print_char_cursor#20 print_byte::b#2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [103] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#20 print_byte::$2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] ) - [104] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) + [104] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) [105] call print_char param-assignment [ print_char_cursor#20 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.log b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.log index 4878c0522..258e1790d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.log @@ -204,12 +204,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -538,12 +539,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1286,7 +1287,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1304,6 +1304,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -1595,13 +1596,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -2265,7 +2266,7 @@ Eliminating unused variable - keeping the call (void~) mul16s_error::$5 Eliminating unused variable - keeping the call (void~) mul16s_error::$6 Eliminating unused variable - keeping the call (void~) mul16s_error::$7 Eliminating unused variable - keeping the call (void~) mul16s_error::$8 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) mul16u_compare::str "word multiply results match!@" Creating constant string variable for inline (const string) mul16u_error::str "word multiply mismatch @" Creating constant string variable for inline (const string) mul16u_error::str1 "*@" @@ -2289,7 +2290,6 @@ Removing empty block @6 Removing empty block @7 Removing empty block @8 Removing empty block @9 -Removing empty block @10 Removing empty block @11 Removing empty block @12 Removing empty block @13 @@ -2358,7 +2358,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@19 + to:@10 print_str: scope:[print_str] from mul16s_compare::@9 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16u_compare::@9 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6 (byte*) print_char_cursor#130 ← phi( mul16s_compare::@9/(byte*) print_char_cursor#127 mul16s_error/(byte*) print_char_cursor#128 mul16s_error::@2/(byte*) print_char_cursor#47 mul16s_error::@4/(byte*) print_char_cursor#49 mul16s_error::@6/(byte*) print_char_cursor#51 mul16u_compare::@9/(byte*) print_char_cursor#124 mul16u_error/(byte*) print_char_cursor#125 mul16u_error::@2/(byte*) print_char_cursor#33 mul16u_error::@4/(byte*) print_char_cursor#35 mul16u_error::@6/(byte*) print_char_cursor#37 ) (byte*) print_str::str#13 ← phi( mul16s_compare::@9/(byte*) print_str::str#6 mul16s_error/(byte*) print_str::str#7 mul16s_error::@2/(byte*) print_str::str#8 mul16s_error::@4/(byte*) print_str::str#9 mul16s_error::@6/(byte*) print_str::str#10 mul16u_compare::@9/(byte*) print_str::str#1 mul16u_error/(byte*) print_str::str#2 mul16u_error::@2/(byte*) print_str::str#3 mul16u_error::@4/(byte*) print_str::str#4 mul16u_error::@6/(byte*) print_str::str#5 ) @@ -2524,12 +2524,17 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@3 (byte*) print_char_cursor#16 ← (byte*) print_char_cursor#72 return to:@return +@10: scope:[] from @begin + (byte*) print_screen#8 ← phi( @begin/(byte*) print_screen#0 ) + (byte*) print_char_cursor#145 ← phi( @begin/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#65 ← phi( @begin/(byte*) print_line_cursor#0 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@19 print_byte: scope:[print_byte] from print_word print_word::@1 (byte*) print_char_cursor#120 ← phi( print_word/(byte*) print_char_cursor#116 print_word::@1/(byte*) print_char_cursor#8 ) (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#2 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -2537,7 +2542,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#73 ← phi( print_byte/(byte*) print_char_cursor#21 ) (byte*) print_char_cursor#17 ← (byte*) print_char_cursor#73 (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#3 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -2689,10 +2694,10 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 (signed dword) mul16s::return#1 ← (signed dword) mul16s::return#3 return to:@return -@19: scope:[] from @begin - (byte*) print_screen#7 ← phi( @begin/(byte*) print_screen#0 ) - (byte*) print_char_cursor#138 ← phi( @begin/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#56 ← phi( @begin/(byte*) print_line_cursor#0 ) +@19: scope:[] from @10 + (byte*) print_screen#7 ← phi( @10/(byte*) print_screen#8 ) + (byte*) print_char_cursor#138 ← phi( @10/(byte*) print_char_cursor#145 ) + (byte*) print_line_cursor#56 ← phi( @10/(byte*) print_line_cursor#65 ) (byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) } @@ -2941,16 +2946,16 @@ muls16s::@return: scope:[muls16s] from muls16s::@3 return to:@return mul16u_compare: scope:[mul16u_compare] from main::@2 - (byte*) print_line_cursor#79 ← phi( main::@2/(byte*) print_line_cursor#41 ) - (byte*) print_char_cursor#151 ← phi( main::@2/(byte*) print_char_cursor#122 ) + (byte*) print_line_cursor#80 ← phi( main::@2/(byte*) print_line_cursor#41 ) + (byte*) print_char_cursor#152 ← phi( main::@2/(byte*) print_char_cursor#122 ) (byte*) BGCOL#19 ← phi( main::@2/(byte*) BGCOL#23 ) (word) mul16u_compare::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (word) mul16u_compare::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) mul16u_compare::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mul16u_compare::@1 mul16u_compare::@1: scope:[mul16u_compare] from mul16u_compare mul16u_compare::@8 - (byte*) print_line_cursor#75 ← phi( mul16u_compare/(byte*) print_line_cursor#79 mul16u_compare::@8/(byte*) print_line_cursor#59 ) - (byte*) print_char_cursor#149 ← phi( mul16u_compare/(byte*) print_char_cursor#151 mul16u_compare::@8/(byte*) print_char_cursor#134 ) + (byte*) print_line_cursor#76 ← phi( mul16u_compare/(byte*) print_line_cursor#80 mul16u_compare::@8/(byte*) print_line_cursor#59 ) + (byte*) print_char_cursor#150 ← phi( mul16u_compare/(byte*) print_char_cursor#152 mul16u_compare::@8/(byte*) print_char_cursor#134 ) (byte) mul16u_compare::i#9 ← phi( mul16u_compare/(byte) mul16u_compare::i#0 mul16u_compare::@8/(byte) mul16u_compare::i#1 ) (byte*) BGCOL#15 ← phi( mul16u_compare/(byte*) BGCOL#19 mul16u_compare::@8/(byte*) BGCOL#20 ) (word) mul16u_compare::b#5 ← phi( mul16u_compare/(word) mul16u_compare::b#0 mul16u_compare::@8/(word) mul16u_compare::b#8 ) @@ -2958,8 +2963,8 @@ mul16u_compare::@1: scope:[mul16u_compare] from mul16u_compare mul16u_compare:: (byte) mul16u_compare::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mul16u_compare::@2 mul16u_compare::@2: scope:[mul16u_compare] from mul16u_compare::@1 mul16u_compare::@4 - (byte*) print_line_cursor#71 ← phi( mul16u_compare::@1/(byte*) print_line_cursor#75 mul16u_compare::@4/(byte*) print_line_cursor#66 ) - (byte*) print_char_cursor#147 ← phi( mul16u_compare::@1/(byte*) print_char_cursor#149 mul16u_compare::@4/(byte*) print_char_cursor#141 ) + (byte*) print_line_cursor#72 ← phi( mul16u_compare::@1/(byte*) print_line_cursor#76 mul16u_compare::@4/(byte*) print_line_cursor#67 ) + (byte*) print_char_cursor#148 ← phi( mul16u_compare::@1/(byte*) print_char_cursor#150 mul16u_compare::@4/(byte*) print_char_cursor#141 ) (byte) mul16u_compare::i#8 ← phi( mul16u_compare::@1/(byte) mul16u_compare::i#9 mul16u_compare::@4/(byte) mul16u_compare::i#3 ) (byte*) BGCOL#13 ← phi( mul16u_compare::@1/(byte*) BGCOL#15 mul16u_compare::@4/(byte*) BGCOL#16 ) (byte) mul16u_compare::j#7 ← phi( mul16u_compare::@1/(byte) mul16u_compare::j#0 mul16u_compare::@4/(byte) mul16u_compare::j#1 ) @@ -2975,8 +2980,8 @@ mul16u_compare::@2: scope:[mul16u_compare] from mul16u_compare::@1 mul16u_compa (dword) muls16u::return#2 ← (dword) muls16u::return#1 to:mul16u_compare::@10 mul16u_compare::@10: scope:[mul16u_compare] from mul16u_compare::@2 - (byte*) print_line_cursor#65 ← phi( mul16u_compare::@2/(byte*) print_line_cursor#71 ) - (byte*) print_char_cursor#145 ← phi( mul16u_compare::@2/(byte*) print_char_cursor#147 ) + (byte*) print_line_cursor#66 ← phi( mul16u_compare::@2/(byte*) print_line_cursor#72 ) + (byte*) print_char_cursor#146 ← phi( mul16u_compare::@2/(byte*) print_char_cursor#148 ) (byte) mul16u_compare::i#7 ← phi( mul16u_compare::@2/(byte) mul16u_compare::i#8 ) (byte*) BGCOL#11 ← phi( mul16u_compare::@2/(byte*) BGCOL#13 ) (byte) mul16u_compare::j#6 ← phi( mul16u_compare::@2/(byte) mul16u_compare::j#7 ) @@ -2991,8 +2996,8 @@ mul16u_compare::@10: scope:[mul16u_compare] from mul16u_compare::@2 (dword) mul16u::return#3 ← (dword) mul16u::return#1 to:mul16u_compare::@11 mul16u_compare::@11: scope:[mul16u_compare] from mul16u_compare::@10 - (byte*) print_line_cursor#57 ← phi( mul16u_compare::@10/(byte*) print_line_cursor#65 ) - (byte*) print_char_cursor#139 ← phi( mul16u_compare::@10/(byte*) print_char_cursor#145 ) + (byte*) print_line_cursor#57 ← phi( mul16u_compare::@10/(byte*) print_line_cursor#66 ) + (byte*) print_char_cursor#139 ← phi( mul16u_compare::@10/(byte*) print_char_cursor#146 ) (byte) mul16u_compare::i#5 ← phi( mul16u_compare::@10/(byte) mul16u_compare::i#7 ) (word) mul16u_compare::b#9 ← phi( mul16u_compare::@10/(word) mul16u_compare::b#3 ) (word) mul16u_compare::a#9 ← phi( mul16u_compare::@10/(word) mul16u_compare::a#3 ) @@ -3036,7 +3041,7 @@ mul16u_compare::@5: scope:[mul16u_compare] from mul16u_compare::@11 to:mul16u_compare::@3 mul16u_compare::@4: scope:[mul16u_compare] from mul16u_compare::@3 (byte*) BGCOL#16 ← phi( mul16u_compare::@3/(byte*) BGCOL#5 ) - (byte*) print_line_cursor#66 ← phi( mul16u_compare::@3/(byte*) print_line_cursor#49 ) + (byte*) print_line_cursor#67 ← phi( mul16u_compare::@3/(byte*) print_line_cursor#49 ) (byte*) print_char_cursor#141 ← phi( mul16u_compare::@3/(byte*) print_char_cursor#133 ) (byte) mul16u_compare::i#3 ← phi( mul16u_compare::@3/(byte) mul16u_compare::i#4 ) (word) mul16u_compare::b#6 ← phi( mul16u_compare::@3/(word) mul16u_compare::b#7 ) @@ -3076,7 +3081,7 @@ mul16u_compare::@return: scope:[mul16u_compare] from mul16u_compare::@12 mul16u to:@return mul16u_compare::@8: scope:[mul16u_compare] from mul16u_compare::@4 (byte*) BGCOL#20 ← phi( mul16u_compare::@4/(byte*) BGCOL#16 ) - (byte*) print_line_cursor#59 ← phi( mul16u_compare::@4/(byte*) print_line_cursor#66 ) + (byte*) print_line_cursor#59 ← phi( mul16u_compare::@4/(byte*) print_line_cursor#67 ) (byte*) print_char_cursor#134 ← phi( mul16u_compare::@4/(byte*) print_char_cursor#141 ) (word) mul16u_compare::b#8 ← phi( mul16u_compare::@4/(word) mul16u_compare::b#6 ) (word) mul16u_compare::a#8 ← phi( mul16u_compare::@4/(word) mul16u_compare::a#6 ) @@ -3104,7 +3109,7 @@ mul16u_compare::@14: scope:[mul16u_compare] from mul16u_compare::@13 (byte*) print_char_cursor#31 ← (byte*) print_char_cursor#86 to:mul16u_compare::@return mul16u_error: scope:[mul16u_error] from mul16u_compare::@6 - (byte*) print_line_cursor#85 ← phi( mul16u_compare::@6/(byte*) print_line_cursor#42 ) + (byte*) print_line_cursor#86 ← phi( mul16u_compare::@6/(byte*) print_line_cursor#42 ) (dword) mul16u_error::mn#8 ← phi( mul16u_compare::@6/(dword) mul16u_error::mn#0 ) (dword) mul16u_error::ms#6 ← phi( mul16u_compare::@6/(dword) mul16u_error::ms#0 ) (word) mul16u_error::b#4 ← phi( mul16u_compare::@6/(word) mul16u_error::b#0 ) @@ -3114,7 +3119,7 @@ mul16u_error: scope:[mul16u_error] from mul16u_compare::@6 call print_str param-assignment to:mul16u_error::@1 mul16u_error::@1: scope:[mul16u_error] from mul16u_error - (byte*) print_line_cursor#83 ← phi( mul16u_error/(byte*) print_line_cursor#85 ) + (byte*) print_line_cursor#84 ← phi( mul16u_error/(byte*) print_line_cursor#86 ) (dword) mul16u_error::mn#7 ← phi( mul16u_error/(dword) mul16u_error::mn#8 ) (dword) mul16u_error::ms#5 ← phi( mul16u_error/(dword) mul16u_error::ms#6 ) (word) mul16u_error::b#3 ← phi( mul16u_error/(word) mul16u_error::b#4 ) @@ -3125,7 +3130,7 @@ mul16u_error::@1: scope:[mul16u_error] from mul16u_error call print_word param-assignment to:mul16u_error::@2 mul16u_error::@2: scope:[mul16u_error] from mul16u_error::@1 - (byte*) print_line_cursor#80 ← phi( mul16u_error::@1/(byte*) print_line_cursor#83 ) + (byte*) print_line_cursor#81 ← phi( mul16u_error::@1/(byte*) print_line_cursor#84 ) (dword) mul16u_error::mn#6 ← phi( mul16u_error::@1/(dword) mul16u_error::mn#7 ) (dword) mul16u_error::ms#4 ← phi( mul16u_error::@1/(dword) mul16u_error::ms#5 ) (word) mul16u_error::b#2 ← phi( mul16u_error::@1/(word) mul16u_error::b#3 ) @@ -3135,7 +3140,7 @@ mul16u_error::@2: scope:[mul16u_error] from mul16u_error::@1 call print_str param-assignment to:mul16u_error::@3 mul16u_error::@3: scope:[mul16u_error] from mul16u_error::@2 - (byte*) print_line_cursor#76 ← phi( mul16u_error::@2/(byte*) print_line_cursor#80 ) + (byte*) print_line_cursor#77 ← phi( mul16u_error::@2/(byte*) print_line_cursor#81 ) (dword) mul16u_error::mn#5 ← phi( mul16u_error::@2/(dword) mul16u_error::mn#6 ) (dword) mul16u_error::ms#3 ← phi( mul16u_error::@2/(dword) mul16u_error::ms#4 ) (word) mul16u_error::b#1 ← phi( mul16u_error::@2/(word) mul16u_error::b#2 ) @@ -3145,7 +3150,7 @@ mul16u_error::@3: scope:[mul16u_error] from mul16u_error::@2 call print_word param-assignment to:mul16u_error::@4 mul16u_error::@4: scope:[mul16u_error] from mul16u_error::@3 - (byte*) print_line_cursor#72 ← phi( mul16u_error::@3/(byte*) print_line_cursor#76 ) + (byte*) print_line_cursor#73 ← phi( mul16u_error::@3/(byte*) print_line_cursor#77 ) (dword) mul16u_error::mn#4 ← phi( mul16u_error::@3/(dword) mul16u_error::mn#5 ) (dword) mul16u_error::ms#2 ← phi( mul16u_error::@3/(dword) mul16u_error::ms#3 ) (byte*) print_char_cursor#90 ← phi( mul16u_error::@3/(byte*) print_char_cursor#10 ) @@ -3154,7 +3159,7 @@ mul16u_error::@4: scope:[mul16u_error] from mul16u_error::@3 call print_str param-assignment to:mul16u_error::@5 mul16u_error::@5: scope:[mul16u_error] from mul16u_error::@4 - (byte*) print_line_cursor#67 ← phi( mul16u_error::@4/(byte*) print_line_cursor#72 ) + (byte*) print_line_cursor#68 ← phi( mul16u_error::@4/(byte*) print_line_cursor#73 ) (dword) mul16u_error::mn#3 ← phi( mul16u_error::@4/(dword) mul16u_error::mn#4 ) (dword) mul16u_error::ms#1 ← phi( mul16u_error::@4/(dword) mul16u_error::ms#2 ) (byte*) print_char_cursor#91 ← phi( mul16u_error::@4/(byte*) print_char_cursor#2 ) @@ -3163,7 +3168,7 @@ mul16u_error::@5: scope:[mul16u_error] from mul16u_error::@4 call print_dword param-assignment to:mul16u_error::@6 mul16u_error::@6: scope:[mul16u_error] from mul16u_error::@5 - (byte*) print_line_cursor#60 ← phi( mul16u_error::@5/(byte*) print_line_cursor#67 ) + (byte*) print_line_cursor#60 ← phi( mul16u_error::@5/(byte*) print_line_cursor#68 ) (dword) mul16u_error::mn#2 ← phi( mul16u_error::@5/(dword) mul16u_error::mn#3 ) (byte*) print_char_cursor#92 ← phi( mul16u_error::@5/(byte*) print_char_cursor#13 ) (byte*) print_char_cursor#37 ← (byte*) print_char_cursor#92 @@ -3198,8 +3203,8 @@ mul16u_error::@return: scope:[mul16u_error] from mul16u_error::@9 return to:@return mul16s_compare: scope:[mul16s_compare] from main::@3 - (byte*) print_line_cursor#81 ← phi( main::@3/(byte*) print_line_cursor#6 ) - (byte*) print_char_cursor#152 ← phi( main::@3/(byte*) print_char_cursor#25 ) + (byte*) print_line_cursor#82 ← phi( main::@3/(byte*) print_line_cursor#6 ) + (byte*) print_char_cursor#153 ← phi( main::@3/(byte*) print_char_cursor#25 ) (byte*) BGCOL#21 ← phi( main::@3/(byte*) BGCOL#24 ) (signed word/signed dword~) mul16s_compare::$0 ← - (word/signed word/dword/signed dword) 32767 (signed word) mul16s_compare::a#0 ← (signed word/signed dword~) mul16s_compare::$0 @@ -3208,8 +3213,8 @@ mul16s_compare: scope:[mul16s_compare] from main::@3 (byte) mul16s_compare::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mul16s_compare::@1 mul16s_compare::@1: scope:[mul16s_compare] from mul16s_compare mul16s_compare::@8 - (byte*) print_line_cursor#77 ← phi( mul16s_compare/(byte*) print_line_cursor#81 mul16s_compare::@8/(byte*) print_line_cursor#63 ) - (byte*) print_char_cursor#150 ← phi( mul16s_compare/(byte*) print_char_cursor#152 mul16s_compare::@8/(byte*) print_char_cursor#136 ) + (byte*) print_line_cursor#78 ← phi( mul16s_compare/(byte*) print_line_cursor#82 mul16s_compare::@8/(byte*) print_line_cursor#63 ) + (byte*) print_char_cursor#151 ← phi( mul16s_compare/(byte*) print_char_cursor#153 mul16s_compare::@8/(byte*) print_char_cursor#136 ) (byte) mul16s_compare::i#9 ← phi( mul16s_compare/(byte) mul16s_compare::i#0 mul16s_compare::@8/(byte) mul16s_compare::i#1 ) (byte*) BGCOL#17 ← phi( mul16s_compare/(byte*) BGCOL#21 mul16s_compare::@8/(byte*) BGCOL#22 ) (signed word) mul16s_compare::b#5 ← phi( mul16s_compare/(signed word) mul16s_compare::b#0 mul16s_compare::@8/(signed word) mul16s_compare::b#8 ) @@ -3217,8 +3222,8 @@ mul16s_compare::@1: scope:[mul16s_compare] from mul16s_compare mul16s_compare:: (byte) mul16s_compare::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mul16s_compare::@2 mul16s_compare::@2: scope:[mul16s_compare] from mul16s_compare::@1 mul16s_compare::@4 - (byte*) print_line_cursor#73 ← phi( mul16s_compare::@1/(byte*) print_line_cursor#77 mul16s_compare::@4/(byte*) print_line_cursor#69 ) - (byte*) print_char_cursor#148 ← phi( mul16s_compare::@1/(byte*) print_char_cursor#150 mul16s_compare::@4/(byte*) print_char_cursor#144 ) + (byte*) print_line_cursor#74 ← phi( mul16s_compare::@1/(byte*) print_line_cursor#78 mul16s_compare::@4/(byte*) print_line_cursor#70 ) + (byte*) print_char_cursor#149 ← phi( mul16s_compare::@1/(byte*) print_char_cursor#151 mul16s_compare::@4/(byte*) print_char_cursor#144 ) (byte) mul16s_compare::i#8 ← phi( mul16s_compare::@1/(byte) mul16s_compare::i#9 mul16s_compare::@4/(byte) mul16s_compare::i#3 ) (byte*) BGCOL#14 ← phi( mul16s_compare::@1/(byte*) BGCOL#17 mul16s_compare::@4/(byte*) BGCOL#18 ) (byte) mul16s_compare::j#7 ← phi( mul16s_compare::@1/(byte) mul16s_compare::j#0 mul16s_compare::@4/(byte) mul16s_compare::j#1 ) @@ -3234,8 +3239,8 @@ mul16s_compare::@2: scope:[mul16s_compare] from mul16s_compare::@1 mul16s_compa (signed dword) muls16s::return#2 ← (signed dword) muls16s::return#1 to:mul16s_compare::@10 mul16s_compare::@10: scope:[mul16s_compare] from mul16s_compare::@2 - (byte*) print_line_cursor#68 ← phi( mul16s_compare::@2/(byte*) print_line_cursor#73 ) - (byte*) print_char_cursor#146 ← phi( mul16s_compare::@2/(byte*) print_char_cursor#148 ) + (byte*) print_line_cursor#69 ← phi( mul16s_compare::@2/(byte*) print_line_cursor#74 ) + (byte*) print_char_cursor#147 ← phi( mul16s_compare::@2/(byte*) print_char_cursor#149 ) (byte) mul16s_compare::i#7 ← phi( mul16s_compare::@2/(byte) mul16s_compare::i#8 ) (byte*) BGCOL#12 ← phi( mul16s_compare::@2/(byte*) BGCOL#14 ) (byte) mul16s_compare::j#6 ← phi( mul16s_compare::@2/(byte) mul16s_compare::j#7 ) @@ -3250,8 +3255,8 @@ mul16s_compare::@10: scope:[mul16s_compare] from mul16s_compare::@2 (signed dword) mul16s::return#2 ← (signed dword) mul16s::return#1 to:mul16s_compare::@11 mul16s_compare::@11: scope:[mul16s_compare] from mul16s_compare::@10 - (byte*) print_line_cursor#61 ← phi( mul16s_compare::@10/(byte*) print_line_cursor#68 ) - (byte*) print_char_cursor#142 ← phi( mul16s_compare::@10/(byte*) print_char_cursor#146 ) + (byte*) print_line_cursor#61 ← phi( mul16s_compare::@10/(byte*) print_line_cursor#69 ) + (byte*) print_char_cursor#142 ← phi( mul16s_compare::@10/(byte*) print_char_cursor#147 ) (byte) mul16s_compare::i#5 ← phi( mul16s_compare::@10/(byte) mul16s_compare::i#7 ) (signed word) mul16s_compare::b#9 ← phi( mul16s_compare::@10/(signed word) mul16s_compare::b#3 ) (signed word) mul16s_compare::a#9 ← phi( mul16s_compare::@10/(signed word) mul16s_compare::a#3 ) @@ -3295,7 +3300,7 @@ mul16s_compare::@5: scope:[mul16s_compare] from mul16s_compare::@11 to:mul16s_compare::@3 mul16s_compare::@4: scope:[mul16s_compare] from mul16s_compare::@3 (byte*) BGCOL#18 ← phi( mul16s_compare::@3/(byte*) BGCOL#6 ) - (byte*) print_line_cursor#69 ← phi( mul16s_compare::@3/(byte*) print_line_cursor#52 ) + (byte*) print_line_cursor#70 ← phi( mul16s_compare::@3/(byte*) print_line_cursor#52 ) (byte*) print_char_cursor#144 ← phi( mul16s_compare::@3/(byte*) print_char_cursor#135 ) (byte) mul16s_compare::i#3 ← phi( mul16s_compare::@3/(byte) mul16s_compare::i#4 ) (signed word) mul16s_compare::b#6 ← phi( mul16s_compare::@3/(signed word) mul16s_compare::b#7 ) @@ -3335,7 +3340,7 @@ mul16s_compare::@return: scope:[mul16s_compare] from mul16s_compare::@12 mul16s to:@return mul16s_compare::@8: scope:[mul16s_compare] from mul16s_compare::@4 (byte*) BGCOL#22 ← phi( mul16s_compare::@4/(byte*) BGCOL#18 ) - (byte*) print_line_cursor#63 ← phi( mul16s_compare::@4/(byte*) print_line_cursor#69 ) + (byte*) print_line_cursor#63 ← phi( mul16s_compare::@4/(byte*) print_line_cursor#70 ) (byte*) print_char_cursor#136 ← phi( mul16s_compare::@4/(byte*) print_char_cursor#144 ) (signed word) mul16s_compare::b#8 ← phi( mul16s_compare::@4/(signed word) mul16s_compare::b#6 ) (signed word) mul16s_compare::a#8 ← phi( mul16s_compare::@4/(signed word) mul16s_compare::a#6 ) @@ -3363,7 +3368,7 @@ mul16s_compare::@14: scope:[mul16s_compare] from mul16s_compare::@13 (byte*) print_char_cursor#45 ← (byte*) print_char_cursor#100 to:mul16s_compare::@return mul16s_error: scope:[mul16s_error] from mul16s_compare::@6 - (byte*) print_line_cursor#86 ← phi( mul16s_compare::@6/(byte*) print_line_cursor#45 ) + (byte*) print_line_cursor#87 ← phi( mul16s_compare::@6/(byte*) print_line_cursor#45 ) (signed dword) mul16s_error::mn#8 ← phi( mul16s_compare::@6/(signed dword) mul16s_error::mn#0 ) (signed dword) mul16s_error::ms#6 ← phi( mul16s_compare::@6/(signed dword) mul16s_error::ms#0 ) (signed word) mul16s_error::b#4 ← phi( mul16s_compare::@6/(signed word) mul16s_error::b#0 ) @@ -3373,7 +3378,7 @@ mul16s_error: scope:[mul16s_error] from mul16s_compare::@6 call print_str param-assignment to:mul16s_error::@1 mul16s_error::@1: scope:[mul16s_error] from mul16s_error - (byte*) print_line_cursor#84 ← phi( mul16s_error/(byte*) print_line_cursor#86 ) + (byte*) print_line_cursor#85 ← phi( mul16s_error/(byte*) print_line_cursor#87 ) (signed dword) mul16s_error::mn#7 ← phi( mul16s_error/(signed dword) mul16s_error::mn#8 ) (signed dword) mul16s_error::ms#5 ← phi( mul16s_error/(signed dword) mul16s_error::ms#6 ) (signed word) mul16s_error::b#3 ← phi( mul16s_error/(signed word) mul16s_error::b#4 ) @@ -3384,7 +3389,7 @@ mul16s_error::@1: scope:[mul16s_error] from mul16s_error call print_sword param-assignment to:mul16s_error::@2 mul16s_error::@2: scope:[mul16s_error] from mul16s_error::@1 - (byte*) print_line_cursor#82 ← phi( mul16s_error::@1/(byte*) print_line_cursor#84 ) + (byte*) print_line_cursor#83 ← phi( mul16s_error::@1/(byte*) print_line_cursor#85 ) (signed dword) mul16s_error::mn#6 ← phi( mul16s_error::@1/(signed dword) mul16s_error::mn#7 ) (signed dword) mul16s_error::ms#4 ← phi( mul16s_error::@1/(signed dword) mul16s_error::ms#5 ) (signed word) mul16s_error::b#2 ← phi( mul16s_error::@1/(signed word) mul16s_error::b#3 ) @@ -3394,7 +3399,7 @@ mul16s_error::@2: scope:[mul16s_error] from mul16s_error::@1 call print_str param-assignment to:mul16s_error::@3 mul16s_error::@3: scope:[mul16s_error] from mul16s_error::@2 - (byte*) print_line_cursor#78 ← phi( mul16s_error::@2/(byte*) print_line_cursor#82 ) + (byte*) print_line_cursor#79 ← phi( mul16s_error::@2/(byte*) print_line_cursor#83 ) (signed dword) mul16s_error::mn#5 ← phi( mul16s_error::@2/(signed dword) mul16s_error::mn#6 ) (signed dword) mul16s_error::ms#3 ← phi( mul16s_error::@2/(signed dword) mul16s_error::ms#4 ) (signed word) mul16s_error::b#1 ← phi( mul16s_error::@2/(signed word) mul16s_error::b#2 ) @@ -3404,7 +3409,7 @@ mul16s_error::@3: scope:[mul16s_error] from mul16s_error::@2 call print_sword param-assignment to:mul16s_error::@4 mul16s_error::@4: scope:[mul16s_error] from mul16s_error::@3 - (byte*) print_line_cursor#74 ← phi( mul16s_error::@3/(byte*) print_line_cursor#78 ) + (byte*) print_line_cursor#75 ← phi( mul16s_error::@3/(byte*) print_line_cursor#79 ) (signed dword) mul16s_error::mn#4 ← phi( mul16s_error::@3/(signed dword) mul16s_error::mn#5 ) (signed dword) mul16s_error::ms#2 ← phi( mul16s_error::@3/(signed dword) mul16s_error::ms#3 ) (byte*) print_char_cursor#104 ← phi( mul16s_error::@3/(byte*) print_char_cursor#7 ) @@ -3413,7 +3418,7 @@ mul16s_error::@4: scope:[mul16s_error] from mul16s_error::@3 call print_str param-assignment to:mul16s_error::@5 mul16s_error::@5: scope:[mul16s_error] from mul16s_error::@4 - (byte*) print_line_cursor#70 ← phi( mul16s_error::@4/(byte*) print_line_cursor#74 ) + (byte*) print_line_cursor#71 ← phi( mul16s_error::@4/(byte*) print_line_cursor#75 ) (signed dword) mul16s_error::mn#3 ← phi( mul16s_error::@4/(signed dword) mul16s_error::mn#4 ) (signed dword) mul16s_error::ms#1 ← phi( mul16s_error::@4/(signed dword) mul16s_error::ms#2 ) (byte*) print_char_cursor#105 ← phi( mul16s_error::@4/(byte*) print_char_cursor#2 ) @@ -3422,7 +3427,7 @@ mul16s_error::@5: scope:[mul16s_error] from mul16s_error::@4 call print_sdword param-assignment to:mul16s_error::@6 mul16s_error::@6: scope:[mul16s_error] from mul16s_error::@5 - (byte*) print_line_cursor#64 ← phi( mul16s_error::@5/(byte*) print_line_cursor#70 ) + (byte*) print_line_cursor#64 ← phi( mul16s_error::@5/(byte*) print_line_cursor#71 ) (signed dword) mul16s_error::mn#2 ← phi( mul16s_error::@5/(signed dword) mul16s_error::mn#3 ) (byte*) print_char_cursor#106 ← phi( mul16s_error::@5/(byte*) print_char_cursor#16 ) (byte*) print_char_cursor#51 ← (byte*) print_char_cursor#106 @@ -3472,6 +3477,8 @@ mul16s_error::@return: scope:[mul16s_error] from mul16s_error::@9 @end: scope:[] from @30 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" +(label) @10 (label) @19 (label) @22 (label) @29 @@ -4058,7 +4065,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -4067,8 +4073,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#1 (byte) print_byte::b#2 (byte) print_byte::b#3 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -4139,6 +4143,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#150 (byte*) print_char_cursor#151 (byte*) print_char_cursor#152 +(byte*) print_char_cursor#153 (byte*) print_char_cursor#16 (byte*) print_char_cursor#17 (byte*) print_char_cursor#18 @@ -4253,6 +4258,8 @@ SYMBOL TABLE SSA (dword) print_dword::dw#2 (dword) print_dword::dw#3 (dword) print_dword::dw#4 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -4340,6 +4347,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#84 (byte*) print_line_cursor#85 (byte*) print_line_cursor#86 +(byte*) print_line_cursor#87 (byte*) print_line_cursor#9 (void()) print_ln() (byte*~) print_ln::$0 @@ -4356,6 +4364,7 @@ SYMBOL TABLE SSA (byte*) print_screen#5 (byte*) print_screen#6 (byte*) print_screen#7 +(byte*) print_screen#8 (void()) print_sdword((signed dword) print_sdword::dw) (boolean~) print_sdword::$0 (boolean~) print_sdword::$1 @@ -4500,8 +4509,8 @@ Not aliassing identity: muls16s::a#3 muls16s::a#3 Not aliassing identity: muls16s::b#2 muls16s::b#2 Not aliassing identity: muls16s::a#4 muls16s::a#4 Not aliassing across scopes: BGCOL#19 BGCOL#23 -Not aliassing across scopes: print_char_cursor#151 print_char_cursor#122 -Not aliassing across scopes: print_line_cursor#79 print_line_cursor#41 +Not aliassing across scopes: print_char_cursor#152 print_char_cursor#122 +Not aliassing across scopes: print_line_cursor#80 print_line_cursor#41 Not aliassing across scopes: muls16u::a#0 mul16u_compare::a#1 Not aliassing across scopes: muls16u::b#0 mul16u_compare::b#1 Not aliassing across scopes: muls16u::return#2 muls16u::return#1 @@ -4524,7 +4533,7 @@ Not aliassing across scopes: mul16u_error::a#2 mul16u_error::a#0 Not aliassing across scopes: mul16u_error::b#4 mul16u_error::b#0 Not aliassing across scopes: mul16u_error::ms#6 mul16u_error::ms#0 Not aliassing across scopes: mul16u_error::mn#8 mul16u_error::mn#0 -Not aliassing across scopes: print_line_cursor#85 print_line_cursor#42 +Not aliassing across scopes: print_line_cursor#86 print_line_cursor#42 Not aliassing across scopes: print_char_cursor#87 print_char_cursor#2 Not aliassing across scopes: print_word::w#3 mul16u_error::a#1 Not aliassing across scopes: print_char_cursor#88 print_char_cursor#10 @@ -4540,8 +4549,8 @@ Not aliassing across scopes: print_char_cursor#94 print_char_cursor#13 Not aliassing across scopes: print_line_cursor#31 print_line_cursor#2 Not aliassing across scopes: print_char_cursor#95 print_char_cursor#4 Not aliassing across scopes: BGCOL#21 BGCOL#24 -Not aliassing across scopes: print_char_cursor#152 print_char_cursor#25 -Not aliassing across scopes: print_line_cursor#81 print_line_cursor#6 +Not aliassing across scopes: print_char_cursor#153 print_char_cursor#25 +Not aliassing across scopes: print_line_cursor#82 print_line_cursor#6 Not aliassing across scopes: muls16s::a#0 mul16s_compare::a#1 Not aliassing across scopes: muls16s::b#0 mul16s_compare::b#1 Not aliassing across scopes: muls16s::return#2 muls16s::return#1 @@ -4564,7 +4573,7 @@ Not aliassing across scopes: mul16s_error::a#2 mul16s_error::a#0 Not aliassing across scopes: mul16s_error::b#4 mul16s_error::b#0 Not aliassing across scopes: mul16s_error::ms#6 mul16s_error::ms#0 Not aliassing across scopes: mul16s_error::mn#8 mul16s_error::mn#0 -Not aliassing across scopes: print_line_cursor#86 print_line_cursor#45 +Not aliassing across scopes: print_line_cursor#87 print_line_cursor#45 Not aliassing across scopes: print_char_cursor#101 print_char_cursor#2 Not aliassing across scopes: print_sword::w#1 mul16s_error::a#1 Not aliassing across scopes: print_char_cursor#102 print_char_cursor#7 @@ -4581,7 +4590,7 @@ Not aliassing across scopes: print_line_cursor#36 print_line_cursor#2 Not aliassing across scopes: print_char_cursor#109 print_char_cursor#4 Not aliassing across scopes: print_line_cursor#38 print_line_cursor#8 Not aliassing across scopes: print_char_cursor#111 print_char_cursor#27 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#56 (byte*) print_char_cursor#138 (byte*) print_screen#7 (byte*) print_line_cursor#55 (byte*) print_char_cursor#137 (byte*) print_screen#6 (byte*) print_line_cursor#48 (byte*) print_char_cursor#129 (byte*) print_screen#5 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#65 (byte*) print_char_cursor#145 (byte*) print_screen#8 (byte*) print_line_cursor#56 (byte*) print_char_cursor#138 (byte*) print_screen#7 (byte*) print_line_cursor#55 (byte*) print_char_cursor#137 (byte*) print_screen#6 (byte*) print_line_cursor#48 (byte*) print_char_cursor#129 (byte*) print_screen#5 Alias (byte*) print_str::str#11 = (byte*) print_str::str#12 Alias (byte*) print_char_cursor#112 = (byte*) print_char_cursor#57 (byte*) print_char_cursor#58 (byte*) print_char_cursor#2 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#21 (byte*) print_char_cursor#3 (byte*) print_line_cursor#22 (byte*) print_char_cursor#60 (byte*) print_line_cursor#2 (byte*) print_char_cursor#4 @@ -4665,8 +4674,8 @@ Alias (dword) muls16u::return#2 = (dword) muls16u::return#4 Alias (byte) mul16u_compare::j#4 = (byte) mul16u_compare::j#6 (byte) mul16u_compare::j#7 (byte) mul16u_compare::j#5 Alias (byte*) BGCOL#11 = (byte*) BGCOL#13 (byte*) BGCOL#7 (byte*) BGCOL#8 Alias (byte) mul16u_compare::i#5 = (byte) mul16u_compare::i#7 (byte) mul16u_compare::i#8 (byte) mul16u_compare::i#6 -Alias (byte*) print_char_cursor#139 = (byte*) print_char_cursor#145 (byte*) print_char_cursor#147 (byte*) print_char_cursor#140 -Alias (byte*) print_line_cursor#57 = (byte*) print_line_cursor#65 (byte*) print_line_cursor#71 (byte*) print_line_cursor#58 +Alias (byte*) print_char_cursor#139 = (byte*) print_char_cursor#146 (byte*) print_char_cursor#148 (byte*) print_char_cursor#140 +Alias (byte*) print_line_cursor#57 = (byte*) print_line_cursor#66 (byte*) print_line_cursor#72 (byte*) print_line_cursor#58 Alias (dword) mul16u_compare::ms#0 = (dword~) mul16u_compare::$2 (dword) mul16u_compare::ms#1 (dword) mul16u_compare::ms#4 Alias (dword) mul16u::return#3 = (dword) mul16u::return#6 Alias (dword) mul16u_compare::mn#0 = (dword~) mul16u_compare::$3 (dword) mul16u_compare::mn#3 @@ -4675,7 +4684,7 @@ Alias (word) mul16u_compare::a#4 = (word) mul16u_compare::a#6 (word) mul16u_comp Alias (word) mul16u_compare::b#4 = (word) mul16u_compare::b#6 (word) mul16u_compare::b#7 (word) mul16u_compare::b#8 Alias (byte) mul16u_compare::i#2 = (byte) mul16u_compare::i#3 (byte) mul16u_compare::i#4 Alias (byte*) print_char_cursor#123 = (byte*) print_char_cursor#141 (byte*) print_char_cursor#133 (byte*) print_char_cursor#134 (byte*) print_char_cursor#124 -Alias (byte*) print_line_cursor#42 = (byte*) print_line_cursor#66 (byte*) print_line_cursor#49 (byte*) print_line_cursor#59 (byte*) print_line_cursor#50 (byte*) print_line_cursor#43 +Alias (byte*) print_line_cursor#42 = (byte*) print_line_cursor#67 (byte*) print_line_cursor#49 (byte*) print_line_cursor#59 (byte*) print_line_cursor#50 (byte*) print_line_cursor#43 Alias (byte*) BGCOL#16 = (byte*) BGCOL#5 (byte*) BGCOL#2 (byte*) BGCOL#20 Alias (dword) mul16u_compare::ms#2 = (dword) mul16u_compare::ms#3 Alias (dword) mul16u_compare::mn#1 = (dword) mul16u_compare::mn#2 @@ -4690,7 +4699,7 @@ Alias (word) mul16u_error::a#1 = (word) mul16u_error::a#2 Alias (word) mul16u_error::b#1 = (word) mul16u_error::b#3 (word) mul16u_error::b#4 (word) mul16u_error::b#2 Alias (dword) mul16u_error::ms#1 = (dword) mul16u_error::ms#5 (dword) mul16u_error::ms#6 (dword) mul16u_error::ms#4 (dword) mul16u_error::ms#3 (dword) mul16u_error::ms#2 Alias (dword) mul16u_error::mn#1 = (dword) mul16u_error::mn#7 (dword) mul16u_error::mn#8 (dword) mul16u_error::mn#6 (dword) mul16u_error::mn#5 (dword) mul16u_error::mn#4 (dword) mul16u_error::mn#3 (dword) mul16u_error::mn#2 -Alias (byte*) print_line_cursor#44 = (byte*) print_line_cursor#83 (byte*) print_line_cursor#85 (byte*) print_line_cursor#80 (byte*) print_line_cursor#76 (byte*) print_line_cursor#72 (byte*) print_line_cursor#67 (byte*) print_line_cursor#60 (byte*) print_line_cursor#51 +Alias (byte*) print_line_cursor#44 = (byte*) print_line_cursor#84 (byte*) print_line_cursor#86 (byte*) print_line_cursor#81 (byte*) print_line_cursor#77 (byte*) print_line_cursor#73 (byte*) print_line_cursor#68 (byte*) print_line_cursor#60 (byte*) print_line_cursor#51 Alias (byte*) print_char_cursor#32 = (byte*) print_char_cursor#87 Alias (byte*) print_char_cursor#33 = (byte*) print_char_cursor#88 Alias (byte*) print_char_cursor#34 = (byte*) print_char_cursor#89 @@ -4709,8 +4718,8 @@ Alias (signed dword) muls16s::return#2 = (signed dword) muls16s::return#4 Alias (byte) mul16s_compare::j#4 = (byte) mul16s_compare::j#6 (byte) mul16s_compare::j#7 (byte) mul16s_compare::j#5 Alias (byte*) BGCOL#10 = (byte*) BGCOL#12 (byte*) BGCOL#14 (byte*) BGCOL#9 Alias (byte) mul16s_compare::i#5 = (byte) mul16s_compare::i#7 (byte) mul16s_compare::i#8 (byte) mul16s_compare::i#6 -Alias (byte*) print_char_cursor#142 = (byte*) print_char_cursor#146 (byte*) print_char_cursor#148 (byte*) print_char_cursor#143 -Alias (byte*) print_line_cursor#61 = (byte*) print_line_cursor#68 (byte*) print_line_cursor#73 (byte*) print_line_cursor#62 +Alias (byte*) print_char_cursor#142 = (byte*) print_char_cursor#147 (byte*) print_char_cursor#149 (byte*) print_char_cursor#143 +Alias (byte*) print_line_cursor#61 = (byte*) print_line_cursor#69 (byte*) print_line_cursor#74 (byte*) print_line_cursor#62 Alias (signed dword) mul16s_compare::ms#0 = (signed dword~) mul16s_compare::$4 (signed dword) mul16s_compare::ms#1 (signed dword) mul16s_compare::ms#4 Alias (signed dword) mul16s::return#2 = (signed dword) mul16s::return#4 Alias (signed dword) mul16s_compare::mn#0 = (signed dword~) mul16s_compare::$5 (signed dword) mul16s_compare::mn#3 @@ -4719,7 +4728,7 @@ Alias (signed word) mul16s_compare::a#4 = (signed word) mul16s_compare::a#6 (sig Alias (signed word) mul16s_compare::b#4 = (signed word) mul16s_compare::b#6 (signed word) mul16s_compare::b#7 (signed word) mul16s_compare::b#8 Alias (byte) mul16s_compare::i#2 = (byte) mul16s_compare::i#3 (byte) mul16s_compare::i#4 Alias (byte*) print_char_cursor#126 = (byte*) print_char_cursor#144 (byte*) print_char_cursor#135 (byte*) print_char_cursor#136 (byte*) print_char_cursor#127 -Alias (byte*) print_line_cursor#45 = (byte*) print_line_cursor#69 (byte*) print_line_cursor#52 (byte*) print_line_cursor#63 (byte*) print_line_cursor#53 (byte*) print_line_cursor#46 +Alias (byte*) print_line_cursor#45 = (byte*) print_line_cursor#70 (byte*) print_line_cursor#52 (byte*) print_line_cursor#63 (byte*) print_line_cursor#53 (byte*) print_line_cursor#46 Alias (byte*) BGCOL#18 = (byte*) BGCOL#6 (byte*) BGCOL#3 (byte*) BGCOL#22 Alias (signed dword) mul16s_compare::ms#2 = (signed dword) mul16s_compare::ms#3 Alias (signed dword) mul16s_compare::mn#1 = (signed dword) mul16s_compare::mn#2 @@ -4734,7 +4743,7 @@ Alias (signed word) mul16s_error::a#1 = (signed word) mul16s_error::a#2 Alias (signed word) mul16s_error::b#1 = (signed word) mul16s_error::b#3 (signed word) mul16s_error::b#4 (signed word) mul16s_error::b#2 Alias (signed dword) mul16s_error::ms#1 = (signed dword) mul16s_error::ms#5 (signed dword) mul16s_error::ms#6 (signed dword) mul16s_error::ms#4 (signed dword) mul16s_error::ms#3 (signed dword) mul16s_error::ms#2 Alias (signed dword) mul16s_error::mn#1 = (signed dword) mul16s_error::mn#7 (signed dword) mul16s_error::mn#8 (signed dword) mul16s_error::mn#6 (signed dword) mul16s_error::mn#5 (signed dword) mul16s_error::mn#4 (signed dword) mul16s_error::mn#3 (signed dword) mul16s_error::mn#2 -Alias (byte*) print_line_cursor#47 = (byte*) print_line_cursor#84 (byte*) print_line_cursor#86 (byte*) print_line_cursor#82 (byte*) print_line_cursor#78 (byte*) print_line_cursor#74 (byte*) print_line_cursor#70 (byte*) print_line_cursor#64 (byte*) print_line_cursor#54 +Alias (byte*) print_line_cursor#47 = (byte*) print_line_cursor#85 (byte*) print_line_cursor#87 (byte*) print_line_cursor#83 (byte*) print_line_cursor#79 (byte*) print_line_cursor#75 (byte*) print_line_cursor#71 (byte*) print_line_cursor#64 (byte*) print_line_cursor#54 Alias (byte*) print_char_cursor#101 = (byte*) print_char_cursor#46 Alias (byte*) print_char_cursor#102 = (byte*) print_char_cursor#47 Alias (byte*) print_char_cursor#103 = (byte*) print_char_cursor#48 @@ -4806,8 +4815,8 @@ Not aliassing identity: muls16s::a#3 muls16s::a#3 Not aliassing identity: muls16s::b#2 muls16s::b#2 Not aliassing identity: muls16s::a#4 muls16s::a#4 Not aliassing across scopes: BGCOL#19 BGCOL#1 -Not aliassing across scopes: print_char_cursor#151 print_char_cursor#122 -Not aliassing across scopes: print_line_cursor#79 print_line_cursor#24 +Not aliassing across scopes: print_char_cursor#152 print_char_cursor#122 +Not aliassing across scopes: print_line_cursor#80 print_line_cursor#24 Not aliassing across scopes: muls16u::a#0 mul16u_compare::a#1 Not aliassing across scopes: muls16u::b#0 mul16u_compare::b#1 Not aliassing across scopes: muls16u::return#2 muls16u::return#0 @@ -4846,8 +4855,8 @@ Not aliassing across scopes: print_char_cursor#39 print_char_cursor#12 Not aliassing across scopes: print_line_cursor#12 print_line_cursor#1 Not aliassing across scopes: print_char_cursor#40 print_line_cursor#1 Not aliassing across scopes: BGCOL#21 BGCOL#1 -Not aliassing across scopes: print_char_cursor#152 print_char_cursor#25 -Not aliassing across scopes: print_line_cursor#81 print_line_cursor#25 +Not aliassing across scopes: print_char_cursor#153 print_char_cursor#25 +Not aliassing across scopes: print_line_cursor#82 print_line_cursor#25 Not aliassing across scopes: muls16s::a#0 mul16s_compare::a#1 Not aliassing across scopes: muls16s::b#0 mul16s_compare::b#1 Not aliassing across scopes: muls16s::return#2 muls16s::return#0 @@ -4973,8 +4982,8 @@ Not aliassing identity: muls16s::a#3 muls16s::a#3 Not aliassing identity: muls16s::b#2 muls16s::b#2 Not aliassing identity: muls16s::a#4 muls16s::a#4 Not aliassing across scopes: BGCOL#19 BGCOL#1 -Not aliassing across scopes: print_char_cursor#151 print_char_cursor#122 -Not aliassing across scopes: print_line_cursor#79 print_line_cursor#24 +Not aliassing across scopes: print_char_cursor#152 print_char_cursor#122 +Not aliassing across scopes: print_line_cursor#80 print_line_cursor#24 Not aliassing across scopes: muls16u::a#0 mul16u_compare::a#1 Not aliassing across scopes: muls16u::b#0 mul16u_compare::b#1 Not aliassing across scopes: muls16u::return#2 muls16u::return#0 @@ -5013,8 +5022,8 @@ Not aliassing across scopes: print_char_cursor#39 print_char_cursor#12 Not aliassing across scopes: print_line_cursor#12 print_line_cursor#1 Not aliassing across scopes: print_char_cursor#40 print_line_cursor#1 Not aliassing across scopes: BGCOL#21 BGCOL#1 -Not aliassing across scopes: print_char_cursor#152 print_char_cursor#25 -Not aliassing across scopes: print_line_cursor#81 print_line_cursor#25 +Not aliassing across scopes: print_char_cursor#153 print_char_cursor#25 +Not aliassing across scopes: print_line_cursor#82 print_line_cursor#25 Not aliassing across scopes: muls16s::a#0 mul16s_compare::a#1 Not aliassing across scopes: muls16s::b#0 mul16s_compare::b#1 Not aliassing across scopes: muls16s::return#2 muls16s::return#0 @@ -5107,12 +5116,12 @@ Redundant Phi (signed word) muls16s::a#3 (signed word) muls16s::a#1 Redundant Phi (signed word) muls16s::b#2 (signed word) muls16s::b#3 Redundant Phi (signed word) muls16s::a#4 (signed word) muls16s::a#1 Redundant Phi (byte*) BGCOL#19 (byte*) BGCOL#1 -Redundant Phi (byte*) print_char_cursor#151 (byte*) print_char_cursor#122 -Redundant Phi (byte*) print_line_cursor#79 (byte*) print_line_cursor#24 +Redundant Phi (byte*) print_char_cursor#152 (byte*) print_char_cursor#122 +Redundant Phi (byte*) print_line_cursor#80 (byte*) print_line_cursor#24 Redundant Phi (byte*) BGCOL#11 (byte*) BGCOL#15 Redundant Phi (byte) mul16u_compare::i#2 (byte) mul16u_compare::i#9 -Redundant Phi (byte*) print_char_cursor#123 (byte*) print_char_cursor#149 -Redundant Phi (byte*) print_line_cursor#42 (byte*) print_line_cursor#75 +Redundant Phi (byte*) print_char_cursor#123 (byte*) print_char_cursor#150 +Redundant Phi (byte*) print_line_cursor#42 (byte*) print_line_cursor#76 Redundant Phi (byte*) print_char_cursor#28 (byte*) print_char_cursor#40 Redundant Phi (byte*) print_line_cursor#28 (byte*) print_line_cursor#12 Redundant Phi (byte*) print_char_cursor#30 (byte*) print_char_cursor#112 @@ -5135,12 +5144,12 @@ Redundant Phi (byte*) print_char_cursor#39 (byte*) print_char_cursor#12 Redundant Phi (byte*) print_line_cursor#12 (byte*) print_line_cursor#1 Redundant Phi (byte*) print_char_cursor#40 (byte*) print_line_cursor#1 Redundant Phi (byte*) BGCOL#21 (byte*) BGCOL#1 -Redundant Phi (byte*) print_char_cursor#152 (byte*) print_char_cursor#25 -Redundant Phi (byte*) print_line_cursor#81 (byte*) print_line_cursor#25 +Redundant Phi (byte*) print_char_cursor#153 (byte*) print_char_cursor#25 +Redundant Phi (byte*) print_line_cursor#82 (byte*) print_line_cursor#25 Redundant Phi (byte*) BGCOL#10 (byte*) BGCOL#17 Redundant Phi (byte) mul16s_compare::i#2 (byte) mul16s_compare::i#9 -Redundant Phi (byte*) print_char_cursor#126 (byte*) print_char_cursor#150 -Redundant Phi (byte*) print_line_cursor#45 (byte*) print_line_cursor#77 +Redundant Phi (byte*) print_char_cursor#126 (byte*) print_char_cursor#151 +Redundant Phi (byte*) print_line_cursor#45 (byte*) print_line_cursor#78 Redundant Phi (byte*) print_char_cursor#42 (byte*) print_char_cursor#109 Redundant Phi (byte*) print_line_cursor#14 (byte*) print_line_cursor#17 Redundant Phi (byte*) print_char_cursor#44 (byte*) print_char_cursor#112 @@ -5203,7 +5212,7 @@ Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) print_line_cursor#0 = ((byte*))1024 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = '-' -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const dword) mul16u::res#0 = 0 Constant (const byte[512]) mulf_sqr1_lo#0 = { fill( 512, 0) } Constant (const byte[512]) mulf_sqr1_hi#0 = { fill( 512, 0) } @@ -5269,6 +5278,7 @@ Culled Empty Block (label) print_sword::@3 Culled Empty Block (label) print_word::@2 Culled Empty Block (label) print_dword::@2 Culled Empty Block (label) print_sdword::@3 +Culled Empty Block (label) @10 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) mul16u::@3 @@ -5294,8 +5304,8 @@ Succesful SSA optimization Pass2CullEmptyBlocks Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7 Not culling empty block because it shares successor with its predecessor. (label) mul16u_compare::@5 Not culling empty block because it shares successor with its predecessor. (label) mul16s_compare::@5 -Not aliassing across scopes: print_char_cursor#130 print_char_cursor#150 -Not aliassing across scopes: print_line_cursor#39 print_line_cursor#77 +Not aliassing across scopes: print_char_cursor#130 print_char_cursor#151 +Not aliassing across scopes: print_line_cursor#39 print_line_cursor#78 Not aliassing across scopes: print_char_cursor#113 print_char_cursor#112 Not aliassing across scopes: print_sword::w#3 print_sword::w#1 Not aliassing across scopes: print_char_cursor#114 print_char_cursor#112 @@ -5327,8 +5337,8 @@ Not aliassing across scopes: print_word::w#3 mul16u_error::a#0 Not aliassing across scopes: print_word::w#4 mul16u_error::b#0 Not aliassing across scopes: print_dword::dw#1 mul16u_error::ms#0 Not aliassing across scopes: print_dword::dw#2 mul16u_error::mn#0 -Not aliassing across scopes: print_char_cursor#150 print_line_cursor#1 -Not aliassing across scopes: print_line_cursor#77 print_line_cursor#1 +Not aliassing across scopes: print_char_cursor#151 print_line_cursor#1 +Not aliassing across scopes: print_line_cursor#78 print_line_cursor#1 Not aliassing across scopes: muls16s::a#0 mul16s_compare::a#1 Not aliassing across scopes: muls16s::b#0 mul16s_compare::b#1 Not aliassing across scopes: muls16s::return#2 muls16s::return#0 @@ -5346,18 +5356,18 @@ Not aliassing across scopes: print_sword::w#2 mul16s_error::b#0 Not aliassing across scopes: print_sdword::dw#1 mul16s_error::ms#0 Not aliassing across scopes: print_sdword::dw#2 mul16s_error::mn#0 Self Phi Eliminated (byte*) BGCOL#15 -Self Phi Eliminated (byte*) print_char_cursor#149 -Self Phi Eliminated (byte*) print_line_cursor#75 -Self Phi Eliminated (byte*) BGCOL#17 Self Phi Eliminated (byte*) print_char_cursor#150 -Self Phi Eliminated (byte*) print_line_cursor#77 +Self Phi Eliminated (byte*) print_line_cursor#76 +Self Phi Eliminated (byte*) BGCOL#17 +Self Phi Eliminated (byte*) print_char_cursor#151 +Self Phi Eliminated (byte*) print_line_cursor#78 Succesful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) BGCOL#15 (const byte*) BGCOL#0 -Redundant Phi (byte*) print_char_cursor#149 (const byte*) print_line_cursor#0 -Redundant Phi (byte*) print_line_cursor#75 (const byte*) print_line_cursor#0 +Redundant Phi (byte*) print_char_cursor#150 (const byte*) print_line_cursor#0 +Redundant Phi (byte*) print_line_cursor#76 (const byte*) print_line_cursor#0 Redundant Phi (byte*) BGCOL#17 (const byte*) BGCOL#0 -Redundant Phi (byte*) print_char_cursor#150 (byte*) print_line_cursor#1 -Redundant Phi (byte*) print_line_cursor#77 (byte*) print_line_cursor#1 +Redundant Phi (byte*) print_char_cursor#151 (byte*) print_line_cursor#1 +Redundant Phi (byte*) print_line_cursor#78 (byte*) print_line_cursor#1 Succesful SSA optimization Pass2RedundantPhiElimination Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7 Not culling empty block because it shares successor with its predecessor. (label) mul16u_compare::@5 @@ -5524,6 +5534,7 @@ Inlining constant with var siblings (const byte*) print_line_cursor#0 Inlining constant with var siblings (const byte*) print_line_cursor#0 Constant inlined mulf_init::sqr2_lo#0 = (const byte[512]) mulf_sqr2_lo#0 Constant inlined mulf_init::sqr2_hi#0 = (const byte[512]) mulf_sqr2_hi#0 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined muls16s::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul16u_compare::ok#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulf_init::dir#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -5572,7 +5583,6 @@ Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword Constant inlined mulf_init::$8 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512 Constant inlined print_char::ch#1 = (byte) '-' Constant inlined print_char::ch#0 = (byte) '-' -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Succesful SSA optimization Pass2ConstantInlining Block Sequence Planned @begin @29 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return print_cls print_cls::@1 print_cls::@return Added new block during phi lifting mul16s_compare::@15(between mul16s_compare::@8 and mul16s_compare::@1) @@ -5658,56 +5668,56 @@ Propagating live ranges... Created 64 initial phi equivalence classes Coalesced [15] mul16s_compare::a#12 ← mul16s_compare::a#5 Coalesced [16] mul16s_compare::b#12 ← mul16s_compare::b#5 -Not coalescing [45] print_char_cursor#157 ← print_line_cursor#1 -Coalesced [47] print_line_cursor#87 ← print_line_cursor#1 -Coalesced [48] print_char_cursor#153 ← print_char_cursor#112 +Not coalescing [45] print_char_cursor#158 ← print_line_cursor#1 +Coalesced [47] print_line_cursor#88 ← print_line_cursor#1 +Coalesced [48] print_char_cursor#154 ← print_char_cursor#112 Coalesced [50] mul16s_compare::a#11 ← mul16s_compare::a#1 Coalesced [51] mul16s_compare::b#11 ← mul16s_compare::b#1 Coalesced [52] mul16s_compare::i#10 ← mul16s_compare::i#1 Coalesced (already) [53] mul16s_compare::a#13 ← mul16s_compare::a#1 Coalesced (already) [54] mul16s_compare::b#13 ← mul16s_compare::b#1 Coalesced [55] mul16s_compare::j#8 ← mul16s_compare::j#1 -Coalesced [57] print_line_cursor#89 ← print_line_cursor#39 -Coalesced (already) [62] print_line_cursor#90 ← print_line_cursor#1 +Coalesced [57] print_line_cursor#90 ← print_line_cursor#39 +Coalesced (already) [62] print_line_cursor#91 ← print_line_cursor#1 Coalesced [64] print_str::str#14 ← print_str::str#13 -Coalesced [65] print_char_cursor#165 ← print_char_cursor#130 +Coalesced [65] print_char_cursor#166 ← print_char_cursor#130 Coalesced [72] print_str::str#15 ← print_str::str#0 -Coalesced [73] print_char_cursor#166 ← print_char_cursor#1 -Not coalescing [74] print_char_cursor#158 ← print_line_cursor#1 +Coalesced [73] print_char_cursor#167 ← print_char_cursor#1 +Not coalescing [74] print_char_cursor#159 ← print_line_cursor#1 Coalesced [77] print_sword::w#7 ← print_sword::w#1 -Coalesced [79] print_char_cursor#159 ← print_char_cursor#20 +Coalesced [79] print_char_cursor#160 ← print_char_cursor#20 Coalesced [82] print_sword::w#8 ← print_sword::w#2 -Coalesced (already) [84] print_char_cursor#160 ← print_char_cursor#20 +Coalesced (already) [84] print_char_cursor#161 ← print_char_cursor#20 Coalesced [87] print_sdword::dw#7 ← print_sdword::dw#1 -Coalesced (already) [89] print_char_cursor#161 ← print_char_cursor#20 +Coalesced (already) [89] print_char_cursor#162 ← print_char_cursor#20 Coalesced [92] print_sdword::dw#8 ← print_sdword::dw#2 -Coalesced (already) [94] print_line_cursor#88 ← print_line_cursor#1 -Coalesced (already) [95] print_char_cursor#154 ← print_char_cursor#20 -Coalesced [100] print_char_cursor#181 ← print_char_cursor#112 +Coalesced (already) [94] print_line_cursor#89 ← print_line_cursor#1 +Coalesced (already) [95] print_char_cursor#155 ← print_char_cursor#20 +Coalesced [100] print_char_cursor#182 ← print_char_cursor#112 Coalesced [103] print_sdword::dw#10 ← print_sdword::dw#0 -Coalesced [104] print_char_cursor#168 ← print_char_cursor#20 +Coalesced [104] print_char_cursor#169 ← print_char_cursor#20 Coalesced [107] print_dword::dw#7 ← print_dword::dw#0 -Coalesced [108] print_char_cursor#171 ← print_char_cursor#118 +Coalesced [108] print_char_cursor#172 ← print_char_cursor#118 Coalesced [111] print_sdword::dw#9 ← print_sdword::dw#3 -Coalesced (already) [112] print_char_cursor#167 ← print_char_cursor#112 +Coalesced (already) [112] print_char_cursor#168 ← print_char_cursor#112 Coalesced [115] print_word::w#9 ← print_word::w#1 -Coalesced [116] print_char_cursor#174 ← print_char_cursor#117 +Coalesced [116] print_char_cursor#175 ← print_char_cursor#117 Coalesced [119] print_word::w#10 ← print_word::w#2 -Coalesced (already) [120] print_char_cursor#175 ← print_char_cursor#20 +Coalesced (already) [120] print_char_cursor#176 ← print_char_cursor#20 Coalesced [125] print_byte::b#4 ← print_byte::b#0 -Coalesced [126] print_char_cursor#177 ← print_char_cursor#116 +Coalesced [126] print_char_cursor#178 ← print_char_cursor#116 Coalesced [129] print_byte::b#5 ← print_byte::b#1 -Coalesced (already) [130] print_char_cursor#178 ← print_char_cursor#20 +Coalesced (already) [130] print_char_cursor#179 ← print_char_cursor#20 Coalesced [136] print_char::ch#5 ← print_char::ch#2 -Coalesced (already) [137] print_char_cursor#179 ← print_char_cursor#120 +Coalesced (already) [137] print_char_cursor#180 ← print_char_cursor#120 Coalesced [141] print_char::ch#6 ← print_char::ch#3 -Coalesced (already) [142] print_char_cursor#180 ← print_char_cursor#20 -Coalesced (already) [151] print_char_cursor#182 ← print_char_cursor#112 +Coalesced (already) [142] print_char_cursor#181 ← print_char_cursor#20 +Coalesced (already) [151] print_char_cursor#183 ← print_char_cursor#112 Coalesced [154] print_sword::w#10 ← print_sword::w#0 -Coalesced [155] print_char_cursor#184 ← print_char_cursor#20 -Coalesced (already) [158] print_char_cursor#176 ← print_char_cursor#114 +Coalesced [155] print_char_cursor#185 ← print_char_cursor#20 +Coalesced (already) [158] print_char_cursor#177 ← print_char_cursor#114 Coalesced [161] print_sword::w#9 ← print_sword::w#3 -Coalesced (already) [162] print_char_cursor#183 ← print_char_cursor#112 +Coalesced (already) [162] print_char_cursor#184 ← print_char_cursor#112 Coalesced [172] mul16s::m#7 ← mul16s::m#1 Coalesced [178] mul16s::m#10 ← mul16s::m#2 Coalesced [182] mul16s::m#9 ← mul16s::m#5 @@ -5729,7 +5739,7 @@ Coalesced [222] mul16u_compare::a#12 ← mul16u_compare::a#5 Coalesced [223] mul16u_compare::b#12 ← mul16u_compare::b#5 Coalesced [234] mul16u::b#4 ← mul16u::b#1 Coalesced [235] mul16u::a#9 ← mul16u::a#2 -Coalesced (already) [256] print_char_cursor#155 ← print_char_cursor#112 +Coalesced (already) [256] print_char_cursor#156 ← print_char_cursor#112 Coalesced [258] mul16u_compare::a#11 ← mul16u_compare::a#1 Coalesced [259] mul16u_compare::b#11 ← mul16u_compare::b#1 Coalesced [260] mul16u_compare::i#10 ← mul16u_compare::i#1 @@ -5737,17 +5747,17 @@ Coalesced (already) [261] mul16u_compare::a#13 ← mul16u_compare::a#1 Coalesced (already) [262] mul16u_compare::b#13 ← mul16u_compare::b#1 Coalesced [263] mul16u_compare::j#8 ← mul16u_compare::j#1 Coalesced [267] print_word::w#7 ← print_word::w#3 -Coalesced (already) [268] print_char_cursor#172 ← print_char_cursor#112 -Coalesced (already) [270] print_char_cursor#162 ← print_char_cursor#20 +Coalesced (already) [268] print_char_cursor#173 ← print_char_cursor#112 +Coalesced (already) [270] print_char_cursor#163 ← print_char_cursor#20 Coalesced [273] print_word::w#8 ← print_word::w#4 -Coalesced (already) [274] print_char_cursor#173 ← print_char_cursor#112 -Coalesced (already) [276] print_char_cursor#163 ← print_char_cursor#20 +Coalesced (already) [274] print_char_cursor#174 ← print_char_cursor#112 +Coalesced (already) [276] print_char_cursor#164 ← print_char_cursor#20 Coalesced [279] print_dword::dw#5 ← print_dword::dw#1 -Coalesced (already) [280] print_char_cursor#169 ← print_char_cursor#112 -Coalesced (already) [282] print_char_cursor#164 ← print_char_cursor#20 +Coalesced (already) [280] print_char_cursor#170 ← print_char_cursor#112 +Coalesced (already) [282] print_char_cursor#165 ← print_char_cursor#20 Coalesced [285] print_dword::dw#6 ← print_dword::dw#2 -Coalesced (already) [286] print_char_cursor#170 ← print_char_cursor#112 -Coalesced (already) [288] print_char_cursor#156 ← print_char_cursor#20 +Coalesced (already) [286] print_char_cursor#171 ← print_char_cursor#112 +Coalesced (already) [288] print_char_cursor#157 ← print_char_cursor#20 Coalesced [296] muls16u::return#5 ← muls16u::m#1 Coalesced [299] muls16u::m#5 ← muls16u::m#1 Coalesced [300] muls16u::i#3 ← muls16u::i#1 @@ -5933,7 +5943,7 @@ mul16s_compare::@8: scope:[mul16s_compare] from mul16s_compare::@4 [42] if((byte) mul16s_compare::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto mul16s_compare::@1 [ mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::i#1 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::i#1 print_line_cursor#1 ] ) to:mul16s_compare::@9 mul16s_compare::@9: scope:[mul16s_compare] from mul16s_compare::@8 - [43] (byte*~) print_char_cursor#157 ← (byte*) print_line_cursor#1 [ print_char_cursor#157 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#157 print_line_cursor#1 ] ) + [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ print_char_cursor#158 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#158 print_line_cursor#1 ] ) [44] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#112 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#112 ] ) to:mul16s_compare::@13 mul16s_compare::@13: scope:[mul16s_compare] from mul16s_compare::@9 @@ -5953,7 +5963,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [51] return [ print_line_cursor#1 ] ( main:2::mul16s_compare:11::print_ln:46 [ print_line_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_ln:76 [ print_line_cursor#1 ] main:2::mul16u_compare:9::print_ln:193 [ print_line_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_ln:211 [ print_line_cursor#1 ] ) to:@return print_str: scope:[print_str] from mul16s_compare::@9 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16u_compare::@9 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6 - [52] (byte*) print_char_cursor#130 ← phi( mul16s_compare::@9/(byte*~) print_char_cursor#157 mul16s_error/(byte*~) print_char_cursor#158 mul16s_error::@2/(byte*) print_char_cursor#20 mul16s_error::@4/(byte*) print_char_cursor#20 mul16s_error::@6/(byte*) print_char_cursor#20 mul16u_compare::@9/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_error/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_error::@2/(byte*) print_char_cursor#20 mul16u_error::@4/(byte*) print_char_cursor#20 mul16u_error::@6/(byte*) print_char_cursor#20 ) [ print_str::str#13 print_char_cursor#130 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::print_str:191 [ print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] ) + [52] (byte*) print_char_cursor#130 ← phi( mul16s_compare::@9/(byte*~) print_char_cursor#158 mul16s_error/(byte*~) print_char_cursor#159 mul16s_error::@2/(byte*) print_char_cursor#20 mul16s_error::@4/(byte*) print_char_cursor#20 mul16s_error::@6/(byte*) print_char_cursor#20 mul16u_compare::@9/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_error/((byte*))(word/signed word/dword/signed dword) 1024 mul16u_error::@2/(byte*) print_char_cursor#20 mul16u_error::@4/(byte*) print_char_cursor#20 mul16u_error::@6/(byte*) print_char_cursor#20 ) [ print_str::str#13 print_char_cursor#130 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::print_str:191 [ print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] ) [52] (byte*) print_str::str#13 ← phi( mul16s_compare::@9/(const string) mul16s_compare::str mul16s_error/(const string) mul16s_error::str mul16s_error::@2/(const string) mul16s_error::str1 mul16s_error::@4/(const string) mul16s_error::str2 mul16s_error::@6/(const string) mul16s_error::str3 mul16u_compare::@9/(const string) mul16u_compare::str mul16u_error/(const string) mul16u_error::str mul16u_error::@2/(const string) mul16u_error::str1 mul16u_error::@4/(const string) mul16u_error::str2 mul16u_error::@6/(const string) mul16u_error::str3 ) [ print_str::str#13 print_char_cursor#130 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::print_str:191 [ print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_str::str#13 print_char_cursor#130 ] ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -5970,7 +5980,7 @@ print_str::@2: scope:[print_str] from print_str::@1 [58] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#11 [ print_str::str#0 print_char_cursor#1 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::print_str:191 [ print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_str::str#0 print_char_cursor#1 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_str::str#0 print_char_cursor#1 ] ) to:print_str::@1 mul16s_error: scope:[mul16s_error] from mul16s_compare::@6 - [59] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#158 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#158 ] ) + [59] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#159 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#159 ] ) [60] call print_str param-assignment [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 ] ) to:mul16s_error::@1 mul16s_error::@1: scope:[mul16s_error] from mul16s_error @@ -6058,12 +6068,12 @@ print_byte: scope:[print_byte] from print_word print_word::@1 [99] (byte*) print_char_cursor#120 ← phi( print_word/(byte*) print_char_cursor#116 print_word::@1/(byte*) print_char_cursor#20 ) [ print_byte::b#2 print_char_cursor#120 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] ) [99] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 print_char_cursor#120 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 ] ) [100] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#2 print_char_cursor#120 print_byte::$0 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_byte::$0 ] ) - [101] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] ) + [101] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_byte::b#2 print_char_cursor#120 print_char::ch#2 ] ) [102] call print_char param-assignment [ print_char_cursor#20 print_byte::b#2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::b#2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::b#2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::b#2 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [103] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#20 print_byte::$2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] ) - [104] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) + [104] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) [105] call print_char param-assignment [ print_char_cursor#20 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -6759,7 +6769,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#0 4.0 (byte) print_byte::b#1 4.0 (byte) print_byte::b#2 2.0 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#2 4.0 @@ -6775,8 +6784,8 @@ VARIABLE REGISTER WEIGHTS (byte*) print_char_cursor#118 3.0 (byte*) print_char_cursor#120 2.0 (byte*) print_char_cursor#130 18.0 -(byte*~) print_char_cursor#157 4.0 (byte*~) print_char_cursor#158 4.0 +(byte*~) print_char_cursor#159 4.0 (byte*) print_char_cursor#20 0.7179487179487181 (byte*) print_char_cursor#76 6.0 (void()) print_cls() @@ -6789,6 +6798,7 @@ VARIABLE REGISTER WEIGHTS (dword) print_dword::dw#1 4.0 (dword) print_dword::dw#2 4.0 (dword) print_dword::dw#3 3.333333333333333 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_line_cursor#1 0.7068965517241378 (byte*) print_line_cursor#20 24.0 @@ -6836,7 +6846,7 @@ Initial phi equivalence classes [ print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 ] [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -[ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] +[ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 ] [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] [ mul16u::b#2 mul16u::b#3 mul16u::b#1 ] @@ -6910,7 +6920,7 @@ Complete equivalence classes [ print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 ] [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -[ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] +[ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 ] [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] [ mul16u::b#2 mul16u::b#3 mul16u::b#1 ] @@ -6983,7 +6993,7 @@ Allocated zp ZP_DWORD:17 [ print_dword::dw#3 print_dword::dw#1 print_dword::dw#2 Allocated zp ZP_WORD:21 [ print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 ] Allocated zp ZP_BYTE:23 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] Allocated zp ZP_BYTE:24 [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -Allocated zp ZP_WORD:25 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] +Allocated zp ZP_WORD:25 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] Allocated zp ZP_WORD:27 [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 ] Allocated zp ZP_DWORD:29 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] Allocated zp ZP_WORD:33 [ mul16u::b#2 mul16u::b#3 mul16u::b#1 ] @@ -7338,7 +7348,7 @@ mul16s_compare: { jmp b9 //SEG83 mul16s_compare::@9 b9: - //SEG84 [43] (byte*~) print_char_cursor#157 ← (byte*) print_line_cursor#1 [ print_char_cursor#157 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#157 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG84 [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ print_char_cursor#158 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#158 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -7346,7 +7356,7 @@ mul16s_compare: { //SEG85 [44] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#112 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#112 ] ) //SEG86 [52] phi from mul16s_compare::@9 to print_str [phi:mul16s_compare::@9->print_str] print_str_from_b9: - //SEG87 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#157 [phi:mul16s_compare::@9->print_str#0] -- register_copy + //SEG87 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#158 [phi:mul16s_compare::@9->print_str#0] -- register_copy //SEG88 [52] phi (byte*) print_str::str#13 = (const string) mul16s_compare::str [phi:mul16s_compare::@9->print_str#1] -- pbuz1=pbuc1 lda #print_str] print_str_from_mul16s_error: - //SEG119 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#158 [phi:mul16s_error->print_str#0] -- register_copy + //SEG119 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#159 [phi:mul16s_error->print_str#0] -- register_copy //SEG120 [52] phi (byte*) print_str::str#13 = (const string) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1 lda #print_char] @@ -7748,9 +7758,9 @@ print_byte: { lda #$f and b sta _2 - //SEG225 [104] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG225 [104] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG226 [105] call print_char param-assignment [ print_char_cursor#20 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] ) //SEG227 [107] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -7763,7 +7773,6 @@ print_byte: { breturn: //SEG231 [106] return [ print_char_cursor#20 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] ) rts - hextab: .text "0123456789abcdef" } //SEG232 print_char print_char: { @@ -8969,6 +8978,7 @@ print_cls: { //SEG561 [254] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" .align $100 mulf_sqr1_lo: .fill $200, 0 .align $100 @@ -8998,12 +9008,12 @@ Statement [33] (signed word) mul16s_error::a#0 ← (signed word) mul16s_compare: Statement [34] (signed word) mul16s_error::b#0 ← (signed word) mul16s_compare::b#1 [ mul16s_compare::ms#0 mul16s_compare::mn#0 mul16s_error::a#0 mul16s_error::b#0 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ mul16s_compare::ms#0 mul16s_compare::mn#0 mul16s_error::a#0 mul16s_error::b#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [35] (signed dword) mul16s_error::ms#0 ← (signed dword) mul16s_compare::ms#0 [ mul16s_compare::mn#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ mul16s_compare::mn#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [36] (signed dword) mul16s_error::mn#0 ← (signed dword) mul16s_compare::mn#0 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [43] (byte*~) print_char_cursor#157 ← (byte*) print_line_cursor#1 [ print_char_cursor#157 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#157 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ print_char_cursor#158 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#158 print_line_cursor#1 ] ) always clobbers reg byte a Statement [49] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#113 ] ( main:2::mul16s_compare:11::print_ln:46 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16s_compare:11::mul16s_error:37::print_ln:76 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16u_compare:9::print_ln:193 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16u_compare:9::mul16u_error:184::print_ln:211 [ print_line_cursor#1 print_char_cursor#113 ] ) always clobbers reg byte a Statement [50] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#113) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#113 ] ( main:2::mul16s_compare:11::print_ln:46 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16s_compare:11::mul16s_error:37::print_ln:76 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16u_compare:9::print_ln:193 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16u_compare:9::mul16u_error:184::print_ln:211 [ print_line_cursor#1 print_char_cursor#113 ] ) always clobbers reg byte a Statement [54] if(*((byte*) print_str::str#11)!=(byte) '@') goto print_str::@2 [ print_char_cursor#112 print_str::str#11 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::print_str:191 [ print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] ) always clobbers reg byte a reg byte y Statement [56] *((byte*) print_char_cursor#112) ← *((byte*) print_str::str#11) [ print_char_cursor#112 print_str::str#11 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::print_str:191 [ print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] ) always clobbers reg byte a reg byte y -Statement [59] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#158 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#158 ] ) always clobbers reg byte a +Statement [59] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#159 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#159 ] ) always clobbers reg byte a Statement [61] (signed word) print_sword::w#1 ← (signed word) mul16s_error::a#0 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sword::w#1 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sword::w#1 ] ) always clobbers reg byte a Statement [65] (signed word) print_sword::w#2 ← (signed word) mul16s_error::b#0 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sword::w#2 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sword::w#2 ] ) always clobbers reg byte a Statement [69] (signed dword) print_sdword::dw#1 ← (signed dword) mul16s_error::ms#0 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sdword::dw#1 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sdword::dw#1 ] ) always clobbers reg byte a @@ -9110,12 +9120,12 @@ Statement [33] (signed word) mul16s_error::a#0 ← (signed word) mul16s_compare: Statement [34] (signed word) mul16s_error::b#0 ← (signed word) mul16s_compare::b#1 [ mul16s_compare::ms#0 mul16s_compare::mn#0 mul16s_error::a#0 mul16s_error::b#0 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ mul16s_compare::ms#0 mul16s_compare::mn#0 mul16s_error::a#0 mul16s_error::b#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [35] (signed dword) mul16s_error::ms#0 ← (signed dword) mul16s_compare::ms#0 [ mul16s_compare::mn#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ mul16s_compare::mn#0 mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [36] (signed dword) mul16s_error::mn#0 ← (signed dword) mul16s_compare::mn#0 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [43] (byte*~) print_char_cursor#157 ← (byte*) print_line_cursor#1 [ print_char_cursor#157 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#157 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ print_char_cursor#158 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#158 print_line_cursor#1 ] ) always clobbers reg byte a Statement [49] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#20 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#113 ] ( main:2::mul16s_compare:11::print_ln:46 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16s_compare:11::mul16s_error:37::print_ln:76 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16u_compare:9::print_ln:193 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16u_compare:9::mul16u_error:184::print_ln:211 [ print_line_cursor#1 print_char_cursor#113 ] ) always clobbers reg byte a Statement [50] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#113) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#113 ] ( main:2::mul16s_compare:11::print_ln:46 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16s_compare:11::mul16s_error:37::print_ln:76 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16u_compare:9::print_ln:193 [ print_line_cursor#1 print_char_cursor#113 ] main:2::mul16u_compare:9::mul16u_error:184::print_ln:211 [ print_line_cursor#1 print_char_cursor#113 ] ) always clobbers reg byte a Statement [54] if(*((byte*) print_str::str#11)!=(byte) '@') goto print_str::@2 [ print_char_cursor#112 print_str::str#11 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::print_str:191 [ print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] ) always clobbers reg byte a reg byte y Statement [56] *((byte*) print_char_cursor#112) ← *((byte*) print_str::str#11) [ print_char_cursor#112 print_str::str#11 ] ( main:2::mul16s_compare:11::print_str:44 [ print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:60 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:64 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:68 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16s_compare:11::mul16s_error:37::print_str:72 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::print_str:191 [ print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:195 [ mul16u_error::a#0 mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:199 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:203 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] main:2::mul16u_compare:9::mul16u_error:184::print_str:207 [ mul16u_error::mn#0 print_char_cursor#112 print_str::str#11 ] ) always clobbers reg byte a reg byte y -Statement [59] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#158 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#158 ] ) always clobbers reg byte a +Statement [59] (byte*~) print_char_cursor#159 ← (byte*) print_line_cursor#1 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#159 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::a#0 mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#159 ] ) always clobbers reg byte a Statement [61] (signed word) print_sword::w#1 ← (signed word) mul16s_error::a#0 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sword::w#1 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sword::w#1 ] ) always clobbers reg byte a Statement [65] (signed word) print_sword::w#2 ← (signed word) mul16s_error::b#0 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sword::w#2 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sword::w#2 ] ) always clobbers reg byte a Statement [69] (signed dword) print_sdword::dw#1 ← (signed dword) mul16s_error::ms#0 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sdword::dw#1 ] ( main:2::mul16s_compare:11::mul16s_error:37 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#112 print_sdword::dw#1 ] ) always clobbers reg byte a @@ -9206,7 +9216,7 @@ Potential registers zp ZP_DWORD:17 [ print_dword::dw#3 print_dword::dw#1 print_d Potential registers zp ZP_WORD:21 [ print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 ] : zp ZP_WORD:21 , Potential registers zp ZP_BYTE:23 [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] : zp ZP_BYTE:23 , reg byte a , reg byte x , Potential registers zp ZP_BYTE:24 [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] : zp ZP_BYTE:24 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:25 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] : zp ZP_WORD:25 , +Potential registers zp ZP_WORD:25 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] : zp ZP_WORD:25 , Potential registers zp ZP_WORD:27 [ print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 ] : zp ZP_WORD:27 , Potential registers zp ZP_DWORD:29 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] : zp ZP_DWORD:29 , Potential registers zp ZP_WORD:33 [ mul16u::b#2 mul16u::b#3 mul16u::b#1 ] : zp ZP_WORD:33 , @@ -9276,7 +9286,7 @@ Uplift Scope [mul16u_compare] 254.86: zp ZP_WORD:54 [ mul16u_compare::a#2 mul16u Uplift Scope [mul16s_compare] 254.86: zp ZP_WORD:3 [ mul16s_compare::a#2 mul16s_compare::a#5 mul16s_compare::a#1 ] 163.38: zp ZP_BYTE:7 [ mul16s_compare::j#2 mul16s_compare::j#1 ] 148.36: zp ZP_WORD:5 [ mul16s_compare::b#2 mul16s_compare::b#5 mul16s_compare::b#1 ] 101: zp ZP_BYTE:8 [ mul16s_compare::ok#2 ] 22.67: zp ZP_DWORD:102 [ mul16s_compare::mn#0 ] 17.6: zp ZP_BYTE:2 [ mul16s_compare::i#9 mul16s_compare::i#1 ] 15.69: zp ZP_DWORD:90 [ mul16s_compare::ms#0 ] Uplift Scope [mul16s] 202: zp ZP_DWORD:98 [ mul16s::return#2 ] 34.33: zp ZP_DWORD:132 [ mul16s::return#0 ] 18.5: zp ZP_DWORD:29 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] 9.36: zp ZP_WORD:96 [ mul16s::b#0 ] 7.36: zp ZP_WORD:94 [ mul16s::a#0 ] 4: zp ZP_WORD:124 [ mul16s::$6 ] 4: zp ZP_WORD:126 [ mul16s::$16 ] 4: zp ZP_WORD:128 [ mul16s::$12 ] 4: zp ZP_WORD:130 [ mul16s::$17 ] Uplift Scope [mulf_init] 45.1: zp ZP_WORD:72 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] 24.36: zp ZP_BYTE:66 [ mulf_init::c#2 mulf_init::c#1 ] 24.14: zp ZP_BYTE:71 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] 22: zp ZP_BYTE:169 [ mulf_init::$2 ] 22: zp ZP_BYTE:170 [ mulf_init::$5 ] 22: zp ZP_BYTE:171 [ mulf_init::$6 ] 20.62: zp ZP_WORD:75 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] 19.04: zp ZP_WORD:67 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] 16.5: zp ZP_BYTE:74 [ mulf_init::x_255#2 mulf_init::x_255#1 ] 14.14: zp ZP_WORD:77 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] 12.05: zp ZP_BYTE:79 [ mulf_init::dir#2 mulf_init::dir#3 ] 8.5: zp ZP_WORD:69 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] -Uplift Scope [] 68.3: zp ZP_WORD:25 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] 30.71: zp ZP_WORD:9 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 ] +Uplift Scope [] 68.3: zp ZP_WORD:25 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] 30.71: zp ZP_WORD:9 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 ] Uplift Scope [print_str] 35.5: zp ZP_WORD:11 [ print_str::str#11 print_str::str#13 print_str::str#0 ] Uplift Scope [print_cls] 33: zp ZP_WORD:80 [ print_cls::sc#2 print_cls::sc#1 ] Uplift Scope [print_word] 24.67: zp ZP_WORD:21 [ print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 ] @@ -9298,7 +9308,7 @@ Uplifting [mul16s_compare] best 517522 combination zp ZP_WORD:3 [ mul16s_compare Uplifting [mul16s] best 517522 combination zp ZP_DWORD:98 [ mul16s::return#2 ] zp ZP_DWORD:132 [ mul16s::return#0 ] zp ZP_DWORD:29 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 ] zp ZP_WORD:96 [ mul16s::b#0 ] zp ZP_WORD:94 [ mul16s::a#0 ] zp ZP_WORD:124 [ mul16s::$6 ] zp ZP_WORD:126 [ mul16s::$16 ] zp ZP_WORD:128 [ mul16s::$12 ] zp ZP_WORD:130 [ mul16s::$17 ] Uplifting [mulf_init] best 517292 combination zp ZP_WORD:72 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ mulf_init::c#2 mulf_init::c#1 ] zp ZP_BYTE:71 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$2 ] reg byte a [ mulf_init::$5 ] reg byte a [ mulf_init::$6 ] zp ZP_WORD:75 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp ZP_WORD:67 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] zp ZP_BYTE:74 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp ZP_WORD:77 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp ZP_BYTE:79 [ mulf_init::dir#2 mulf_init::dir#3 ] zp ZP_WORD:69 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [] best 517292 combination zp ZP_WORD:25 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] zp ZP_WORD:9 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 ] +Uplifting [] best 517292 combination zp ZP_WORD:25 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] zp ZP_WORD:9 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 ] Uplifting [print_str] best 517292 combination zp ZP_WORD:11 [ print_str::str#11 print_str::str#13 print_str::str#0 ] Uplifting [print_cls] best 517292 combination zp ZP_WORD:80 [ print_cls::sc#2 print_cls::sc#1 ] Uplifting [print_word] best 517292 combination zp ZP_WORD:21 [ print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 ] @@ -9369,7 +9379,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ mul16s_compare::b#2 mul16s_compare:: Allocated (was zp ZP_WORD:9) zp ZP_WORD:6 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] Allocated (was zp ZP_WORD:11) zp ZP_WORD:8 [ print_str::str#11 print_str::str#13 print_str::str#0 mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 muls16s::i#2 muls16s::i#1 muls16s::j#2 muls16s::j#1 mul16s::$6 mul16s::$16 mul16s::$12 mul16s::$17 ] Allocated (was zp ZP_DWORD:13) zp ZP_DWORD:10 [ print_sdword::dw#4 print_sdword::dw#3 print_sdword::dw#1 print_sdword::dw#2 print_sdword::dw#0 print_dword::dw#3 print_dword::dw#1 print_dword::dw#2 print_dword::dw#0 mul16s_error::ms#0 mul16s_compare::ms#0 mul16u_compare::ms#0 mul16u_error::ms#0 muls16s::m#5 muls16s::return#0 muls16s::m#3 muls16s::m#1 muls16s::m#2 muls16s::return#2 muls16u::return#0 muls16u::m#3 muls16u::m#1 muls16u::return#2 ] -Allocated (was zp ZP_WORD:25) zp ZP_WORD:14 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] +Allocated (was zp ZP_WORD:25) zp ZP_WORD:14 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] Allocated (was zp ZP_DWORD:29) zp ZP_DWORD:16 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 mul16u::return#2 mul16s::return#0 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#3 mul16s::return#2 mul16s_compare::mn#0 mul16s_error::mn#0 mul16u_compare::mn#0 mul16u_error::mn#0 ] Allocated (was zp ZP_WORD:33) zp ZP_WORD:20 [ mul16u::b#2 mul16u::b#3 mul16u::b#1 mul16u_compare::b#2 mul16u_compare::b#5 mul16u_compare::b#1 muls16u::b#0 mul16u_error::b#0 ] Allocated (was zp ZP_DWORD:41) zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] @@ -9599,7 +9609,7 @@ mul16s_compare: { jmp b9 //SEG83 mul16s_compare::@9 b9: - //SEG84 [43] (byte*~) print_char_cursor#157 ← (byte*) print_line_cursor#1 [ print_char_cursor#157 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#157 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG84 [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ print_char_cursor#158 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#158 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -9607,7 +9617,7 @@ mul16s_compare: { //SEG85 [44] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#112 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#112 ] ) //SEG86 [52] phi from mul16s_compare::@9 to print_str [phi:mul16s_compare::@9->print_str] print_str_from_b9: - //SEG87 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#157 [phi:mul16s_compare::@9->print_str#0] -- register_copy + //SEG87 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#158 [phi:mul16s_compare::@9->print_str#0] -- register_copy //SEG88 [52] phi (byte*) print_str::str#13 = (const string) mul16s_compare::str [phi:mul16s_compare::@9->print_str#1] -- pbuz1=pbuc1 lda #print_str] print_str_from_mul16s_error: - //SEG119 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#158 [phi:mul16s_error->print_str#0] -- register_copy + //SEG119 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#159 [phi:mul16s_error->print_str#0] -- register_copy //SEG120 [52] phi (byte*) print_str::str#13 = (const string) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1 lda #print_char] print_char_from_print_byte: @@ -9984,9 +9994,9 @@ print_byte: { //SEG224 [103] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#20 print_byte::$2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG225 [104] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG225 [104] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG226 [105] call print_char param-assignment [ print_char_cursor#20 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] ) //SEG227 [107] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -9998,7 +10008,6 @@ print_byte: { breturn: //SEG231 [106] return [ print_char_cursor#20 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] ) rts - hextab: .text "0123456789abcdef" } //SEG232 print_char print_char: { @@ -11080,6 +11089,7 @@ print_cls: { //SEG561 [254] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" .align $100 mulf_sqr1_lo: .fill $200, 0 .align $100 @@ -11706,8 +11716,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#0 reg byte x 4.0 (byte) print_byte::b#1 reg byte x 4.0 (byte) print_byte::b#2 reg byte x 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -11724,8 +11732,8 @@ FINAL SYMBOL TABLE (byte*) print_char_cursor#118 print_char_cursor zp ZP_WORD:14 3.0 (byte*) print_char_cursor#120 print_char_cursor zp ZP_WORD:14 2.0 (byte*) print_char_cursor#130 print_char_cursor zp ZP_WORD:14 18.0 -(byte*~) print_char_cursor#157 print_char_cursor zp ZP_WORD:14 4.0 (byte*~) print_char_cursor#158 print_char_cursor zp ZP_WORD:14 4.0 +(byte*~) print_char_cursor#159 print_char_cursor zp ZP_WORD:14 4.0 (byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:14 0.7179487179487181 (byte*) print_char_cursor#76 print_char_cursor zp ZP_WORD:14 6.0 (void()) print_cls() @@ -11742,6 +11750,8 @@ FINAL SYMBOL TABLE (dword) print_dword::dw#1 dw zp ZP_DWORD:10 4.0 (dword) print_dword::dw#2 dw zp ZP_DWORD:10 4.0 (dword) print_dword::dw#3 dw zp ZP_DWORD:10 3.333333333333333 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:6 0.7068965517241378 (byte*) print_line_cursor#20 print_line_cursor zp ZP_WORD:6 24.0 @@ -11801,7 +11811,7 @@ zp ZP_WORD:8 [ print_str::str#11 print_str::str#13 print_str::str#0 mul16u::a#3 zp ZP_DWORD:10 [ print_sdword::dw#4 print_sdword::dw#3 print_sdword::dw#1 print_sdword::dw#2 print_sdword::dw#0 print_dword::dw#3 print_dword::dw#1 print_dword::dw#2 print_dword::dw#0 mul16s_error::ms#0 mul16s_compare::ms#0 mul16u_compare::ms#0 mul16u_error::ms#0 muls16s::m#5 muls16s::return#0 muls16s::m#3 muls16s::m#1 muls16s::m#2 muls16s::return#2 muls16u::return#0 muls16u::m#3 muls16u::m#1 muls16u::return#2 ] reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -zp ZP_WORD:14 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] +zp ZP_WORD:14 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] zp ZP_DWORD:16 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 mul16u::return#2 mul16s::return#0 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#3 mul16s::return#2 mul16s_compare::mn#0 mul16s_error::mn#0 mul16u_compare::mn#0 mul16u_error::mn#0 ] zp ZP_WORD:20 [ mul16u::b#2 mul16u::b#3 mul16u::b#1 mul16u_compare::b#2 mul16u_compare::b#5 mul16u_compare::b#1 muls16u::b#0 mul16u_error::b#0 ] zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] @@ -11999,14 +12009,14 @@ mul16s_compare: { cpx #$10 bne b1 //SEG83 mul16s_compare::@9 - //SEG84 [43] (byte*~) print_char_cursor#157 ← (byte*) print_line_cursor#1 [ print_char_cursor#157 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#157 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG84 [43] (byte*~) print_char_cursor#158 ← (byte*) print_line_cursor#1 [ print_char_cursor#158 print_line_cursor#1 ] ( main:2::mul16s_compare:11 [ print_char_cursor#158 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG85 [44] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#112 ] ( main:2::mul16s_compare:11 [ print_line_cursor#1 print_char_cursor#112 ] ) //SEG86 [52] phi from mul16s_compare::@9 to print_str [phi:mul16s_compare::@9->print_str] - //SEG87 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#157 [phi:mul16s_compare::@9->print_str#0] -- register_copy + //SEG87 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#158 [phi:mul16s_compare::@9->print_str#0] -- register_copy //SEG88 [52] phi (byte*) print_str::str#13 = (const string) mul16s_compare::str [phi:mul16s_compare::@9->print_str#1] -- pbuz1=pbuc1 lda #print_str] - //SEG119 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#158 [phi:mul16s_error->print_str#0] -- register_copy + //SEG119 [52] phi (byte*) print_char_cursor#130 = (byte*~) print_char_cursor#159 [phi:mul16s_error->print_str#0] -- register_copy //SEG120 [52] phi (byte*) print_str::str#13 = (const string) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1 lda #print_char] //SEG221 [107] phi (byte*) print_char_cursor#76 = (byte*) print_char_cursor#120 [phi:print_byte->print_char#0] -- register_copy @@ -12310,9 +12320,9 @@ print_byte: { //SEG224 [103] (byte~) print_byte::$2 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#20 print_byte::$2 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG225 [104] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG225 [104] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#20 print_char::ch#3 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG226 [105] call print_char param-assignment [ print_char_cursor#20 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] ) //SEG227 [107] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG228 [107] phi (byte*) print_char_cursor#76 = (byte*) print_char_cursor#20 [phi:print_byte::@1->print_char#0] -- register_copy @@ -12321,7 +12331,6 @@ print_byte: { //SEG230 print_byte::@return //SEG231 [106] return [ print_char_cursor#20 ] ( main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:95 [ print_line_cursor#1 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:95 [ mul16u_error::mn#0 print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:95 [ print_dword::dw#3 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:95 [ mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:95 [ print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:95 [ mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:95 [ print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:95 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:95 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:95 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:95 [ mul16u_error::ms#0 mul16u_error::mn#0 print_word::w#5 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:89::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:89::print_byte:97 [ print_line_cursor#1 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:89::print_byte:97 [ mul16u_error::mn#0 print_dword::dw#3 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:89::print_byte:97 [ print_dword::dw#3 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:70::print_dword:85::print_word:91::print_byte:97 [ mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sdword:74::print_dword:85::print_word:91::print_byte:97 [ print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:205::print_word:91::print_byte:97 [ mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_dword:209::print_word:91::print_byte:97 [ print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:62::print_word:118::print_byte:97 [ mul16s_error::b#0 mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16s_compare:11::mul16s_error:37::print_sword:66::print_word:118::print_byte:97 [ mul16s_error::ms#0 mul16s_error::mn#0 print_line_cursor#1 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:197::print_byte:97 [ mul16u_error::b#0 mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] main:2::mul16u_compare:9::mul16u_error:184::print_word:201::print_byte:97 [ mul16u_error::ms#0 mul16u_error::mn#0 print_char_cursor#20 ] ) rts - hextab: .text "0123456789abcdef" } //SEG232 print_char print_char: { @@ -13231,6 +13240,7 @@ print_cls: { //SEG561 [254] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" .align $100 mulf_sqr1_lo: .fill $200, 0 .align $100 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.sym index 0877ab311..6bfa6b400 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.sym @@ -272,8 +272,6 @@ (byte) print_byte::b#0 reg byte x 4.0 (byte) print_byte::b#1 reg byte x 4.0 (byte) print_byte::b#2 reg byte x 2.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -290,8 +288,8 @@ (byte*) print_char_cursor#118 print_char_cursor zp ZP_WORD:14 3.0 (byte*) print_char_cursor#120 print_char_cursor zp ZP_WORD:14 2.0 (byte*) print_char_cursor#130 print_char_cursor zp ZP_WORD:14 18.0 -(byte*~) print_char_cursor#157 print_char_cursor zp ZP_WORD:14 4.0 (byte*~) print_char_cursor#158 print_char_cursor zp ZP_WORD:14 4.0 +(byte*~) print_char_cursor#159 print_char_cursor zp ZP_WORD:14 4.0 (byte*) print_char_cursor#20 print_char_cursor zp ZP_WORD:14 0.7179487179487181 (byte*) print_char_cursor#76 print_char_cursor zp ZP_WORD:14 6.0 (void()) print_cls() @@ -308,6 +306,8 @@ (dword) print_dword::dw#1 dw zp ZP_DWORD:10 4.0 (dword) print_dword::dw#2 dw zp ZP_DWORD:10 4.0 (dword) print_dword::dw#3 dw zp ZP_DWORD:10 3.333333333333333 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:6 0.7068965517241378 (byte*) print_line_cursor#20 print_line_cursor zp ZP_WORD:6 24.0 @@ -367,7 +367,7 @@ zp ZP_WORD:8 [ print_str::str#11 print_str::str#13 print_str::str#0 mul16u::a#3 zp ZP_DWORD:10 [ print_sdword::dw#4 print_sdword::dw#3 print_sdword::dw#1 print_sdword::dw#2 print_sdword::dw#0 print_dword::dw#3 print_dword::dw#1 print_dword::dw#2 print_dword::dw#0 mul16s_error::ms#0 mul16s_compare::ms#0 mul16u_compare::ms#0 mul16u_error::ms#0 muls16s::m#5 muls16s::return#0 muls16s::m#3 muls16s::m#1 muls16s::m#2 muls16s::return#2 muls16u::return#0 muls16u::m#3 muls16u::m#1 muls16u::return#2 ] reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ] reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -zp ZP_WORD:14 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#157 print_char_cursor#158 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] +zp ZP_WORD:14 [ print_char_cursor#76 print_char_cursor#120 print_char_cursor#116 print_char_cursor#117 print_char_cursor#118 print_char_cursor#130 print_char_cursor#158 print_char_cursor#159 print_char_cursor#113 print_char_cursor#112 print_char_cursor#20 print_char_cursor#1 print_char_cursor#114 ] zp ZP_DWORD:16 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 mul16u::return#2 mul16s::return#0 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#3 mul16s::return#2 mul16s_compare::mn#0 mul16s_error::mn#0 mul16u_compare::mn#0 mul16u_error::mn#0 ] zp ZP_WORD:20 [ mul16u::b#2 mul16u::b#3 mul16u::b#1 mul16u_compare::b#2 mul16u_compare::b#5 mul16u_compare::b#1 muls16u::b#0 mul16u_error::b#0 ] zp ZP_DWORD:22 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.asm b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.asm index b2c0e3acd..afbc5ef3f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.asm +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.asm @@ -218,15 +218,14 @@ print_byte: { lsr lsr tay - lda hextab,y + lda print_hextab,y jsr print_char txa and #$f tay - lda hextab,y + lda print_hextab,y jsr print_char rts - hextab: .text "0123456789abcdef" } print_char: { ldy #0 @@ -834,6 +833,7 @@ print_cls: { bne b1 rts } + print_hextab: .text "0123456789abcdef" .align $100 mulf_sqr1_lo: .fill $200, 0 .align $100 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.cfg b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.cfg index 59ef77600..caf5029af 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.cfg +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.cfg @@ -97,7 +97,7 @@ mul8s_compare::@10: scope:[mul8s_compare] from mul8s_compare::@5 [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@1 [ mul8s_compare::a#1 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::a#1 print_line_cursor#1 ] ) to:mul8s_compare::@11 mul8s_compare::@11: scope:[mul8s_compare] from mul8s_compare::@10 - [53] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_char_cursor#188 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#188 print_line_cursor#1 ] ) + [53] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ print_char_cursor#189 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#189 print_line_cursor#1 ] ) [54] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#130 ] ( main:2::mul8s_compare:15 [ print_line_cursor#1 print_char_cursor#130 ] ) to:mul8s_compare::@16 mul8s_compare::@16: scope:[mul8s_compare] from mul8s_compare::@11 @@ -120,7 +120,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [62] return [ print_line_cursor#1 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 ] main:2::mul8u_compare:13::print_ln:229 [ print_line_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_ln:252 [ print_line_cursor#1 ] main:2::mulf_tables_cmp:11::print_ln:280 [ print_line_cursor#1 ] ) to:@return print_str: scope:[print_str] from mul8s_compare::@11 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@11 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@7 - [63] (byte*) print_char_cursor#149 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#188 mul8s_error/(byte*~) print_char_cursor#189 mul8s_error::@2/(byte*) print_char_cursor#17 mul8s_error::@4/(byte*) print_char_cursor#17 mul8s_error::@6/(byte*) print_char_cursor#17 mul8s_error::@8/(byte*) print_char_cursor#17 mul8u_compare::@11/(byte*) print_char_cursor#30 mul8u_error/(byte*) print_char_cursor#30 mul8u_error::@2/(byte*) print_char_cursor#17 mul8u_error::@4/(byte*) print_char_cursor#17 mul8u_error::@6/(byte*) print_char_cursor#17 mul8u_error::@8/(byte*) print_char_cursor#17 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@7/(byte*) print_char_cursor#17 ) [ print_str::str#18 print_char_cursor#149 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_str::str#18 print_char_cursor#149 ] ) + [63] (byte*) print_char_cursor#149 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#189 mul8s_error/(byte*~) print_char_cursor#190 mul8s_error::@2/(byte*) print_char_cursor#17 mul8s_error::@4/(byte*) print_char_cursor#17 mul8s_error::@6/(byte*) print_char_cursor#17 mul8s_error::@8/(byte*) print_char_cursor#17 mul8u_compare::@11/(byte*) print_char_cursor#30 mul8u_error/(byte*) print_char_cursor#30 mul8u_error::@2/(byte*) print_char_cursor#17 mul8u_error::@4/(byte*) print_char_cursor#17 mul8u_error::@6/(byte*) print_char_cursor#17 mul8u_error::@8/(byte*) print_char_cursor#17 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@7/(byte*) print_char_cursor#17 ) [ print_str::str#18 print_char_cursor#149 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_str::str#18 print_char_cursor#149 ] ) [63] (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) mul8s_error::str1 mul8s_error::@4/(const string) mul8s_error::str2 mul8s_error::@6/(const string) mul8s_error::str3 mul8s_error::@8/(const string) mul8s_error::str4 mul8u_compare::@11/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) mul8u_error::str1 mul8u_error::@4/(const string) mul8u_error::str2 mul8u_error::@6/(const string) mul8u_error::str3 mul8u_error::@8/(const string) mul8u_error::str4 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@7/(const string) mulf_tables_cmp::str1 ) [ print_str::str#18 print_char_cursor#149 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_str::str#18 print_char_cursor#149 ] ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -137,7 +137,7 @@ print_str::@2: scope:[print_str] from print_str::@1 [69] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#16 [ print_str::str#0 print_char_cursor#1 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#0 print_char_cursor#1 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_str::str#0 print_char_cursor#1 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_str::str#0 print_char_cursor#1 ] ) to:print_str::@1 mul8s_error: scope:[mul8s_error] from mul8s_compare::@8 - [70] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#189 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#189 ] ) + [70] (byte*~) print_char_cursor#190 ← (byte*) print_line_cursor#1 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#190 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#190 ] ) [71] call print_str param-assignment [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 ] ) to:mul8s_error::@1 mul8s_error::@1: scope:[mul8s_error] from mul8s_error @@ -220,12 +220,12 @@ print_byte: scope:[print_byte] from mul8u_error::@1 mul8u_error::@3 print_sbyte [108] (byte*) print_char_cursor#137 ← phi( mul8u_error::@1/(byte*) print_char_cursor#130 mul8u_error::@3/(byte*) print_char_cursor#130 print_sbyte::@1/(byte*) print_char_cursor#134 print_word/(byte*) print_char_cursor#136 print_word::@1/(byte*) print_char_cursor#17 ) [ print_byte::b#5 print_char_cursor#137 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] ) [108] (byte) print_byte::b#5 ← phi( mul8u_error::@1/(byte) print_byte::b#3 mul8u_error::@3/(byte) print_byte::b#4 print_sbyte::@1/(byte~) print_byte::b#9 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 ) [ print_byte::b#5 print_char_cursor#137 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] ) [109] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#5 print_char_cursor#137 print_byte::$0 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] ) - [110] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] ) + [110] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] ) [111] call print_char param-assignment [ print_char_cursor#17 print_byte::b#5 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_byte::b#5 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_byte::b#5 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::b#5 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] ) - [113] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) + [113] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) [114] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -545,7 +545,7 @@ mulf_tables_cmp::@8: scope:[mulf_tables_cmp] from mulf_tables_cmp::@7 to:mulf_tables_cmp::@return mulf_tables_cmp::@return: scope:[mulf_tables_cmp] from mulf_tables_cmp::@10 mulf_tables_cmp::@8 [272] (byte*) print_line_cursor#10 ← phi( mulf_tables_cmp::@10/(byte*) print_line_cursor#1 mulf_tables_cmp::@8/((byte*))(word/signed word/dword/signed dword) 1024 ) [ print_line_cursor#10 print_char_cursor#30 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#10 print_char_cursor#30 ] ) - [272] (byte*) print_char_cursor#30 ← phi( mulf_tables_cmp::@10/(byte*~) print_char_cursor#222 mulf_tables_cmp::@8/(byte*) print_char_cursor#17 ) [ print_line_cursor#10 print_char_cursor#30 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#10 print_char_cursor#30 ] ) + [272] (byte*) print_char_cursor#30 ← phi( mulf_tables_cmp::@10/(byte*~) print_char_cursor#223 mulf_tables_cmp::@8/(byte*) print_char_cursor#17 ) [ print_line_cursor#10 print_char_cursor#30 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#10 print_char_cursor#30 ] ) [273] return [ print_line_cursor#10 print_char_cursor#30 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#10 print_char_cursor#30 ] ) to:@return mulf_tables_cmp::@2: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 @@ -560,7 +560,7 @@ mulf_tables_cmp::@5: scope:[mulf_tables_cmp] from mulf_tables_cmp::@2 mulf_tables_cmp::@10: scope:[mulf_tables_cmp] from mulf_tables_cmp::@5 [279] phi() [ print_char_cursor#130 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#130 ] ) [280] call print_ln param-assignment [ print_line_cursor#1 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 ] ) - [281] (byte*~) print_char_cursor#222 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#222 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#222 ] ) + [281] (byte*~) print_char_cursor#223 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#223 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#223 ] ) to:mulf_tables_cmp::@return mulf_init_asm: scope:[mulf_init_asm] from main::@2 asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.log b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.log index 4d27c4395..2e674a361 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.log @@ -290,12 +290,13 @@ void print_sdword(signed dword dw) { print_dword((dword)dw); } +const byte[] print_hextab = "0123456789abcdef"; + // Print a byte as HEX void print_byte(byte b) { // Table of hexadecimal digits - const byte[] hextab = "0123456789abcdef"; - print_char(hextab[b>>4]); - print_char(hextab[b&$f]); + print_char(print_hextab[b>>4]); + print_char(print_hextab[b&$f]); } // Print a single char @@ -628,12 +629,12 @@ print_sdword::@1: print_sdword::@return: return endproc // print_sdword() + (byte[]) print_hextab ← (string) "0123456789abcdef" proc (void()) print_byte((byte) print_byte::b) - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) print_byte::@return: return endproc // print_byte() @@ -1465,7 +1466,6 @@ SYMBOLS (void~) print_byte::$3 (label) print_byte::@return (byte) print_byte::b -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -1483,6 +1483,7 @@ SYMBOLS (void~) print_dword::$3 (label) print_dword::@return (dword) print_dword::dw +(byte[]) print_hextab (byte*) print_line_cursor (void()) print_ln() (byte*~) print_ln::$0 @@ -1775,13 +1776,13 @@ print_sdword::@return: scope:[print_sdword] from print_sdword::@1 return to:@return @10: scope:[] from @9 + (byte[]) print_hextab ← (string) "0123456789abcdef" to:@11 print_byte: scope:[print_byte] from - (byte[]) print_byte::hextab ← (string) "0123456789abcdef" (byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (void~) print_byte::$1 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$0) + (void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0) (byte~) print_byte::$2 ← (byte) print_byte::b & (byte/signed byte/word/signed word/dword/signed dword) 15 - (void~) print_byte::$3 ← call print_char *((byte[]) print_byte::hextab + (byte~) print_byte::$2) + (void~) print_byte::$3 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$2) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte return @@ -2526,7 +2527,7 @@ Eliminating unused variable - keeping the call (void~) mul8s_error::$7 Eliminating unused variable - keeping the call (void~) mul8s_error::$8 Eliminating unused variable - keeping the call (void~) mul8s_error::$9 Eliminating unused variable - keeping the call (void~) mul8s_error::$10 -Creating constant string variable for inline (const string) print_byte::$4 "0123456789abcdef" +Creating constant string variable for inline (const string) $0 "0123456789abcdef" Creating constant string variable for inline (const string) mulf_tables_cmp::str "multiply table mismatch at @" Creating constant string variable for inline (const string) mulf_tables_cmp::str1 " / @" Creating constant string variable for inline (const string) mulf_tables_cmp::str2 "multiply tables match!@" @@ -2555,7 +2556,6 @@ Removing empty block @6 Removing empty block @7 Removing empty block @8 Removing empty block @9 -Removing empty block @10 Removing empty block @11 Removing empty block @12 Removing empty block @13 @@ -2631,7 +2631,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN (byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) print_line_cursor#0 ← (byte*) print_screen#0 (byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0 - to:@19 + to:@10 print_str: scope:[print_str] from mul8s_compare::@11 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@11 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@7 (byte*) print_char_cursor#149 ← phi( mul8s_compare::@11/(byte*) print_char_cursor#146 mul8s_error/(byte*) print_char_cursor#147 mul8s_error::@2/(byte*) print_char_cursor#54 mul8s_error::@4/(byte*) print_char_cursor#56 mul8s_error::@6/(byte*) print_char_cursor#58 mul8s_error::@8/(byte*) print_char_cursor#60 mul8u_compare::@11/(byte*) print_char_cursor#143 mul8u_error/(byte*) print_char_cursor#144 mul8u_error::@2/(byte*) print_char_cursor#38 mul8u_error::@4/(byte*) print_char_cursor#40 mul8u_error::@6/(byte*) print_char_cursor#42 mul8u_error::@8/(byte*) print_char_cursor#44 mulf_tables_cmp::@3/(byte*) print_char_cursor#140 mulf_tables_cmp::@5/(byte*) print_char_cursor#141 mulf_tables_cmp::@7/(byte*) print_char_cursor#27 ) (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(byte*) print_str::str#10 mul8s_error/(byte*) print_str::str#11 mul8s_error::@2/(byte*) print_str::str#12 mul8s_error::@4/(byte*) print_str::str#13 mul8s_error::@6/(byte*) print_str::str#14 mul8s_error::@8/(byte*) print_str::str#15 mul8u_compare::@11/(byte*) print_str::str#4 mul8u_error/(byte*) print_str::str#5 mul8u_error::@2/(byte*) print_str::str#6 mul8u_error::@4/(byte*) print_str::str#7 mul8u_error::@6/(byte*) print_str::str#8 mul8u_error::@8/(byte*) print_str::str#9 mulf_tables_cmp::@3/(byte*) print_str::str#1 mulf_tables_cmp::@5/(byte*) print_str::str#3 mulf_tables_cmp::@7/(byte*) print_str::str#2 ) @@ -2773,12 +2773,17 @@ print_word::@return: scope:[print_word] from print_word::@2 (byte*) print_char_cursor#13 ← (byte*) print_char_cursor#78 return to:@return +@10: scope:[] from @begin + (byte*) print_screen#9 ← phi( @begin/(byte*) print_screen#0 ) + (byte*) print_char_cursor#173 ← phi( @begin/(byte*) print_char_cursor#0 ) + (byte*) print_line_cursor#89 ← phi( @begin/(byte*) print_line_cursor#0 ) + (byte[]) print_hextab#0 ← (const string) $0 + to:@19 print_byte: scope:[print_byte] from mul8u_error::@1 mul8u_error::@3 print_sbyte::@1 print_word print_word::@1 (byte*) print_char_cursor#137 ← phi( mul8u_error::@1/(byte*) print_char_cursor#37 mul8u_error::@3/(byte*) print_char_cursor#39 print_sbyte::@1/(byte*) print_char_cursor#134 print_word/(byte*) print_char_cursor#136 print_word::@1/(byte*) print_char_cursor#11 ) (byte) print_byte::b#5 ← phi( mul8u_error::@1/(byte) print_byte::b#3 mul8u_error::@3/(byte) print_byte::b#4 print_sbyte::@1/(byte) print_byte::b#0 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 ) - (byte[]) print_byte::hextab#0 ← (const string) print_byte::$4 (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte) print_char::ch#2 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$0) + (byte) print_char::ch#2 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$0) call print_char param-assignment to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte @@ -2786,7 +2791,7 @@ print_byte::@1: scope:[print_byte] from print_byte (byte*) print_char_cursor#79 ← phi( print_byte/(byte*) print_char_cursor#18 ) (byte*) print_char_cursor#14 ← (byte*) print_char_cursor#79 (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte) print_char::ch#3 ← *((byte[]) print_byte::hextab#0 + (byte~) print_byte::$2) + (byte) print_char::ch#3 ← *((byte[]) print_hextab#0 + (byte~) print_byte::$2) call print_char param-assignment to:print_byte::@2 print_byte::@2: scope:[print_byte] from print_byte::@1 @@ -2938,10 +2943,10 @@ mul8s::@return: scope:[mul8s] from mul8s::@2 (signed word) mul8s::return#1 ← (signed word) mul8s::return#3 return to:@return -@19: scope:[] from @begin - (byte*) print_screen#8 ← phi( @begin/(byte*) print_screen#0 ) - (byte*) print_char_cursor#168 ← phi( @begin/(byte*) print_char_cursor#0 ) - (byte*) print_line_cursor#78 ← phi( @begin/(byte*) print_line_cursor#0 ) +@19: scope:[] from @10 + (byte*) print_screen#8 ← phi( @10/(byte*) print_screen#9 ) + (byte*) print_char_cursor#168 ← phi( @10/(byte*) print_char_cursor#173 ) + (byte*) print_line_cursor#78 ← phi( @10/(byte*) print_line_cursor#89 ) (byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) } (byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) } @@ -3297,14 +3302,14 @@ mulf_init_asm::@return: scope:[mulf_init_asm] from mulf_init_asm return to:@return mulf_tables_cmp: scope:[mulf_tables_cmp] from main::@3 - (byte*) print_line_cursor#89 ← phi( main::@3/(byte*) print_line_cursor#47 ) + (byte*) print_line_cursor#90 ← phi( main::@3/(byte*) print_line_cursor#47 ) (byte*) print_char_cursor#161 ← phi( main::@3/(byte*) print_char_cursor#139 ) (byte*) BGCOL#9 ← phi( main::@3/(byte*) BGCOL#16 ) (byte*) mulf_tables_cmp::asm_sqr#0 ← (byte[512]) mula_sqr1_lo#0 (byte*) mulf_tables_cmp::kc_sqr#0 ← (byte[512]) mulf_sqr1_lo#0 to:mulf_tables_cmp::@1 mulf_tables_cmp::@1: scope:[mulf_tables_cmp] from mulf_tables_cmp mulf_tables_cmp::@2 - (byte*) print_line_cursor#79 ← phi( mulf_tables_cmp/(byte*) print_line_cursor#89 mulf_tables_cmp::@2/(byte*) print_line_cursor#69 ) + (byte*) print_line_cursor#79 ← phi( mulf_tables_cmp/(byte*) print_line_cursor#90 mulf_tables_cmp::@2/(byte*) print_line_cursor#69 ) (byte*) print_char_cursor#153 ← phi( mulf_tables_cmp/(byte*) print_char_cursor#161 mulf_tables_cmp::@2/(byte*) print_char_cursor#154 ) (byte*) BGCOL#6 ← phi( mulf_tables_cmp/(byte*) BGCOL#9 mulf_tables_cmp::@2/(byte*) BGCOL#10 ) (byte*) mulf_tables_cmp::asm_sqr#2 ← phi( mulf_tables_cmp/(byte*) mulf_tables_cmp::asm_sqr#0 mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::asm_sqr#1 ) @@ -3327,7 +3332,7 @@ mulf_tables_cmp::@2: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 if((boolean~) mulf_tables_cmp::$10) goto mulf_tables_cmp::@1 to:mulf_tables_cmp::@5 mulf_tables_cmp::@3: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 - (byte*) print_line_cursor#90 ← phi( mulf_tables_cmp::@1/(byte*) print_line_cursor#79 ) + (byte*) print_line_cursor#91 ← phi( mulf_tables_cmp::@1/(byte*) print_line_cursor#79 ) (byte*) mulf_tables_cmp::kc_sqr#7 ← phi( mulf_tables_cmp::@1/(byte*) mulf_tables_cmp::kc_sqr#2 ) (byte*) mulf_tables_cmp::asm_sqr#5 ← phi( mulf_tables_cmp::@1/(byte*) mulf_tables_cmp::asm_sqr#2 ) (byte*) print_char_cursor#140 ← phi( mulf_tables_cmp::@1/(byte*) print_char_cursor#153 ) @@ -3337,7 +3342,7 @@ mulf_tables_cmp::@3: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 call print_str param-assignment to:mulf_tables_cmp::@6 mulf_tables_cmp::@6: scope:[mulf_tables_cmp] from mulf_tables_cmp::@3 - (byte*) print_line_cursor#80 ← phi( mulf_tables_cmp::@3/(byte*) print_line_cursor#90 ) + (byte*) print_line_cursor#80 ← phi( mulf_tables_cmp::@3/(byte*) print_line_cursor#91 ) (byte*) mulf_tables_cmp::kc_sqr#6 ← phi( mulf_tables_cmp::@3/(byte*) mulf_tables_cmp::kc_sqr#7 ) (byte*) mulf_tables_cmp::asm_sqr#4 ← phi( mulf_tables_cmp::@3/(byte*) mulf_tables_cmp::asm_sqr#5 ) (byte*) print_char_cursor#90 ← phi( mulf_tables_cmp::@3/(byte*) print_char_cursor#2 ) @@ -3394,21 +3399,21 @@ mulf_tables_cmp::@11: scope:[mulf_tables_cmp] from mulf_tables_cmp::@10 (byte*) print_char_cursor#32 ← (byte*) print_char_cursor#96 to:mulf_tables_cmp::@return mul8u_compare: scope:[mul8u_compare] from main::@4 - (byte*) print_line_cursor#107 ← phi( main::@4/(byte*) print_line_cursor#6 ) - (byte*) print_char_cursor#181 ← phi( main::@4/(byte*) print_char_cursor#22 ) + (byte*) print_line_cursor#108 ← phi( main::@4/(byte*) print_line_cursor#6 ) + (byte*) print_char_cursor#182 ← phi( main::@4/(byte*) print_char_cursor#22 ) (byte*) BGCOL#33 ← phi( main::@4/(byte*) BGCOL#37 ) (byte) mul8u_compare::a#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mul8u_compare::@1 mul8u_compare::@1: scope:[mul8u_compare] from mul8u_compare mul8u_compare::@10 - (byte*) print_line_cursor#103 ← phi( mul8u_compare/(byte*) print_line_cursor#107 mul8u_compare::@10/(byte*) print_line_cursor#72 ) - (byte*) print_char_cursor#179 ← phi( mul8u_compare/(byte*) print_char_cursor#181 mul8u_compare::@10/(byte*) print_char_cursor#156 ) + (byte*) print_line_cursor#104 ← phi( mul8u_compare/(byte*) print_line_cursor#108 mul8u_compare::@10/(byte*) print_line_cursor#72 ) + (byte*) print_char_cursor#180 ← phi( mul8u_compare/(byte*) print_char_cursor#182 mul8u_compare::@10/(byte*) print_char_cursor#156 ) (byte*) BGCOL#29 ← phi( mul8u_compare/(byte*) BGCOL#33 mul8u_compare::@10/(byte*) BGCOL#34 ) (byte) mul8u_compare::a#7 ← phi( mul8u_compare/(byte) mul8u_compare::a#0 mul8u_compare::@10/(byte) mul8u_compare::a#1 ) (byte) mul8u_compare::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:mul8u_compare::@2 mul8u_compare::@2: scope:[mul8u_compare] from mul8u_compare::@1 mul8u_compare::@5 - (byte*) print_line_cursor#99 ← phi( mul8u_compare::@1/(byte*) print_line_cursor#103 mul8u_compare::@5/(byte*) print_line_cursor#83 ) - (byte*) print_char_cursor#177 ← phi( mul8u_compare::@1/(byte*) print_char_cursor#179 mul8u_compare::@5/(byte*) print_char_cursor#164 ) + (byte*) print_line_cursor#100 ← phi( mul8u_compare::@1/(byte*) print_line_cursor#104 mul8u_compare::@5/(byte*) print_line_cursor#83 ) + (byte*) print_char_cursor#178 ← phi( mul8u_compare::@1/(byte*) print_char_cursor#180 mul8u_compare::@5/(byte*) print_char_cursor#164 ) (byte*) BGCOL#27 ← phi( mul8u_compare::@1/(byte*) BGCOL#29 mul8u_compare::@5/(byte*) BGCOL#30 ) (byte) mul8u_compare::b#2 ← phi( mul8u_compare::@1/(byte) mul8u_compare::b#0 mul8u_compare::@5/(byte) mul8u_compare::b#1 ) (byte) mul8u_compare::a#2 ← phi( mul8u_compare::@1/(byte) mul8u_compare::a#7 mul8u_compare::@5/(byte) mul8u_compare::a#8 ) @@ -3418,8 +3423,8 @@ mul8u_compare::@2: scope:[mul8u_compare] from mul8u_compare::@1 mul8u_compare:: (word) muls8u::return#2 ← (word) muls8u::return#1 to:mul8u_compare::@12 mul8u_compare::@12: scope:[mul8u_compare] from mul8u_compare::@2 - (byte*) print_line_cursor#95 ← phi( mul8u_compare::@2/(byte*) print_line_cursor#99 ) - (byte*) print_char_cursor#175 ← phi( mul8u_compare::@2/(byte*) print_char_cursor#177 ) + (byte*) print_line_cursor#96 ← phi( mul8u_compare::@2/(byte*) print_line_cursor#100 ) + (byte*) print_char_cursor#176 ← phi( mul8u_compare::@2/(byte*) print_char_cursor#178 ) (byte*) BGCOL#25 ← phi( mul8u_compare::@2/(byte*) BGCOL#27 ) (byte) mul8u_compare::b#3 ← phi( mul8u_compare::@2/(byte) mul8u_compare::b#2 ) (byte) mul8u_compare::a#3 ← phi( mul8u_compare::@2/(byte) mul8u_compare::a#2 ) @@ -3432,8 +3437,8 @@ mul8u_compare::@12: scope:[mul8u_compare] from mul8u_compare::@2 (word) mulf8u::return#3 ← (word) mulf8u::return#1 to:mul8u_compare::@13 mul8u_compare::@13: scope:[mul8u_compare] from mul8u_compare::@12 - (byte*) print_line_cursor#91 ← phi( mul8u_compare::@12/(byte*) print_line_cursor#95 ) - (byte*) print_char_cursor#173 ← phi( mul8u_compare::@12/(byte*) print_char_cursor#175 ) + (byte*) print_line_cursor#92 ← phi( mul8u_compare::@12/(byte*) print_line_cursor#96 ) + (byte*) print_char_cursor#174 ← phi( mul8u_compare::@12/(byte*) print_char_cursor#176 ) (byte*) BGCOL#22 ← phi( mul8u_compare::@12/(byte*) BGCOL#25 ) (word) mul8u_compare::ms#4 ← phi( mul8u_compare::@12/(word) mul8u_compare::ms#0 ) (byte) mul8u_compare::b#4 ← phi( mul8u_compare::@12/(byte) mul8u_compare::b#3 ) @@ -3447,8 +3452,8 @@ mul8u_compare::@13: scope:[mul8u_compare] from mul8u_compare::@12 (word) mul8u::return#3 ← (word) mul8u::return#1 to:mul8u_compare::@14 mul8u_compare::@14: scope:[mul8u_compare] from mul8u_compare::@13 - (byte*) print_line_cursor#81 ← phi( mul8u_compare::@13/(byte*) print_line_cursor#91 ) - (byte*) print_char_cursor#169 ← phi( mul8u_compare::@13/(byte*) print_char_cursor#173 ) + (byte*) print_line_cursor#81 ← phi( mul8u_compare::@13/(byte*) print_line_cursor#92 ) + (byte*) print_char_cursor#169 ← phi( mul8u_compare::@13/(byte*) print_char_cursor#174 ) (byte) mul8u_compare::a#12 ← phi( mul8u_compare::@13/(byte) mul8u_compare::a#4 ) (byte*) BGCOL#17 ← phi( mul8u_compare::@13/(byte*) BGCOL#22 ) (byte) mul8u_compare::b#10 ← phi( mul8u_compare::@13/(byte) mul8u_compare::b#4 ) @@ -3580,7 +3585,7 @@ mul8u_compare::@17: scope:[mul8u_compare] from mul8u_compare::@16 (byte*) print_char_cursor#36 ← (byte*) print_char_cursor#100 to:mul8u_compare::@return mul8u_error: scope:[mul8u_error] from mul8u_compare::@8 - (byte*) print_line_cursor#113 ← phi( mul8u_compare::@8/(byte*) print_line_cursor#50 ) + (byte*) print_line_cursor#114 ← phi( mul8u_compare::@8/(byte*) print_line_cursor#50 ) (word) mul8u_error::mf#10 ← phi( mul8u_compare::@8/(word) mul8u_error::mf#0 ) (word) mul8u_error::mn#8 ← phi( mul8u_compare::@8/(word) mul8u_error::mn#0 ) (word) mul8u_error::ms#6 ← phi( mul8u_compare::@8/(word) mul8u_error::ms#0 ) @@ -3591,7 +3596,7 @@ mul8u_error: scope:[mul8u_error] from mul8u_compare::@8 call print_str param-assignment to:mul8u_error::@1 mul8u_error::@1: scope:[mul8u_error] from mul8u_error - (byte*) print_line_cursor#111 ← phi( mul8u_error/(byte*) print_line_cursor#113 ) + (byte*) print_line_cursor#112 ← phi( mul8u_error/(byte*) print_line_cursor#114 ) (word) mul8u_error::mf#9 ← phi( mul8u_error/(word) mul8u_error::mf#10 ) (word) mul8u_error::mn#7 ← phi( mul8u_error/(word) mul8u_error::mn#8 ) (word) mul8u_error::ms#5 ← phi( mul8u_error/(word) mul8u_error::ms#6 ) @@ -3603,7 +3608,7 @@ mul8u_error::@1: scope:[mul8u_error] from mul8u_error call print_byte param-assignment to:mul8u_error::@2 mul8u_error::@2: scope:[mul8u_error] from mul8u_error::@1 - (byte*) print_line_cursor#108 ← phi( mul8u_error::@1/(byte*) print_line_cursor#111 ) + (byte*) print_line_cursor#109 ← phi( mul8u_error::@1/(byte*) print_line_cursor#112 ) (word) mul8u_error::mf#8 ← phi( mul8u_error::@1/(word) mul8u_error::mf#9 ) (word) mul8u_error::mn#6 ← phi( mul8u_error::@1/(word) mul8u_error::mn#7 ) (word) mul8u_error::ms#4 ← phi( mul8u_error::@1/(word) mul8u_error::ms#5 ) @@ -3614,7 +3619,7 @@ mul8u_error::@2: scope:[mul8u_error] from mul8u_error::@1 call print_str param-assignment to:mul8u_error::@3 mul8u_error::@3: scope:[mul8u_error] from mul8u_error::@2 - (byte*) print_line_cursor#104 ← phi( mul8u_error::@2/(byte*) print_line_cursor#108 ) + (byte*) print_line_cursor#105 ← phi( mul8u_error::@2/(byte*) print_line_cursor#109 ) (word) mul8u_error::mf#7 ← phi( mul8u_error::@2/(word) mul8u_error::mf#8 ) (word) mul8u_error::mn#5 ← phi( mul8u_error::@2/(word) mul8u_error::mn#6 ) (word) mul8u_error::ms#3 ← phi( mul8u_error::@2/(word) mul8u_error::ms#4 ) @@ -3625,7 +3630,7 @@ mul8u_error::@3: scope:[mul8u_error] from mul8u_error::@2 call print_byte param-assignment to:mul8u_error::@4 mul8u_error::@4: scope:[mul8u_error] from mul8u_error::@3 - (byte*) print_line_cursor#100 ← phi( mul8u_error::@3/(byte*) print_line_cursor#104 ) + (byte*) print_line_cursor#101 ← phi( mul8u_error::@3/(byte*) print_line_cursor#105 ) (word) mul8u_error::mf#6 ← phi( mul8u_error::@3/(word) mul8u_error::mf#7 ) (word) mul8u_error::mn#4 ← phi( mul8u_error::@3/(word) mul8u_error::mn#5 ) (word) mul8u_error::ms#2 ← phi( mul8u_error::@3/(word) mul8u_error::ms#3 ) @@ -3635,7 +3640,7 @@ mul8u_error::@4: scope:[mul8u_error] from mul8u_error::@3 call print_str param-assignment to:mul8u_error::@5 mul8u_error::@5: scope:[mul8u_error] from mul8u_error::@4 - (byte*) print_line_cursor#96 ← phi( mul8u_error::@4/(byte*) print_line_cursor#100 ) + (byte*) print_line_cursor#97 ← phi( mul8u_error::@4/(byte*) print_line_cursor#101 ) (word) mul8u_error::mf#5 ← phi( mul8u_error::@4/(word) mul8u_error::mf#6 ) (word) mul8u_error::mn#3 ← phi( mul8u_error::@4/(word) mul8u_error::mn#4 ) (word) mul8u_error::ms#1 ← phi( mul8u_error::@4/(word) mul8u_error::ms#2 ) @@ -3645,7 +3650,7 @@ mul8u_error::@5: scope:[mul8u_error] from mul8u_error::@4 call print_word param-assignment to:mul8u_error::@6 mul8u_error::@6: scope:[mul8u_error] from mul8u_error::@5 - (byte*) print_line_cursor#92 ← phi( mul8u_error::@5/(byte*) print_line_cursor#96 ) + (byte*) print_line_cursor#93 ← phi( mul8u_error::@5/(byte*) print_line_cursor#97 ) (word) mul8u_error::mf#4 ← phi( mul8u_error::@5/(word) mul8u_error::mf#5 ) (word) mul8u_error::mn#2 ← phi( mul8u_error::@5/(word) mul8u_error::mn#3 ) (byte*) print_char_cursor#106 ← phi( mul8u_error::@5/(byte*) print_char_cursor#13 ) @@ -3654,7 +3659,7 @@ mul8u_error::@6: scope:[mul8u_error] from mul8u_error::@5 call print_str param-assignment to:mul8u_error::@7 mul8u_error::@7: scope:[mul8u_error] from mul8u_error::@6 - (byte*) print_line_cursor#84 ← phi( mul8u_error::@6/(byte*) print_line_cursor#92 ) + (byte*) print_line_cursor#84 ← phi( mul8u_error::@6/(byte*) print_line_cursor#93 ) (word) mul8u_error::mf#3 ← phi( mul8u_error::@6/(word) mul8u_error::mf#4 ) (word) mul8u_error::mn#1 ← phi( mul8u_error::@6/(word) mul8u_error::mn#2 ) (byte*) print_char_cursor#107 ← phi( mul8u_error::@6/(byte*) print_char_cursor#2 ) @@ -3698,23 +3703,23 @@ mul8u_error::@return: scope:[mul8u_error] from mul8u_error::@11 return to:@return mul8s_compare: scope:[mul8s_compare] from main::@5 - (byte*) print_line_cursor#109 ← phi( main::@5/(byte*) print_line_cursor#7 ) - (byte*) print_char_cursor#182 ← phi( main::@5/(byte*) print_char_cursor#23 ) + (byte*) print_line_cursor#110 ← phi( main::@5/(byte*) print_line_cursor#7 ) + (byte*) print_char_cursor#183 ← phi( main::@5/(byte*) print_char_cursor#23 ) (byte*) BGCOL#35 ← phi( main::@5/(byte*) BGCOL#38 ) (signed byte/signed word/signed dword~) mul8s_compare::$0 ← - (byte/word/signed word/dword/signed dword) 128 (signed byte) mul8s_compare::a#0 ← (signed byte/signed word/signed dword~) mul8s_compare::$0 to:mul8s_compare::@1 mul8s_compare::@1: scope:[mul8s_compare] from mul8s_compare mul8s_compare::@10 - (byte*) print_line_cursor#105 ← phi( mul8s_compare/(byte*) print_line_cursor#109 mul8s_compare::@10/(byte*) print_line_cursor#76 ) - (byte*) print_char_cursor#180 ← phi( mul8s_compare/(byte*) print_char_cursor#182 mul8s_compare::@10/(byte*) print_char_cursor#158 ) + (byte*) print_line_cursor#106 ← phi( mul8s_compare/(byte*) print_line_cursor#110 mul8s_compare::@10/(byte*) print_line_cursor#76 ) + (byte*) print_char_cursor#181 ← phi( mul8s_compare/(byte*) print_char_cursor#183 mul8s_compare::@10/(byte*) print_char_cursor#158 ) (byte*) BGCOL#31 ← phi( mul8s_compare/(byte*) BGCOL#35 mul8s_compare::@10/(byte*) BGCOL#36 ) (signed byte) mul8s_compare::a#7 ← phi( mul8s_compare/(signed byte) mul8s_compare::a#0 mul8s_compare::@10/(signed byte) mul8s_compare::a#1 ) (signed byte/signed word/signed dword~) mul8s_compare::$1 ← - (byte/word/signed word/dword/signed dword) 128 (signed byte) mul8s_compare::b#0 ← (signed byte/signed word/signed dword~) mul8s_compare::$1 to:mul8s_compare::@2 mul8s_compare::@2: scope:[mul8s_compare] from mul8s_compare::@1 mul8s_compare::@5 - (byte*) print_line_cursor#101 ← phi( mul8s_compare::@1/(byte*) print_line_cursor#105 mul8s_compare::@5/(byte*) print_line_cursor#87 ) - (byte*) print_char_cursor#178 ← phi( mul8s_compare::@1/(byte*) print_char_cursor#180 mul8s_compare::@5/(byte*) print_char_cursor#167 ) + (byte*) print_line_cursor#102 ← phi( mul8s_compare::@1/(byte*) print_line_cursor#106 mul8s_compare::@5/(byte*) print_line_cursor#87 ) + (byte*) print_char_cursor#179 ← phi( mul8s_compare::@1/(byte*) print_char_cursor#181 mul8s_compare::@5/(byte*) print_char_cursor#167 ) (byte*) BGCOL#28 ← phi( mul8s_compare::@1/(byte*) BGCOL#31 mul8s_compare::@5/(byte*) BGCOL#32 ) (signed byte) mul8s_compare::b#2 ← phi( mul8s_compare::@1/(signed byte) mul8s_compare::b#0 mul8s_compare::@5/(signed byte) mul8s_compare::b#1 ) (signed byte) mul8s_compare::a#2 ← phi( mul8s_compare::@1/(signed byte) mul8s_compare::a#7 mul8s_compare::@5/(signed byte) mul8s_compare::a#8 ) @@ -3724,8 +3729,8 @@ mul8s_compare::@2: scope:[mul8s_compare] from mul8s_compare::@1 mul8s_compare:: (signed word) muls8s::return#2 ← (signed word) muls8s::return#1 to:mul8s_compare::@12 mul8s_compare::@12: scope:[mul8s_compare] from mul8s_compare::@2 - (byte*) print_line_cursor#97 ← phi( mul8s_compare::@2/(byte*) print_line_cursor#101 ) - (byte*) print_char_cursor#176 ← phi( mul8s_compare::@2/(byte*) print_char_cursor#178 ) + (byte*) print_line_cursor#98 ← phi( mul8s_compare::@2/(byte*) print_line_cursor#102 ) + (byte*) print_char_cursor#177 ← phi( mul8s_compare::@2/(byte*) print_char_cursor#179 ) (byte*) BGCOL#26 ← phi( mul8s_compare::@2/(byte*) BGCOL#28 ) (signed byte) mul8s_compare::b#3 ← phi( mul8s_compare::@2/(signed byte) mul8s_compare::b#2 ) (signed byte) mul8s_compare::a#3 ← phi( mul8s_compare::@2/(signed byte) mul8s_compare::a#2 ) @@ -3738,8 +3743,8 @@ mul8s_compare::@12: scope:[mul8s_compare] from mul8s_compare::@2 (signed word) mulf8s::return#2 ← (signed word) mulf8s::return#1 to:mul8s_compare::@13 mul8s_compare::@13: scope:[mul8s_compare] from mul8s_compare::@12 - (byte*) print_line_cursor#93 ← phi( mul8s_compare::@12/(byte*) print_line_cursor#97 ) - (byte*) print_char_cursor#174 ← phi( mul8s_compare::@12/(byte*) print_char_cursor#176 ) + (byte*) print_line_cursor#94 ← phi( mul8s_compare::@12/(byte*) print_line_cursor#98 ) + (byte*) print_char_cursor#175 ← phi( mul8s_compare::@12/(byte*) print_char_cursor#177 ) (byte*) BGCOL#23 ← phi( mul8s_compare::@12/(byte*) BGCOL#26 ) (signed word) mul8s_compare::ms#4 ← phi( mul8s_compare::@12/(signed word) mul8s_compare::ms#0 ) (signed byte) mul8s_compare::b#4 ← phi( mul8s_compare::@12/(signed byte) mul8s_compare::b#3 ) @@ -3753,8 +3758,8 @@ mul8s_compare::@13: scope:[mul8s_compare] from mul8s_compare::@12 (signed word) mul8s::return#2 ← (signed word) mul8s::return#1 to:mul8s_compare::@14 mul8s_compare::@14: scope:[mul8s_compare] from mul8s_compare::@13 - (byte*) print_line_cursor#85 ← phi( mul8s_compare::@13/(byte*) print_line_cursor#93 ) - (byte*) print_char_cursor#171 ← phi( mul8s_compare::@13/(byte*) print_char_cursor#174 ) + (byte*) print_line_cursor#85 ← phi( mul8s_compare::@13/(byte*) print_line_cursor#94 ) + (byte*) print_char_cursor#171 ← phi( mul8s_compare::@13/(byte*) print_char_cursor#175 ) (signed byte) mul8s_compare::a#12 ← phi( mul8s_compare::@13/(signed byte) mul8s_compare::a#4 ) (byte*) BGCOL#19 ← phi( mul8s_compare::@13/(byte*) BGCOL#23 ) (signed byte) mul8s_compare::b#10 ← phi( mul8s_compare::@13/(signed byte) mul8s_compare::b#4 ) @@ -3888,7 +3893,7 @@ mul8s_compare::@17: scope:[mul8s_compare] from mul8s_compare::@16 (byte*) print_char_cursor#52 ← (byte*) print_char_cursor#116 to:mul8s_compare::@return mul8s_error: scope:[mul8s_error] from mul8s_compare::@8 - (byte*) print_line_cursor#114 ← phi( mul8s_compare::@8/(byte*) print_line_cursor#53 ) + (byte*) print_line_cursor#115 ← phi( mul8s_compare::@8/(byte*) print_line_cursor#53 ) (signed word) mul8s_error::mf#10 ← phi( mul8s_compare::@8/(signed word) mul8s_error::mf#0 ) (signed word) mul8s_error::mn#8 ← phi( mul8s_compare::@8/(signed word) mul8s_error::mn#0 ) (signed word) mul8s_error::ms#6 ← phi( mul8s_compare::@8/(signed word) mul8s_error::ms#0 ) @@ -3899,7 +3904,7 @@ mul8s_error: scope:[mul8s_error] from mul8s_compare::@8 call print_str param-assignment to:mul8s_error::@1 mul8s_error::@1: scope:[mul8s_error] from mul8s_error - (byte*) print_line_cursor#112 ← phi( mul8s_error/(byte*) print_line_cursor#114 ) + (byte*) print_line_cursor#113 ← phi( mul8s_error/(byte*) print_line_cursor#115 ) (signed word) mul8s_error::mf#9 ← phi( mul8s_error/(signed word) mul8s_error::mf#10 ) (signed word) mul8s_error::mn#7 ← phi( mul8s_error/(signed word) mul8s_error::mn#8 ) (signed word) mul8s_error::ms#5 ← phi( mul8s_error/(signed word) mul8s_error::ms#6 ) @@ -3911,7 +3916,7 @@ mul8s_error::@1: scope:[mul8s_error] from mul8s_error call print_sbyte param-assignment to:mul8s_error::@2 mul8s_error::@2: scope:[mul8s_error] from mul8s_error::@1 - (byte*) print_line_cursor#110 ← phi( mul8s_error::@1/(byte*) print_line_cursor#112 ) + (byte*) print_line_cursor#111 ← phi( mul8s_error::@1/(byte*) print_line_cursor#113 ) (signed word) mul8s_error::mf#8 ← phi( mul8s_error::@1/(signed word) mul8s_error::mf#9 ) (signed word) mul8s_error::mn#6 ← phi( mul8s_error::@1/(signed word) mul8s_error::mn#7 ) (signed word) mul8s_error::ms#4 ← phi( mul8s_error::@1/(signed word) mul8s_error::ms#5 ) @@ -3922,7 +3927,7 @@ mul8s_error::@2: scope:[mul8s_error] from mul8s_error::@1 call print_str param-assignment to:mul8s_error::@3 mul8s_error::@3: scope:[mul8s_error] from mul8s_error::@2 - (byte*) print_line_cursor#106 ← phi( mul8s_error::@2/(byte*) print_line_cursor#110 ) + (byte*) print_line_cursor#107 ← phi( mul8s_error::@2/(byte*) print_line_cursor#111 ) (signed word) mul8s_error::mf#7 ← phi( mul8s_error::@2/(signed word) mul8s_error::mf#8 ) (signed word) mul8s_error::mn#5 ← phi( mul8s_error::@2/(signed word) mul8s_error::mn#6 ) (signed word) mul8s_error::ms#3 ← phi( mul8s_error::@2/(signed word) mul8s_error::ms#4 ) @@ -3933,7 +3938,7 @@ mul8s_error::@3: scope:[mul8s_error] from mul8s_error::@2 call print_sbyte param-assignment to:mul8s_error::@4 mul8s_error::@4: scope:[mul8s_error] from mul8s_error::@3 - (byte*) print_line_cursor#102 ← phi( mul8s_error::@3/(byte*) print_line_cursor#106 ) + (byte*) print_line_cursor#103 ← phi( mul8s_error::@3/(byte*) print_line_cursor#107 ) (signed word) mul8s_error::mf#6 ← phi( mul8s_error::@3/(signed word) mul8s_error::mf#7 ) (signed word) mul8s_error::mn#4 ← phi( mul8s_error::@3/(signed word) mul8s_error::mn#5 ) (signed word) mul8s_error::ms#2 ← phi( mul8s_error::@3/(signed word) mul8s_error::ms#3 ) @@ -3943,7 +3948,7 @@ mul8s_error::@4: scope:[mul8s_error] from mul8s_error::@3 call print_str param-assignment to:mul8s_error::@5 mul8s_error::@5: scope:[mul8s_error] from mul8s_error::@4 - (byte*) print_line_cursor#98 ← phi( mul8s_error::@4/(byte*) print_line_cursor#102 ) + (byte*) print_line_cursor#99 ← phi( mul8s_error::@4/(byte*) print_line_cursor#103 ) (signed word) mul8s_error::mf#5 ← phi( mul8s_error::@4/(signed word) mul8s_error::mf#6 ) (signed word) mul8s_error::mn#3 ← phi( mul8s_error::@4/(signed word) mul8s_error::mn#4 ) (signed word) mul8s_error::ms#1 ← phi( mul8s_error::@4/(signed word) mul8s_error::ms#2 ) @@ -3953,7 +3958,7 @@ mul8s_error::@5: scope:[mul8s_error] from mul8s_error::@4 call print_sword param-assignment to:mul8s_error::@6 mul8s_error::@6: scope:[mul8s_error] from mul8s_error::@5 - (byte*) print_line_cursor#94 ← phi( mul8s_error::@5/(byte*) print_line_cursor#98 ) + (byte*) print_line_cursor#95 ← phi( mul8s_error::@5/(byte*) print_line_cursor#99 ) (signed word) mul8s_error::mf#4 ← phi( mul8s_error::@5/(signed word) mul8s_error::mf#5 ) (signed word) mul8s_error::mn#2 ← phi( mul8s_error::@5/(signed word) mul8s_error::mn#3 ) (byte*) print_char_cursor#122 ← phi( mul8s_error::@5/(byte*) print_char_cursor#7 ) @@ -3962,7 +3967,7 @@ mul8s_error::@6: scope:[mul8s_error] from mul8s_error::@5 call print_str param-assignment to:mul8s_error::@7 mul8s_error::@7: scope:[mul8s_error] from mul8s_error::@6 - (byte*) print_line_cursor#88 ← phi( mul8s_error::@6/(byte*) print_line_cursor#94 ) + (byte*) print_line_cursor#88 ← phi( mul8s_error::@6/(byte*) print_line_cursor#95 ) (signed word) mul8s_error::mf#3 ← phi( mul8s_error::@6/(signed word) mul8s_error::mf#4 ) (signed word) mul8s_error::mn#1 ← phi( mul8s_error::@6/(signed word) mul8s_error::mn#2 ) (byte*) print_char_cursor#123 ← phi( mul8s_error::@6/(byte*) print_char_cursor#2 ) @@ -4021,6 +4026,8 @@ mul8s_error::@return: scope:[mul8s_error] from mul8s_error::@11 @end: scope:[] from @32 SYMBOL TABLE SSA +(const string) $0 = (string) "0123456789abcdef" +(label) @10 (label) @19 (label) @22 (label) @25 @@ -4783,7 +4790,6 @@ SYMBOL TABLE SSA (void()) print_byte((byte) print_byte::b) (byte~) print_byte::$0 (byte~) print_byte::$2 -(const string) print_byte::$4 = (string) "0123456789abcdef" (label) print_byte::@1 (label) print_byte::@2 (label) print_byte::@return @@ -4795,8 +4801,6 @@ SYMBOL TABLE SSA (byte) print_byte::b#4 (byte) print_byte::b#5 (byte) print_byte::b#6 -(byte[]) print_byte::hextab -(byte[]) print_byte::hextab#0 (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -4900,6 +4904,7 @@ SYMBOL TABLE SSA (byte*) print_char_cursor#180 (byte*) print_char_cursor#181 (byte*) print_char_cursor#182 +(byte*) print_char_cursor#183 (byte*) print_char_cursor#19 (byte*) print_char_cursor#2 (byte*) print_char_cursor#20 @@ -4999,6 +5004,8 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#0 (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 +(byte[]) print_hextab +(byte[]) print_hextab#0 (byte*) print_line_cursor (byte*) print_line_cursor#0 (byte*) print_line_cursor#1 @@ -5019,6 +5026,7 @@ SYMBOL TABLE SSA (byte*) print_line_cursor#112 (byte*) print_line_cursor#113 (byte*) print_line_cursor#114 +(byte*) print_line_cursor#115 (byte*) print_line_cursor#12 (byte*) print_line_cursor#13 (byte*) print_line_cursor#14 @@ -5149,6 +5157,7 @@ SYMBOL TABLE SSA (byte*) print_screen#6 (byte*) print_screen#7 (byte*) print_screen#8 +(byte*) print_screen#9 (void()) print_str((byte*) print_str::str) (boolean~) print_str::$0 (label) print_str::@1 @@ -5292,7 +5301,7 @@ Not aliassing identity: muls8s::b#2 muls8s::b#2 Not aliassing identity: muls8s::a#4 muls8s::a#4 Not aliassing across scopes: BGCOL#9 BGCOL#16 Not aliassing across scopes: print_char_cursor#161 print_char_cursor#139 -Not aliassing across scopes: print_line_cursor#89 print_line_cursor#47 +Not aliassing across scopes: print_line_cursor#90 print_line_cursor#47 Not aliassing across scopes: mulf_tables_cmp::asm_sqr#0 mula_sqr1_lo#0 Not aliassing across scopes: mulf_tables_cmp::kc_sqr#0 mulf_sqr1_lo#0 Not aliassing across scopes: print_char_cursor#90 print_char_cursor#2 @@ -5303,8 +5312,8 @@ Not aliassing across scopes: print_char_cursor#95 print_char_cursor#2 Not aliassing across scopes: print_line_cursor#33 print_line_cursor#2 Not aliassing across scopes: print_char_cursor#96 print_char_cursor#4 Not aliassing across scopes: BGCOL#33 BGCOL#37 -Not aliassing across scopes: print_char_cursor#181 print_char_cursor#22 -Not aliassing across scopes: print_line_cursor#107 print_line_cursor#6 +Not aliassing across scopes: print_char_cursor#182 print_char_cursor#22 +Not aliassing across scopes: print_line_cursor#108 print_line_cursor#6 Not aliassing across scopes: muls8u::a#0 mul8u_compare::a#2 Not aliassing across scopes: muls8u::b#0 mul8u_compare::b#2 Not aliassing across scopes: muls8u::return#2 muls8u::return#1 @@ -5333,7 +5342,7 @@ Not aliassing across scopes: mul8u_error::b#4 mul8u_error::b#0 Not aliassing across scopes: mul8u_error::ms#6 mul8u_error::ms#0 Not aliassing across scopes: mul8u_error::mn#8 mul8u_error::mn#0 Not aliassing across scopes: mul8u_error::mf#10 mul8u_error::mf#0 -Not aliassing across scopes: print_line_cursor#113 print_line_cursor#50 +Not aliassing across scopes: print_line_cursor#114 print_line_cursor#50 Not aliassing across scopes: print_char_cursor#101 print_char_cursor#2 Not aliassing across scopes: print_byte::b#3 mul8u_error::a#1 Not aliassing across scopes: print_char_cursor#102 print_char_cursor#16 @@ -5352,8 +5361,8 @@ Not aliassing across scopes: print_char_cursor#110 print_char_cursor#13 Not aliassing across scopes: print_line_cursor#37 print_line_cursor#2 Not aliassing across scopes: print_char_cursor#111 print_char_cursor#4 Not aliassing across scopes: BGCOL#35 BGCOL#38 -Not aliassing across scopes: print_char_cursor#182 print_char_cursor#23 -Not aliassing across scopes: print_line_cursor#109 print_line_cursor#7 +Not aliassing across scopes: print_char_cursor#183 print_char_cursor#23 +Not aliassing across scopes: print_line_cursor#110 print_line_cursor#7 Not aliassing across scopes: muls8s::a#0 mul8s_compare::a#2 Not aliassing across scopes: muls8s::b#0 mul8s_compare::b#2 Not aliassing across scopes: muls8s::return#2 muls8s::return#1 @@ -5382,7 +5391,7 @@ Not aliassing across scopes: mul8s_error::b#4 mul8s_error::b#0 Not aliassing across scopes: mul8s_error::ms#6 mul8s_error::ms#0 Not aliassing across scopes: mul8s_error::mn#8 mul8s_error::mn#0 Not aliassing across scopes: mul8s_error::mf#10 mul8s_error::mf#0 -Not aliassing across scopes: print_line_cursor#114 print_line_cursor#53 +Not aliassing across scopes: print_line_cursor#115 print_line_cursor#53 Not aliassing across scopes: print_char_cursor#117 print_char_cursor#2 Not aliassing across scopes: print_sbyte::b#1 mul8s_error::a#1 Not aliassing across scopes: print_char_cursor#118 print_char_cursor#10 @@ -5402,7 +5411,7 @@ Not aliassing across scopes: print_line_cursor#42 print_line_cursor#2 Not aliassing across scopes: print_char_cursor#127 print_char_cursor#4 Not aliassing across scopes: print_line_cursor#44 print_line_cursor#9 Not aliassing across scopes: print_char_cursor#129 print_char_cursor#25 -Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#78 (byte*) print_char_cursor#168 (byte*) print_screen#8 (byte*) print_line_cursor#67 (byte*) print_char_cursor#160 (byte*) print_screen#7 (byte*) print_line_cursor#66 (byte*) print_char_cursor#159 (byte*) print_screen#6 (byte*) print_line_cursor#56 (byte*) print_char_cursor#148 (byte*) print_screen#5 +Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#89 (byte*) print_char_cursor#173 (byte*) print_screen#9 (byte*) print_line_cursor#78 (byte*) print_char_cursor#168 (byte*) print_screen#8 (byte*) print_line_cursor#67 (byte*) print_char_cursor#160 (byte*) print_screen#7 (byte*) print_line_cursor#66 (byte*) print_char_cursor#159 (byte*) print_screen#6 (byte*) print_line_cursor#56 (byte*) print_char_cursor#148 (byte*) print_screen#5 Alias (byte*) print_str::str#16 = (byte*) print_str::str#17 Alias (byte*) print_char_cursor#130 = (byte*) print_char_cursor#66 (byte*) print_char_cursor#67 (byte*) print_char_cursor#2 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#24 (byte*) print_char_cursor#3 (byte*) print_line_cursor#25 (byte*) print_char_cursor#69 (byte*) print_line_cursor#2 (byte*) print_char_cursor#4 @@ -5494,7 +5503,7 @@ Alias (byte*) mulf_tables_cmp::asm_sqr#2 = (byte*) mulf_tables_cmp::asm_sqr#3 (b Alias (byte*) mulf_tables_cmp::kc_sqr#2 = (byte*) mulf_tables_cmp::kc_sqr#3 (byte*) mulf_tables_cmp::kc_sqr#7 (byte*) mulf_tables_cmp::kc_sqr#6 (byte*) mulf_tables_cmp::kc_sqr#5 (byte*) mulf_tables_cmp::kc_sqr#4 Alias (byte*) BGCOL#10 = (byte*) BGCOL#6 (byte*) BGCOL#2 Alias (byte*) print_char_cursor#140 = (byte*) print_char_cursor#154 (byte*) print_char_cursor#153 (byte*) print_char_cursor#141 -Alias (byte*) print_line_cursor#48 = (byte*) print_line_cursor#69 (byte*) print_line_cursor#79 (byte*) print_line_cursor#90 (byte*) print_line_cursor#80 (byte*) print_line_cursor#68 (byte*) print_line_cursor#58 (byte*) print_line_cursor#59 (byte*) print_line_cursor#49 +Alias (byte*) print_line_cursor#48 = (byte*) print_line_cursor#69 (byte*) print_line_cursor#79 (byte*) print_line_cursor#91 (byte*) print_line_cursor#80 (byte*) print_line_cursor#68 (byte*) print_line_cursor#58 (byte*) print_line_cursor#59 (byte*) print_line_cursor#49 Alias (byte*) print_char_cursor#26 = (byte*) print_char_cursor#90 Alias (word) print_word::w#1 = (word~) mulf_tables_cmp::$3 Alias (byte*) print_char_cursor#27 = (byte*) print_char_cursor#91 @@ -5510,8 +5519,8 @@ Alias (word) muls8u::return#2 = (word) muls8u::return#4 Alias (byte) mul8u_compare::a#12 = (byte) mul8u_compare::a#3 (byte) mul8u_compare::a#2 (byte) mul8u_compare::a#4 (byte) mul8u_compare::a#13 Alias (byte) mul8u_compare::b#10 = (byte) mul8u_compare::b#3 (byte) mul8u_compare::b#2 (byte) mul8u_compare::b#4 (byte) mul8u_compare::b#11 Alias (byte*) BGCOL#17 = (byte*) BGCOL#25 (byte*) BGCOL#27 (byte*) BGCOL#22 (byte*) BGCOL#18 -Alias (byte*) print_char_cursor#169 = (byte*) print_char_cursor#175 (byte*) print_char_cursor#177 (byte*) print_char_cursor#173 (byte*) print_char_cursor#170 -Alias (byte*) print_line_cursor#81 = (byte*) print_line_cursor#95 (byte*) print_line_cursor#99 (byte*) print_line_cursor#91 (byte*) print_line_cursor#82 +Alias (byte*) print_char_cursor#169 = (byte*) print_char_cursor#176 (byte*) print_char_cursor#178 (byte*) print_char_cursor#174 (byte*) print_char_cursor#170 +Alias (byte*) print_line_cursor#100 = (byte*) print_line_cursor#96 (byte*) print_line_cursor#92 (byte*) print_line_cursor#81 (byte*) print_line_cursor#82 Alias (word) mul8u_compare::ms#0 = (word~) mul8u_compare::$0 (word) mul8u_compare::ms#4 (word) mul8u_compare::ms#1 (word) mul8u_compare::ms#5 Alias (word) mulf8u::return#3 = (word) mulf8u::return#6 Alias (word) mul8u_compare::mf#0 = (word~) mul8u_compare::$1 (word) mul8u_compare::mf#1 (word) mul8u_compare::mf#6 @@ -5545,7 +5554,7 @@ Alias (byte) mul8u_error::b#1 = (byte) mul8u_error::b#3 (byte) mul8u_error::b#4 Alias (word) mul8u_error::ms#1 = (word) mul8u_error::ms#5 (word) mul8u_error::ms#6 (word) mul8u_error::ms#4 (word) mul8u_error::ms#3 (word) mul8u_error::ms#2 Alias (word) mul8u_error::mn#1 = (word) mul8u_error::mn#7 (word) mul8u_error::mn#8 (word) mul8u_error::mn#6 (word) mul8u_error::mn#5 (word) mul8u_error::mn#4 (word) mul8u_error::mn#3 (word) mul8u_error::mn#2 Alias (word) mul8u_error::mf#1 = (word) mul8u_error::mf#9 (word) mul8u_error::mf#10 (word) mul8u_error::mf#8 (word) mul8u_error::mf#7 (word) mul8u_error::mf#6 (word) mul8u_error::mf#5 (word) mul8u_error::mf#4 (word) mul8u_error::mf#3 (word) mul8u_error::mf#2 -Alias (byte*) print_line_cursor#100 = (byte*) print_line_cursor#111 (byte*) print_line_cursor#113 (byte*) print_line_cursor#108 (byte*) print_line_cursor#104 (byte*) print_line_cursor#96 (byte*) print_line_cursor#92 (byte*) print_line_cursor#84 (byte*) print_line_cursor#73 (byte*) print_line_cursor#62 (byte*) print_line_cursor#52 +Alias (byte*) print_line_cursor#101 = (byte*) print_line_cursor#112 (byte*) print_line_cursor#114 (byte*) print_line_cursor#109 (byte*) print_line_cursor#105 (byte*) print_line_cursor#97 (byte*) print_line_cursor#93 (byte*) print_line_cursor#84 (byte*) print_line_cursor#73 (byte*) print_line_cursor#62 (byte*) print_line_cursor#52 Alias (byte*) print_char_cursor#101 = (byte*) print_char_cursor#37 Alias (byte*) print_char_cursor#102 = (byte*) print_char_cursor#38 Alias (byte*) print_char_cursor#103 = (byte*) print_char_cursor#39 @@ -5564,8 +5573,8 @@ Alias (signed word) muls8s::return#2 = (signed word) muls8s::return#4 Alias (signed byte) mul8s_compare::a#12 = (signed byte) mul8s_compare::a#3 (signed byte) mul8s_compare::a#2 (signed byte) mul8s_compare::a#4 (signed byte) mul8s_compare::a#13 Alias (signed byte) mul8s_compare::b#10 = (signed byte) mul8s_compare::b#3 (signed byte) mul8s_compare::b#2 (signed byte) mul8s_compare::b#4 (signed byte) mul8s_compare::b#11 Alias (byte*) BGCOL#19 = (byte*) BGCOL#26 (byte*) BGCOL#28 (byte*) BGCOL#23 (byte*) BGCOL#20 -Alias (byte*) print_char_cursor#171 = (byte*) print_char_cursor#176 (byte*) print_char_cursor#178 (byte*) print_char_cursor#174 (byte*) print_char_cursor#172 -Alias (byte*) print_line_cursor#101 = (byte*) print_line_cursor#97 (byte*) print_line_cursor#93 (byte*) print_line_cursor#85 (byte*) print_line_cursor#86 +Alias (byte*) print_char_cursor#171 = (byte*) print_char_cursor#177 (byte*) print_char_cursor#179 (byte*) print_char_cursor#175 (byte*) print_char_cursor#172 +Alias (byte*) print_line_cursor#102 = (byte*) print_line_cursor#98 (byte*) print_line_cursor#94 (byte*) print_line_cursor#85 (byte*) print_line_cursor#86 Alias (signed word) mul8s_compare::ms#0 = (signed word~) mul8s_compare::$2 (signed word) mul8s_compare::ms#4 (signed word) mul8s_compare::ms#1 (signed word) mul8s_compare::ms#5 Alias (signed word) mulf8s::return#2 = (signed word) mulf8s::return#4 Alias (signed word) mul8s_compare::mf#0 = (signed word~) mul8s_compare::$3 (signed word) mul8s_compare::mf#1 (signed word) mul8s_compare::mf#6 @@ -5599,7 +5608,7 @@ Alias (signed byte) mul8s_error::b#1 = (signed byte) mul8s_error::b#3 (signed by Alias (signed word) mul8s_error::ms#1 = (signed word) mul8s_error::ms#5 (signed word) mul8s_error::ms#6 (signed word) mul8s_error::ms#4 (signed word) mul8s_error::ms#3 (signed word) mul8s_error::ms#2 Alias (signed word) mul8s_error::mn#1 = (signed word) mul8s_error::mn#7 (signed word) mul8s_error::mn#8 (signed word) mul8s_error::mn#6 (signed word) mul8s_error::mn#5 (signed word) mul8s_error::mn#4 (signed word) mul8s_error::mn#3 (signed word) mul8s_error::mn#2 Alias (signed word) mul8s_error::mf#1 = (signed word) mul8s_error::mf#9 (signed word) mul8s_error::mf#10 (signed word) mul8s_error::mf#8 (signed word) mul8s_error::mf#7 (signed word) mul8s_error::mf#6 (signed word) mul8s_error::mf#5 (signed word) mul8s_error::mf#4 (signed word) mul8s_error::mf#3 (signed word) mul8s_error::mf#2 -Alias (byte*) print_line_cursor#102 = (byte*) print_line_cursor#112 (byte*) print_line_cursor#114 (byte*) print_line_cursor#110 (byte*) print_line_cursor#106 (byte*) print_line_cursor#98 (byte*) print_line_cursor#94 (byte*) print_line_cursor#88 (byte*) print_line_cursor#77 (byte*) print_line_cursor#65 (byte*) print_line_cursor#55 +Alias (byte*) print_line_cursor#103 = (byte*) print_line_cursor#113 (byte*) print_line_cursor#115 (byte*) print_line_cursor#111 (byte*) print_line_cursor#107 (byte*) print_line_cursor#99 (byte*) print_line_cursor#95 (byte*) print_line_cursor#88 (byte*) print_line_cursor#77 (byte*) print_line_cursor#65 (byte*) print_line_cursor#55 Alias (byte*) print_char_cursor#117 = (byte*) print_char_cursor#53 Alias (byte*) print_char_cursor#118 = (byte*) print_char_cursor#54 Alias (byte*) print_char_cursor#119 = (byte*) print_char_cursor#55 @@ -5677,7 +5686,7 @@ Not aliassing identity: muls8s::b#2 muls8s::b#2 Not aliassing identity: muls8s::a#4 muls8s::a#4 Not aliassing across scopes: BGCOL#9 BGCOL#1 Not aliassing across scopes: print_char_cursor#161 print_char_cursor#139 -Not aliassing across scopes: print_line_cursor#89 print_line_cursor#27 +Not aliassing across scopes: print_line_cursor#90 print_line_cursor#27 Not aliassing across scopes: mulf_tables_cmp::asm_sqr#0 mula_sqr1_lo#0 Not aliassing across scopes: mulf_tables_cmp::kc_sqr#0 mulf_sqr1_lo#0 Not aliassing across scopes: print_char_cursor#26 print_char_cursor#130 @@ -5688,8 +5697,8 @@ Not aliassing across scopes: print_char_cursor#31 print_char_cursor#130 Not aliassing across scopes: print_line_cursor#11 print_line_cursor#1 Not aliassing across scopes: print_char_cursor#32 print_line_cursor#1 Not aliassing across scopes: BGCOL#33 BGCOL#1 -Not aliassing across scopes: print_char_cursor#181 print_char_cursor#22 -Not aliassing across scopes: print_line_cursor#107 print_line_cursor#28 +Not aliassing across scopes: print_char_cursor#182 print_char_cursor#22 +Not aliassing across scopes: print_line_cursor#108 print_line_cursor#28 Not aliassing across scopes: muls8u::a#0 mul8u_compare::a#12 Not aliassing across scopes: muls8u::b#0 mul8u_compare::b#10 Not aliassing across scopes: muls8u::return#2 muls8u::return#0 @@ -5718,7 +5727,7 @@ Not aliassing across scopes: mul8u_error::b#1 mul8u_error::b#0 Not aliassing across scopes: mul8u_error::ms#1 mul8u_error::ms#0 Not aliassing across scopes: mul8u_error::mn#1 mul8u_error::mn#0 Not aliassing across scopes: mul8u_error::mf#1 mul8u_error::mf#0 -Not aliassing across scopes: print_line_cursor#100 print_line_cursor#50 +Not aliassing across scopes: print_line_cursor#101 print_line_cursor#50 Not aliassing across scopes: print_char_cursor#101 print_char_cursor#130 Not aliassing across scopes: print_byte::b#3 mul8u_error::a#1 Not aliassing across scopes: print_char_cursor#102 print_char_cursor#15 @@ -5737,8 +5746,8 @@ Not aliassing across scopes: print_char_cursor#110 print_char_cursor#12 Not aliassing across scopes: print_line_cursor#15 print_line_cursor#1 Not aliassing across scopes: print_char_cursor#111 print_line_cursor#1 Not aliassing across scopes: BGCOL#35 BGCOL#1 -Not aliassing across scopes: print_char_cursor#182 print_char_cursor#23 -Not aliassing across scopes: print_line_cursor#109 print_line_cursor#29 +Not aliassing across scopes: print_char_cursor#183 print_char_cursor#23 +Not aliassing across scopes: print_line_cursor#110 print_line_cursor#29 Not aliassing across scopes: muls8s::a#0 mul8s_compare::a#12 Not aliassing across scopes: muls8s::b#0 mul8s_compare::b#10 Not aliassing across scopes: muls8s::return#2 muls8s::return#0 @@ -5767,7 +5776,7 @@ Not aliassing across scopes: mul8s_error::b#1 mul8s_error::b#0 Not aliassing across scopes: mul8s_error::ms#1 mul8s_error::ms#0 Not aliassing across scopes: mul8s_error::mn#1 mul8s_error::mn#0 Not aliassing across scopes: mul8s_error::mf#1 mul8s_error::mf#0 -Not aliassing across scopes: print_line_cursor#102 print_line_cursor#53 +Not aliassing across scopes: print_line_cursor#103 print_line_cursor#53 Not aliassing across scopes: print_char_cursor#117 print_char_cursor#130 Not aliassing across scopes: print_sbyte::b#1 mul8s_error::a#1 Not aliassing across scopes: print_char_cursor#118 print_char_cursor#10 @@ -5806,7 +5815,7 @@ Alias (byte*) BGCOL#11 = (byte*) BGCOL#17 (byte*) BGCOL#3 Alias (byte) mul8u_compare::a#10 = (byte) mul8u_compare::a#12 (byte) mul8u_compare::a#5 Alias (word) mul8u_compare::mf#0 = (word) mul8u_compare::mf#4 (word) mul8u_compare::mf#2 Alias (byte*) print_char_cursor#142 = (byte*) print_char_cursor#162 (byte*) print_char_cursor#169 -Alias (byte*) print_line_cursor#50 = (byte*) print_line_cursor#70 (byte*) print_line_cursor#81 +Alias (byte*) print_line_cursor#100 = (byte*) print_line_cursor#70 (byte*) print_line_cursor#50 Alias (signed word) mul8s_compare::ms#0 = (signed word) mul8s_compare::ms#2 (signed word) mul8s_compare::ms#3 Alias (signed word) mul8s_compare::mn#0 = (signed word) mul8s_compare::mn#1 (signed word) mul8s_compare::mn#2 Alias (signed byte) mul8s_compare::b#10 = (signed byte) mul8s_compare::b#8 (signed byte) mul8s_compare::b#5 @@ -5814,11 +5823,11 @@ Alias (byte*) BGCOL#13 = (byte*) BGCOL#19 (byte*) BGCOL#32 Alias (signed byte) mul8s_compare::a#10 = (signed byte) mul8s_compare::a#12 (signed byte) mul8s_compare::a#5 Alias (signed word) mul8s_compare::mf#0 = (signed word) mul8s_compare::mf#4 (signed word) mul8s_compare::mf#2 Alias (byte*) print_char_cursor#145 = (byte*) print_char_cursor#165 (byte*) print_char_cursor#171 -Alias (byte*) print_line_cursor#101 = (byte*) print_line_cursor#74 (byte*) print_line_cursor#53 +Alias (byte*) print_line_cursor#102 = (byte*) print_line_cursor#74 (byte*) print_line_cursor#53 Succesful SSA optimization Pass2AliasElimination Not aliassing across scopes: print_str::str#18 print_str::str#10 Not aliassing across scopes: print_char_cursor#149 print_char_cursor#145 -Not aliassing across scopes: print_line_cursor#45 print_line_cursor#101 +Not aliassing across scopes: print_line_cursor#45 print_line_cursor#102 Not aliassing across scopes: print_char_cursor#131 print_char_cursor#115 Not aliassing across scopes: print_sword::w#4 print_sword::w#1 Not aliassing across scopes: print_char_cursor#133 print_char_cursor#121 @@ -5878,7 +5887,7 @@ Not aliassing identity: muls8s::b#2 muls8s::b#2 Not aliassing identity: muls8s::a#4 muls8s::a#4 Not aliassing across scopes: BGCOL#9 BGCOL#1 Not aliassing across scopes: print_char_cursor#161 print_char_cursor#139 -Not aliassing across scopes: print_line_cursor#89 print_line_cursor#27 +Not aliassing across scopes: print_line_cursor#90 print_line_cursor#27 Not aliassing across scopes: mulf_tables_cmp::asm_sqr#0 mula_sqr1_lo#0 Not aliassing across scopes: mulf_tables_cmp::kc_sqr#0 mulf_sqr1_lo#0 Not aliassing across scopes: print_char_cursor#26 print_char_cursor#130 @@ -5889,8 +5898,8 @@ Not aliassing across scopes: print_char_cursor#31 print_char_cursor#130 Not aliassing across scopes: print_line_cursor#11 print_line_cursor#1 Not aliassing across scopes: print_char_cursor#32 print_line_cursor#1 Not aliassing across scopes: BGCOL#33 BGCOL#1 -Not aliassing across scopes: print_char_cursor#181 print_char_cursor#22 -Not aliassing across scopes: print_line_cursor#107 print_line_cursor#28 +Not aliassing across scopes: print_char_cursor#182 print_char_cursor#22 +Not aliassing across scopes: print_line_cursor#108 print_line_cursor#28 Not aliassing across scopes: muls8u::a#0 mul8u_compare::a#10 Not aliassing across scopes: muls8u::b#0 mul8u_compare::b#10 Not aliassing across scopes: muls8u::return#2 muls8u::return#0 @@ -5919,7 +5928,7 @@ Not aliassing across scopes: mul8u_error::b#1 mul8u_error::b#0 Not aliassing across scopes: mul8u_error::ms#1 mul8u_error::ms#0 Not aliassing across scopes: mul8u_error::mn#1 mul8u_error::mn#0 Not aliassing across scopes: mul8u_error::mf#1 mul8u_error::mf#0 -Not aliassing across scopes: print_line_cursor#100 print_line_cursor#50 +Not aliassing across scopes: print_line_cursor#101 print_line_cursor#100 Not aliassing across scopes: print_char_cursor#101 print_char_cursor#130 Not aliassing across scopes: print_byte::b#3 mul8u_error::a#1 Not aliassing across scopes: print_char_cursor#102 print_char_cursor#15 @@ -5938,8 +5947,8 @@ Not aliassing across scopes: print_char_cursor#110 print_char_cursor#12 Not aliassing across scopes: print_line_cursor#15 print_line_cursor#1 Not aliassing across scopes: print_char_cursor#111 print_line_cursor#1 Not aliassing across scopes: BGCOL#35 BGCOL#1 -Not aliassing across scopes: print_char_cursor#182 print_char_cursor#23 -Not aliassing across scopes: print_line_cursor#109 print_line_cursor#29 +Not aliassing across scopes: print_char_cursor#183 print_char_cursor#23 +Not aliassing across scopes: print_line_cursor#110 print_line_cursor#29 Not aliassing across scopes: muls8s::a#0 mul8s_compare::a#10 Not aliassing across scopes: muls8s::b#0 mul8s_compare::b#10 Not aliassing across scopes: muls8s::return#2 muls8s::return#0 @@ -5968,7 +5977,7 @@ Not aliassing across scopes: mul8s_error::b#1 mul8s_error::b#0 Not aliassing across scopes: mul8s_error::ms#1 mul8s_error::ms#0 Not aliassing across scopes: mul8s_error::mn#1 mul8s_error::mn#0 Not aliassing across scopes: mul8s_error::mf#1 mul8s_error::mf#0 -Not aliassing across scopes: print_line_cursor#102 print_line_cursor#101 +Not aliassing across scopes: print_line_cursor#103 print_line_cursor#102 Not aliassing across scopes: print_char_cursor#117 print_char_cursor#130 Not aliassing across scopes: print_sbyte::b#1 mul8s_error::a#1 Not aliassing across scopes: print_char_cursor#118 print_char_cursor#10 @@ -6002,11 +6011,11 @@ Self Phi Eliminated (byte*) print_line_cursor#48 Self Phi Eliminated (byte) mul8u_compare::a#10 Self Phi Eliminated (byte*) BGCOL#11 Self Phi Eliminated (byte*) print_char_cursor#142 -Self Phi Eliminated (byte*) print_line_cursor#50 +Self Phi Eliminated (byte*) print_line_cursor#100 Self Phi Eliminated (signed byte) mul8s_compare::a#10 Self Phi Eliminated (byte*) BGCOL#13 Self Phi Eliminated (byte*) print_char_cursor#145 -Self Phi Eliminated (byte*) print_line_cursor#101 +Self Phi Eliminated (byte*) print_line_cursor#102 Succesful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) print_char_cursor#68 (byte*) print_char_cursor#131 Redundant Phi (byte*) print_char_cursor#5 (byte*) print_char_cursor#12 @@ -6047,10 +6056,10 @@ Redundant Phi (signed byte) muls8s::b#2 (signed byte) muls8s::b#3 Redundant Phi (signed byte) muls8s::a#4 (signed byte) muls8s::a#1 Redundant Phi (byte*) BGCOL#9 (byte*) BGCOL#1 Redundant Phi (byte*) print_char_cursor#161 (byte*) print_char_cursor#139 -Redundant Phi (byte*) print_line_cursor#89 (byte*) print_line_cursor#27 +Redundant Phi (byte*) print_line_cursor#90 (byte*) print_line_cursor#27 Redundant Phi (byte*) BGCOL#10 (byte*) BGCOL#9 Redundant Phi (byte*) print_char_cursor#140 (byte*) print_char_cursor#161 -Redundant Phi (byte*) print_line_cursor#48 (byte*) print_line_cursor#89 +Redundant Phi (byte*) print_line_cursor#48 (byte*) print_line_cursor#90 Redundant Phi (byte*) print_char_cursor#26 (byte*) print_char_cursor#130 Redundant Phi (byte*) print_char_cursor#27 (byte*) print_char_cursor#12 Redundant Phi (byte*) print_char_cursor#28 (byte*) print_char_cursor#130 @@ -6059,12 +6068,12 @@ Redundant Phi (byte*) print_char_cursor#31 (byte*) print_char_cursor#130 Redundant Phi (byte*) print_line_cursor#11 (byte*) print_line_cursor#1 Redundant Phi (byte*) print_char_cursor#32 (byte*) print_line_cursor#1 Redundant Phi (byte*) BGCOL#33 (byte*) BGCOL#1 -Redundant Phi (byte*) print_char_cursor#181 (byte*) print_char_cursor#22 -Redundant Phi (byte*) print_line_cursor#107 (byte*) print_line_cursor#28 +Redundant Phi (byte*) print_char_cursor#182 (byte*) print_char_cursor#22 +Redundant Phi (byte*) print_line_cursor#108 (byte*) print_line_cursor#28 Redundant Phi (byte) mul8u_compare::a#10 (byte) mul8u_compare::a#7 Redundant Phi (byte*) BGCOL#11 (byte*) BGCOL#29 -Redundant Phi (byte*) print_char_cursor#142 (byte*) print_char_cursor#179 -Redundant Phi (byte*) print_line_cursor#50 (byte*) print_line_cursor#103 +Redundant Phi (byte*) print_char_cursor#142 (byte*) print_char_cursor#180 +Redundant Phi (byte*) print_line_cursor#100 (byte*) print_line_cursor#104 Redundant Phi (byte*) print_char_cursor#33 (byte*) print_char_cursor#111 Redundant Phi (byte*) print_line_cursor#12 (byte*) print_line_cursor#15 Redundant Phi (byte*) print_char_cursor#35 (byte*) print_char_cursor#130 @@ -6076,7 +6085,7 @@ Redundant Phi (byte) mul8u_error::b#1 (byte) mul8u_error::b#0 Redundant Phi (word) mul8u_error::ms#1 (word) mul8u_error::ms#0 Redundant Phi (word) mul8u_error::mn#1 (word) mul8u_error::mn#0 Redundant Phi (word) mul8u_error::mf#1 (word) mul8u_error::mf#0 -Redundant Phi (byte*) print_line_cursor#100 (byte*) print_line_cursor#50 +Redundant Phi (byte*) print_line_cursor#101 (byte*) print_line_cursor#100 Redundant Phi (byte*) print_char_cursor#101 (byte*) print_char_cursor#130 Redundant Phi (byte*) print_char_cursor#102 (byte*) print_char_cursor#15 Redundant Phi (byte*) print_char_cursor#103 (byte*) print_char_cursor#130 @@ -6090,12 +6099,12 @@ Redundant Phi (byte*) print_char_cursor#110 (byte*) print_char_cursor#12 Redundant Phi (byte*) print_line_cursor#15 (byte*) print_line_cursor#1 Redundant Phi (byte*) print_char_cursor#111 (byte*) print_line_cursor#1 Redundant Phi (byte*) BGCOL#35 (byte*) BGCOL#1 -Redundant Phi (byte*) print_char_cursor#182 (byte*) print_char_cursor#23 -Redundant Phi (byte*) print_line_cursor#109 (byte*) print_line_cursor#29 +Redundant Phi (byte*) print_char_cursor#183 (byte*) print_char_cursor#23 +Redundant Phi (byte*) print_line_cursor#110 (byte*) print_line_cursor#29 Redundant Phi (signed byte) mul8s_compare::a#10 (signed byte) mul8s_compare::a#7 Redundant Phi (byte*) BGCOL#13 (byte*) BGCOL#31 -Redundant Phi (byte*) print_char_cursor#145 (byte*) print_char_cursor#180 -Redundant Phi (byte*) print_line_cursor#101 (byte*) print_line_cursor#105 +Redundant Phi (byte*) print_char_cursor#145 (byte*) print_char_cursor#181 +Redundant Phi (byte*) print_line_cursor#102 (byte*) print_line_cursor#106 Redundant Phi (byte*) print_char_cursor#113 (byte*) print_char_cursor#127 Redundant Phi (byte*) print_line_cursor#17 (byte*) print_line_cursor#20 Redundant Phi (byte*) print_char_cursor#115 (byte*) print_char_cursor#130 @@ -6107,7 +6116,7 @@ Redundant Phi (signed byte) mul8s_error::b#1 (signed byte) mul8s_error::b#0 Redundant Phi (signed word) mul8s_error::ms#1 (signed word) mul8s_error::ms#0 Redundant Phi (signed word) mul8s_error::mn#1 (signed word) mul8s_error::mn#0 Redundant Phi (signed word) mul8s_error::mf#1 (signed word) mul8s_error::mf#0 -Redundant Phi (byte*) print_line_cursor#102 (byte*) print_line_cursor#101 +Redundant Phi (byte*) print_line_cursor#103 (byte*) print_line_cursor#102 Redundant Phi (byte*) print_char_cursor#117 (byte*) print_char_cursor#130 Redundant Phi (byte*) print_char_cursor#118 (byte*) print_char_cursor#10 Redundant Phi (byte*) print_char_cursor#119 (byte*) print_char_cursor#130 @@ -6167,7 +6176,7 @@ Succesful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) print_line_cursor#0 = ((byte*))1024 Constant (const byte) print_char::ch#0 = '-' Constant (const byte) print_char::ch#1 = '-' -Constant (const string) print_byte::hextab#0 = print_byte::$4 +Constant (const string) print_hextab#0 = $0 Constant (const word) mul8u::res#0 = 0 Constant (const byte[512]) mulf_sqr1_lo#0 = { fill( 512, 0) } Constant (const byte[512]) mulf_sqr1_hi#0 = { fill( 512, 0) } @@ -6259,6 +6268,7 @@ Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) print_sword::@3 Culled Empty Block (label) print_sbyte::@3 Culled Empty Block (label) print_word::@2 +Culled Empty Block (label) @10 Culled Empty Block (label) print_byte::@2 Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) mul8u::@3 @@ -6291,8 +6301,8 @@ Not culling empty block because it shares successor with its predecessor. (label Not culling empty block because it shares successor with its predecessor. (label) mul8u_compare::@7 Not culling empty block because it shares successor with its predecessor. (label) mul8s_compare::@6 Not culling empty block because it shares successor with its predecessor. (label) mul8s_compare::@7 -Not aliassing across scopes: print_char_cursor#149 print_char_cursor#180 -Not aliassing across scopes: print_line_cursor#45 print_line_cursor#105 +Not aliassing across scopes: print_char_cursor#149 print_char_cursor#181 +Not aliassing across scopes: print_line_cursor#45 print_line_cursor#106 Not aliassing across scopes: print_char_cursor#131 print_char_cursor#130 Not aliassing across scopes: print_sword::w#4 print_sword::w#1 Not aliassing across scopes: print_char_cursor#132 print_char_cursor#130 @@ -6312,8 +6322,8 @@ Not aliassing across scopes: mulf8u::return#2 mulf8u::return#0 Not aliassing across scopes: mulf8s::m#0 mulf8u::return#2 Not aliassing across scopes: print_char_cursor#30 print_line_cursor#1 Not aliassing across scopes: print_line_cursor#10 print_line_cursor#1 -Not aliassing across scopes: print_char_cursor#179 print_char_cursor#30 -Not aliassing across scopes: print_line_cursor#103 print_line_cursor#10 +Not aliassing across scopes: print_char_cursor#180 print_char_cursor#30 +Not aliassing across scopes: print_line_cursor#104 print_line_cursor#10 Not aliassing across scopes: muls8u::a#0 mul8u_compare::a#7 Not aliassing across scopes: muls8u::b#0 mul8u_compare::b#10 Not aliassing across scopes: muls8u::return#2 muls8u::return#0 @@ -6336,8 +6346,8 @@ Not aliassing across scopes: print_byte::b#4 mul8u_error::b#0 Not aliassing across scopes: print_word::w#3 mul8u_error::ms#0 Not aliassing across scopes: print_word::w#4 mul8u_error::mn#0 Not aliassing across scopes: print_word::w#5 mul8u_error::mf#0 -Not aliassing across scopes: print_char_cursor#180 print_line_cursor#1 -Not aliassing across scopes: print_line_cursor#105 print_line_cursor#1 +Not aliassing across scopes: print_char_cursor#181 print_line_cursor#1 +Not aliassing across scopes: print_line_cursor#106 print_line_cursor#1 Not aliassing across scopes: muls8s::a#0 mul8s_compare::a#7 Not aliassing across scopes: muls8s::b#0 mul8s_compare::b#10 Not aliassing across scopes: muls8s::return#2 muls8s::return#0 @@ -6360,8 +6370,8 @@ Not aliassing across scopes: print_sword::w#2 mul8s_error::mn#0 Not aliassing across scopes: print_sword::w#3 mul8s_error::mf#0 Alias (word) mulf8u::return#0 = (word~) mulf8u::$0 Succesful SSA optimization Pass2AliasElimination -Not aliassing across scopes: print_char_cursor#149 print_char_cursor#180 -Not aliassing across scopes: print_line_cursor#45 print_line_cursor#105 +Not aliassing across scopes: print_char_cursor#149 print_char_cursor#181 +Not aliassing across scopes: print_line_cursor#45 print_line_cursor#106 Not aliassing across scopes: print_char_cursor#131 print_char_cursor#130 Not aliassing across scopes: print_sword::w#4 print_sword::w#1 Not aliassing across scopes: print_char_cursor#132 print_char_cursor#130 @@ -6381,8 +6391,8 @@ Not aliassing across scopes: mulf8u::return#2 mulf8u::return#0 Not aliassing across scopes: mulf8s::m#0 mulf8u::return#2 Not aliassing across scopes: print_char_cursor#30 print_line_cursor#1 Not aliassing across scopes: print_line_cursor#10 print_line_cursor#1 -Not aliassing across scopes: print_char_cursor#179 print_char_cursor#30 -Not aliassing across scopes: print_line_cursor#103 print_line_cursor#10 +Not aliassing across scopes: print_char_cursor#180 print_char_cursor#30 +Not aliassing across scopes: print_line_cursor#104 print_line_cursor#10 Not aliassing across scopes: muls8u::a#0 mul8u_compare::a#7 Not aliassing across scopes: muls8u::b#0 mul8u_compare::b#10 Not aliassing across scopes: muls8u::return#2 muls8u::return#0 @@ -6405,8 +6415,8 @@ Not aliassing across scopes: print_byte::b#4 mul8u_error::b#0 Not aliassing across scopes: print_word::w#3 mul8u_error::ms#0 Not aliassing across scopes: print_word::w#4 mul8u_error::mn#0 Not aliassing across scopes: print_word::w#5 mul8u_error::mf#0 -Not aliassing across scopes: print_char_cursor#180 print_line_cursor#1 -Not aliassing across scopes: print_line_cursor#105 print_line_cursor#1 +Not aliassing across scopes: print_char_cursor#181 print_line_cursor#1 +Not aliassing across scopes: print_line_cursor#106 print_line_cursor#1 Not aliassing across scopes: muls8s::a#0 mul8s_compare::a#7 Not aliassing across scopes: muls8s::b#0 mul8s_compare::b#10 Not aliassing across scopes: muls8s::return#2 muls8s::return#0 @@ -6428,18 +6438,18 @@ Not aliassing across scopes: print_sword::w#1 mul8s_error::ms#0 Not aliassing across scopes: print_sword::w#2 mul8s_error::mn#0 Not aliassing across scopes: print_sword::w#3 mul8s_error::mf#0 Self Phi Eliminated (byte*) BGCOL#29 -Self Phi Eliminated (byte*) print_char_cursor#179 -Self Phi Eliminated (byte*) print_line_cursor#103 -Self Phi Eliminated (byte*) BGCOL#31 Self Phi Eliminated (byte*) print_char_cursor#180 -Self Phi Eliminated (byte*) print_line_cursor#105 +Self Phi Eliminated (byte*) print_line_cursor#104 +Self Phi Eliminated (byte*) BGCOL#31 +Self Phi Eliminated (byte*) print_char_cursor#181 +Self Phi Eliminated (byte*) print_line_cursor#106 Succesful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) BGCOL#29 (const byte*) BGCOL#0 -Redundant Phi (byte*) print_char_cursor#179 (byte*) print_char_cursor#30 -Redundant Phi (byte*) print_line_cursor#103 (byte*) print_line_cursor#10 +Redundant Phi (byte*) print_char_cursor#180 (byte*) print_char_cursor#30 +Redundant Phi (byte*) print_line_cursor#104 (byte*) print_line_cursor#10 Redundant Phi (byte*) BGCOL#31 (const byte*) BGCOL#0 -Redundant Phi (byte*) print_char_cursor#180 (byte*) print_line_cursor#1 -Redundant Phi (byte*) print_line_cursor#105 (byte*) print_line_cursor#1 +Redundant Phi (byte*) print_char_cursor#181 (byte*) print_line_cursor#1 +Redundant Phi (byte*) print_line_cursor#106 (byte*) print_line_cursor#1 Succesful SSA optimization Pass2RedundantPhiElimination Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7 Not culling empty block because it shares successor with its predecessor. (label) mul8u_compare::@6 @@ -6645,6 +6655,7 @@ Constant inlined mulf_init::sqr2_hi#0 = (const byte[512]) mulf_sqr2_hi#0 Constant inlined mul8u_compare::ok#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul8u_compare::ok#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined mul8u_compare::ok#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined $0 = (const string) print_hextab#0 Constant inlined mul8s_compare::b#0 = -(byte/word/signed word/dword/signed dword) 128 Constant inlined mulf_init::dir#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined mulf_init::dir#0 = (byte/word/signed word/dword/signed dword) 255 @@ -6699,7 +6710,6 @@ Constant inlined muls8s::j#0 = (byte/signed byte/word/signed word/dword/signed d Constant inlined mulf_tables_cmp::asm_sqr#0 = (const byte[512]) mula_sqr1_lo#0 Constant inlined print_char::ch#1 = (byte) '-' Constant inlined print_char::ch#0 = (byte) '-' -Constant inlined print_byte::$4 = (const string) print_byte::hextab#0 Succesful SSA optimization Pass2ConstantInlining Block Sequence Planned @begin @31 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return mul8s_compare mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@12 mul8s_compare::@13 mul8s_compare::@14 mul8s_compare::@6 mul8s_compare::@3 mul8s_compare::@7 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@return mul8s_compare::@5 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@16 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul8s_error mul8s_error::@1 mul8s_error::@2 mul8s_error::@3 mul8s_error::@4 mul8s_error::@5 mul8s_error::@6 mul8s_error::@7 mul8s_error::@8 mul8s_error::@9 mul8s_error::@10 mul8s_error::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8s mul8s::@6 mul8s::@3 mul8s::@1 mul8s::@4 mul8s::@2 mul8s::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mulf8s mulf8s::@6 mulf8s::@3 mulf8s::@1 mulf8s::@4 mulf8s::@2 mulf8s::@return mulf8u mulf8u::@return muls8s muls8s::@2 muls8s::@3 muls8s::@return muls8s::@1 muls8s::@5 mul8u_compare mul8u_compare::@1 mul8u_compare::@2 mul8u_compare::@12 mul8u_compare::@13 mul8u_compare::@14 mul8u_compare::@6 mul8u_compare::@3 mul8u_compare::@7 mul8u_compare::@4 mul8u_compare::@8 mul8u_compare::@return mul8u_compare::@5 mul8u_compare::@10 mul8u_compare::@11 mul8u_compare::@16 mul8u_error mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error::@4 mul8u_error::@5 mul8u_error::@6 mul8u_error::@7 mul8u_error::@8 mul8u_error::@9 mul8u_error::@10 mul8u_error::@return muls8u muls8u::@2 muls8u::@1 muls8u::@return mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3 mulf_tables_cmp::@6 mulf_tables_cmp::@7 mulf_tables_cmp::@8 mulf_tables_cmp::@return mulf_tables_cmp::@2 mulf_tables_cmp::@5 mulf_tables_cmp::@10 mulf_init_asm mulf_init_asm::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return print_cls print_cls::@1 print_cls::@return Added new block during phi lifting mul8s_compare::@18(between mul8s_compare::@10 and mul8s_compare::@1) @@ -6801,50 +6811,50 @@ Propagating live ranges... Propagating live ranges... Propagating live ranges... Created 64 initial phi equivalence classes -Not coalescing [54] print_char_cursor#188 ← print_line_cursor#1 -Coalesced [56] print_line_cursor#115 ← print_line_cursor#1 -Coalesced [57] print_char_cursor#183 ← print_char_cursor#130 +Not coalescing [54] print_char_cursor#189 ← print_line_cursor#1 +Coalesced [56] print_line_cursor#116 ← print_line_cursor#1 +Coalesced [57] print_char_cursor#184 ← print_char_cursor#130 Coalesced [59] mul8s_compare::a#14 ← mul8s_compare::a#1 Coalesced [60] mul8s_compare::b#12 ← mul8s_compare::b#1 Coalesced [61] mul8s_compare::ok#5 ← mul8s_compare::ok#4 -Coalesced [63] print_line_cursor#119 ← print_line_cursor#45 -Coalesced (already) [68] print_line_cursor#120 ← print_line_cursor#1 +Coalesced [63] print_line_cursor#120 ← print_line_cursor#45 +Coalesced (already) [68] print_line_cursor#121 ← print_line_cursor#1 Coalesced [70] print_str::str#19 ← print_str::str#18 -Coalesced [71] print_char_cursor#201 ← print_char_cursor#149 +Coalesced [71] print_char_cursor#202 ← print_char_cursor#149 Coalesced [78] print_str::str#20 ← print_str::str#0 -Coalesced [79] print_char_cursor#202 ← print_char_cursor#1 -Not coalescing [80] print_char_cursor#189 ← print_line_cursor#1 +Coalesced [79] print_char_cursor#203 ← print_char_cursor#1 +Not coalescing [80] print_char_cursor#190 ← print_line_cursor#1 Coalesced [83] print_sbyte::b#7 ← print_sbyte::b#1 -Coalesced [85] print_char_cursor#190 ← print_char_cursor#17 +Coalesced [85] print_char_cursor#191 ← print_char_cursor#17 Coalesced [88] print_sbyte::b#8 ← print_sbyte::b#2 -Coalesced (already) [90] print_char_cursor#191 ← print_char_cursor#17 +Coalesced (already) [90] print_char_cursor#192 ← print_char_cursor#17 Coalesced [93] print_sword::w#8 ← print_sword::w#1 -Coalesced (already) [95] print_char_cursor#192 ← print_char_cursor#17 +Coalesced (already) [95] print_char_cursor#193 ← print_char_cursor#17 Coalesced [98] print_sword::w#9 ← print_sword::w#2 -Coalesced (already) [100] print_char_cursor#193 ← print_char_cursor#17 +Coalesced (already) [100] print_char_cursor#194 ← print_char_cursor#17 Coalesced [103] print_sword::w#10 ← print_sword::w#3 -Coalesced (already) [105] print_line_cursor#116 ← print_line_cursor#1 -Coalesced (already) [106] print_char_cursor#184 ← print_char_cursor#17 -Coalesced [111] print_char_cursor#219 ← print_char_cursor#130 +Coalesced (already) [105] print_line_cursor#117 ← print_line_cursor#1 +Coalesced (already) [106] print_char_cursor#185 ← print_char_cursor#17 +Coalesced [111] print_char_cursor#220 ← print_char_cursor#130 Coalesced [114] print_sword::w#12 ← print_sword::w#0 -Coalesced [115] print_char_cursor#204 ← print_char_cursor#17 -Coalesced [118] print_char_cursor#210 ← print_char_cursor#132 +Coalesced [115] print_char_cursor#205 ← print_char_cursor#17 +Coalesced [118] print_char_cursor#211 ← print_char_cursor#132 Coalesced [121] print_sword::w#11 ← print_sword::w#4 -Coalesced (already) [122] print_char_cursor#203 ← print_char_cursor#130 +Coalesced (already) [122] print_char_cursor#204 ← print_char_cursor#130 Coalesced [125] print_byte::b#10 ← print_byte::b#1 -Coalesced [126] print_char_cursor#214 ← print_char_cursor#136 +Coalesced [126] print_char_cursor#215 ← print_char_cursor#136 Coalesced [129] print_byte::b#11 ← print_byte::b#2 -Coalesced (already) [130] print_char_cursor#215 ← print_char_cursor#17 +Coalesced (already) [130] print_char_cursor#216 ← print_char_cursor#17 Coalesced [136] print_char::ch#5 ← print_char::ch#2 -Coalesced (already) [137] print_char_cursor#216 ← print_char_cursor#137 +Coalesced (already) [137] print_char_cursor#217 ← print_char_cursor#137 Coalesced [141] print_char::ch#6 ← print_char::ch#3 -Coalesced (already) [142] print_char_cursor#217 ← print_char_cursor#17 -Coalesced (already) [151] print_char_cursor#218 ← print_char_cursor#130 +Coalesced (already) [142] print_char_cursor#218 ← print_char_cursor#17 +Coalesced (already) [151] print_char_cursor#219 ← print_char_cursor#130 Coalesced [154] print_sbyte::b#10 ← print_sbyte::b#0 -Coalesced [155] print_char_cursor#221 ← print_char_cursor#17 -Coalesced (already) [158] print_char_cursor#213 ← print_char_cursor#134 +Coalesced [155] print_char_cursor#222 ← print_char_cursor#17 +Coalesced (already) [158] print_char_cursor#214 ← print_char_cursor#134 Coalesced [161] print_sbyte::b#9 ← print_sbyte::b#3 -Coalesced (already) [162] print_char_cursor#220 ← print_char_cursor#130 +Coalesced (already) [162] print_char_cursor#221 ← print_char_cursor#130 Coalesced [172] mul8s::m#7 ← mul8s::m#1 Coalesced [178] mul8s::m#10 ← mul8s::m#2 Coalesced [181] mul8s::m#9 ← mul8s::m#5 @@ -6870,39 +6880,39 @@ Coalesced [255] mulf8u::a#3 ← mulf8u::a#1 Coalesced [256] mulf8u::b#3 ← mulf8u::b#1 Coalesced [262] mul8u::b#4 ← mul8u::b#1 Coalesced [263] mul8u::a#9 ← mul8u::a#2 -Coalesced [286] print_char_cursor#194 ← print_char_cursor#30 -Coalesced [288] print_line_cursor#117 ← print_line_cursor#10 -Coalesced (already) [289] print_char_cursor#185 ← print_char_cursor#130 +Coalesced [286] print_char_cursor#195 ← print_char_cursor#30 +Coalesced [288] print_line_cursor#118 ← print_line_cursor#10 +Coalesced (already) [289] print_char_cursor#186 ← print_char_cursor#130 Coalesced [291] mul8u_compare::a#14 ← mul8u_compare::a#1 Coalesced [292] mul8u_compare::b#12 ← mul8u_compare::b#1 Coalesced [293] mul8u_compare::ok#5 ← mul8u_compare::ok#4 -Coalesced (already) [294] print_char_cursor#195 ← print_char_cursor#30 +Coalesced (already) [294] print_char_cursor#196 ← print_char_cursor#30 Coalesced [297] print_byte::b#7 ← print_byte::b#3 -Coalesced (already) [298] print_char_cursor#211 ← print_char_cursor#130 -Coalesced (already) [300] print_char_cursor#196 ← print_char_cursor#17 +Coalesced (already) [298] print_char_cursor#212 ← print_char_cursor#130 +Coalesced (already) [300] print_char_cursor#197 ← print_char_cursor#17 Coalesced [303] print_byte::b#8 ← print_byte::b#4 -Coalesced (already) [304] print_char_cursor#212 ← print_char_cursor#130 -Coalesced (already) [306] print_char_cursor#197 ← print_char_cursor#17 +Coalesced (already) [304] print_char_cursor#213 ← print_char_cursor#130 +Coalesced (already) [306] print_char_cursor#198 ← print_char_cursor#17 Coalesced [309] print_word::w#8 ← print_word::w#3 -Coalesced (already) [310] print_char_cursor#205 ← print_char_cursor#130 -Coalesced (already) [312] print_char_cursor#198 ← print_char_cursor#17 +Coalesced (already) [310] print_char_cursor#206 ← print_char_cursor#130 +Coalesced (already) [312] print_char_cursor#199 ← print_char_cursor#17 Coalesced [315] print_word::w#9 ← print_word::w#4 -Coalesced (already) [316] print_char_cursor#206 ← print_char_cursor#130 -Coalesced (already) [318] print_char_cursor#199 ← print_char_cursor#17 +Coalesced (already) [316] print_char_cursor#207 ← print_char_cursor#130 +Coalesced (already) [318] print_char_cursor#200 ← print_char_cursor#17 Coalesced [321] print_word::w#10 ← print_word::w#5 -Coalesced (already) [322] print_char_cursor#207 ← print_char_cursor#130 -Coalesced (already) [324] print_line_cursor#118 ← print_line_cursor#10 -Coalesced (already) [325] print_char_cursor#186 ← print_char_cursor#17 +Coalesced (already) [322] print_char_cursor#208 ← print_char_cursor#130 +Coalesced (already) [324] print_line_cursor#119 ← print_line_cursor#10 +Coalesced (already) [325] print_char_cursor#187 ← print_char_cursor#17 Coalesced [333] muls8u::return#5 ← muls8u::m#1 Coalesced [336] muls8u::m#5 ← muls8u::m#1 Coalesced [337] muls8u::i#3 ← muls8u::i#1 -Coalesced (already) [344] print_char_cursor#208 ← print_char_cursor#130 -Coalesced (already) [346] print_char_cursor#200 ← print_char_cursor#17 -Coalesced (already) [349] print_char_cursor#209 ← print_char_cursor#130 -Coalesced (already) [351] print_char_cursor#223 ← print_char_cursor#17 -Coalesced (already) [359] print_char_cursor#187 ← print_char_cursor#130 -Not coalescing [361] print_char_cursor#222 ← print_line_cursor#1 -Coalesced (already) [362] print_line_cursor#121 ← print_line_cursor#1 +Coalesced (already) [344] print_char_cursor#209 ← print_char_cursor#130 +Coalesced (already) [346] print_char_cursor#201 ← print_char_cursor#17 +Coalesced (already) [349] print_char_cursor#210 ← print_char_cursor#130 +Coalesced (already) [351] print_char_cursor#224 ← print_char_cursor#17 +Coalesced (already) [359] print_char_cursor#188 ← print_char_cursor#130 +Not coalescing [361] print_char_cursor#223 ← print_line_cursor#1 +Coalesced (already) [362] print_line_cursor#122 ← print_line_cursor#1 Coalesced [363] mulf_tables_cmp::kc_sqr#8 ← mulf_tables_cmp::kc_sqr#1 Coalesced [364] mulf_tables_cmp::asm_sqr#6 ← mulf_tables_cmp::asm_sqr#1 Coalesced [378] mulf_init::sqr#8 ← mulf_init::sqr#2 @@ -7124,7 +7134,7 @@ mul8s_compare::@10: scope:[mul8s_compare] from mul8s_compare::@5 [52] if((signed byte) mul8s_compare::a#1!=-(byte/word/signed word/dword/signed dword) 128) goto mul8s_compare::@1 [ mul8s_compare::a#1 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::a#1 print_line_cursor#1 ] ) to:mul8s_compare::@11 mul8s_compare::@11: scope:[mul8s_compare] from mul8s_compare::@10 - [53] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_char_cursor#188 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#188 print_line_cursor#1 ] ) + [53] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ print_char_cursor#189 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#189 print_line_cursor#1 ] ) [54] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#130 ] ( main:2::mul8s_compare:15 [ print_line_cursor#1 print_char_cursor#130 ] ) to:mul8s_compare::@16 mul8s_compare::@16: scope:[mul8s_compare] from mul8s_compare::@11 @@ -7147,7 +7157,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1 [62] return [ print_line_cursor#1 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 ] main:2::mul8u_compare:13::print_ln:229 [ print_line_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_ln:252 [ print_line_cursor#1 ] main:2::mulf_tables_cmp:11::print_ln:280 [ print_line_cursor#1 ] ) to:@return print_str: scope:[print_str] from mul8s_compare::@11 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@11 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@7 - [63] (byte*) print_char_cursor#149 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#188 mul8s_error/(byte*~) print_char_cursor#189 mul8s_error::@2/(byte*) print_char_cursor#17 mul8s_error::@4/(byte*) print_char_cursor#17 mul8s_error::@6/(byte*) print_char_cursor#17 mul8s_error::@8/(byte*) print_char_cursor#17 mul8u_compare::@11/(byte*) print_char_cursor#30 mul8u_error/(byte*) print_char_cursor#30 mul8u_error::@2/(byte*) print_char_cursor#17 mul8u_error::@4/(byte*) print_char_cursor#17 mul8u_error::@6/(byte*) print_char_cursor#17 mul8u_error::@8/(byte*) print_char_cursor#17 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@7/(byte*) print_char_cursor#17 ) [ print_str::str#18 print_char_cursor#149 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_str::str#18 print_char_cursor#149 ] ) + [63] (byte*) print_char_cursor#149 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#189 mul8s_error/(byte*~) print_char_cursor#190 mul8s_error::@2/(byte*) print_char_cursor#17 mul8s_error::@4/(byte*) print_char_cursor#17 mul8s_error::@6/(byte*) print_char_cursor#17 mul8s_error::@8/(byte*) print_char_cursor#17 mul8u_compare::@11/(byte*) print_char_cursor#30 mul8u_error/(byte*) print_char_cursor#30 mul8u_error::@2/(byte*) print_char_cursor#17 mul8u_error::@4/(byte*) print_char_cursor#17 mul8u_error::@6/(byte*) print_char_cursor#17 mul8u_error::@8/(byte*) print_char_cursor#17 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@7/(byte*) print_char_cursor#17 ) [ print_str::str#18 print_char_cursor#149 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_str::str#18 print_char_cursor#149 ] ) [63] (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) mul8s_error::str1 mul8s_error::@4/(const string) mul8s_error::str2 mul8s_error::@6/(const string) mul8s_error::str3 mul8s_error::@8/(const string) mul8s_error::str4 mul8u_compare::@11/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) mul8u_error::str1 mul8u_error::@4/(const string) mul8u_error::str2 mul8u_error::@6/(const string) mul8u_error::str3 mul8u_error::@8/(const string) mul8u_error::str4 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@7/(const string) mulf_tables_cmp::str1 ) [ print_str::str#18 print_char_cursor#149 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_str::str#18 print_char_cursor#149 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_str::str#18 print_char_cursor#149 ] ) to:print_str::@1 print_str::@1: scope:[print_str] from print_str print_str::@2 @@ -7164,7 +7174,7 @@ print_str::@2: scope:[print_str] from print_str::@1 [69] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#16 [ print_str::str#0 print_char_cursor#1 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_str::str#0 print_char_cursor#1 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_str::str#0 print_char_cursor#1 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_str::str#0 print_char_cursor#1 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_str::str#0 print_char_cursor#1 ] ) to:print_str::@1 mul8s_error: scope:[mul8s_error] from mul8s_compare::@8 - [70] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#189 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#189 ] ) + [70] (byte*~) print_char_cursor#190 ← (byte*) print_line_cursor#1 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#190 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#190 ] ) [71] call print_str param-assignment [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 ] ) to:mul8s_error::@1 mul8s_error::@1: scope:[mul8s_error] from mul8s_error @@ -7247,12 +7257,12 @@ print_byte: scope:[print_byte] from mul8u_error::@1 mul8u_error::@3 print_sbyte [108] (byte*) print_char_cursor#137 ← phi( mul8u_error::@1/(byte*) print_char_cursor#130 mul8u_error::@3/(byte*) print_char_cursor#130 print_sbyte::@1/(byte*) print_char_cursor#134 print_word/(byte*) print_char_cursor#136 print_word::@1/(byte*) print_char_cursor#17 ) [ print_byte::b#5 print_char_cursor#137 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] ) [108] (byte) print_byte::b#5 ← phi( mul8u_error::@1/(byte) print_byte::b#3 mul8u_error::@3/(byte) print_byte::b#4 print_sbyte::@1/(byte~) print_byte::b#9 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 ) [ print_byte::b#5 print_char_cursor#137 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 ] ) [109] (byte~) print_byte::$0 ← (byte) print_byte::b#5 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#5 print_char_cursor#137 print_byte::$0 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_byte::$0 ] ) - [110] (byte) print_char::ch#2 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] ) + [110] (byte) print_char::ch#2 ← *((const string) print_hextab#0 + (byte~) print_byte::$0) [ print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_byte::b#5 print_char_cursor#137 print_char::ch#2 ] ) [111] call print_char param-assignment [ print_char_cursor#17 print_byte::b#5 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_byte::b#5 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_byte::b#5 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::b#5 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::b#5 ] ) to:print_byte::@1 print_byte::@1: scope:[print_byte] from print_byte [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] ) - [113] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) + [113] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) [114] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] ) to:print_byte::@return print_byte::@return: scope:[print_byte] from print_byte::@1 @@ -7572,7 +7582,7 @@ mulf_tables_cmp::@8: scope:[mulf_tables_cmp] from mulf_tables_cmp::@7 to:mulf_tables_cmp::@return mulf_tables_cmp::@return: scope:[mulf_tables_cmp] from mulf_tables_cmp::@10 mulf_tables_cmp::@8 [272] (byte*) print_line_cursor#10 ← phi( mulf_tables_cmp::@10/(byte*) print_line_cursor#1 mulf_tables_cmp::@8/((byte*))(word/signed word/dword/signed dword) 1024 ) [ print_line_cursor#10 print_char_cursor#30 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#10 print_char_cursor#30 ] ) - [272] (byte*) print_char_cursor#30 ← phi( mulf_tables_cmp::@10/(byte*~) print_char_cursor#222 mulf_tables_cmp::@8/(byte*) print_char_cursor#17 ) [ print_line_cursor#10 print_char_cursor#30 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#10 print_char_cursor#30 ] ) + [272] (byte*) print_char_cursor#30 ← phi( mulf_tables_cmp::@10/(byte*~) print_char_cursor#223 mulf_tables_cmp::@8/(byte*) print_char_cursor#17 ) [ print_line_cursor#10 print_char_cursor#30 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#10 print_char_cursor#30 ] ) [273] return [ print_line_cursor#10 print_char_cursor#30 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#10 print_char_cursor#30 ] ) to:@return mulf_tables_cmp::@2: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1 @@ -7587,7 +7597,7 @@ mulf_tables_cmp::@5: scope:[mulf_tables_cmp] from mulf_tables_cmp::@2 mulf_tables_cmp::@10: scope:[mulf_tables_cmp] from mulf_tables_cmp::@5 [279] phi() [ print_char_cursor#130 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#130 ] ) [280] call print_ln param-assignment [ print_line_cursor#1 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 ] ) - [281] (byte*~) print_char_cursor#222 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#222 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#222 ] ) + [281] (byte*~) print_char_cursor#223 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#223 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#223 ] ) to:mulf_tables_cmp::@return mulf_init_asm: scope:[mulf_init_asm] from main::@2 asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } @@ -8137,7 +8147,6 @@ VARIABLE REGISTER WEIGHTS (byte) print_byte::b#4 4.0 (byte) print_byte::b#5 3.5 (byte~) print_byte::b#9 4.0 -(byte[]) print_byte::hextab (void()) print_char((byte) print_char::ch) (byte) print_char::ch (byte) print_char::ch#2 4.0 @@ -8153,15 +8162,16 @@ VARIABLE REGISTER WEIGHTS (byte*) print_char_cursor#137 3.9999999999999996 (byte*) print_char_cursor#149 28.0 (byte*) print_char_cursor#17 0.8095238095238098 -(byte*~) print_char_cursor#188 4.0 (byte*~) print_char_cursor#189 4.0 -(byte*~) print_char_cursor#222 4.0 +(byte*~) print_char_cursor#190 4.0 +(byte*~) print_char_cursor#223 4.0 (byte*) print_char_cursor#30 0.1951219512195122 (byte*) print_char_cursor#82 6.0 (void()) print_cls() (byte*) print_cls::sc (byte*) print_cls::sc#1 16.5 (byte*) print_cls::sc#2 16.5 +(byte[]) print_hextab (byte*) print_line_cursor (byte*) print_line_cursor#1 0.6338028169014083 (byte*) print_line_cursor#10 0.09523809523809523 @@ -8209,7 +8219,7 @@ Initial phi equivalence classes [ print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 ] [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -[ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] +[ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ] [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] @@ -8296,7 +8306,7 @@ Complete equivalence classes [ print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 ] [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -[ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] +[ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ] [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] @@ -8382,7 +8392,7 @@ Allocated zp ZP_WORD:9 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 prin Allocated zp ZP_WORD:11 [ print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 ] Allocated zp ZP_BYTE:13 [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] Allocated zp ZP_BYTE:14 [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -Allocated zp ZP_WORD:15 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] +Allocated zp ZP_WORD:15 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] Allocated zp ZP_BYTE:17 [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ] Allocated zp ZP_WORD:18 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] Allocated zp ZP_BYTE:20 [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] @@ -8736,7 +8746,7 @@ mul8s_compare: { jmp b11 //SEG91 mul8s_compare::@11 b11: - //SEG92 [53] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_char_cursor#188 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#188 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG92 [53] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ print_char_cursor#189 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#189 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -8744,7 +8754,7 @@ mul8s_compare: { //SEG93 [54] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#130 ] ( main:2::mul8s_compare:15 [ print_line_cursor#1 print_char_cursor#130 ] ) //SEG94 [63] phi from mul8s_compare::@11 to print_str [phi:mul8s_compare::@11->print_str] print_str_from_b11: - //SEG95 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#188 [phi:mul8s_compare::@11->print_str#0] -- register_copy + //SEG95 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#189 [phi:mul8s_compare::@11->print_str#0] -- register_copy //SEG96 [63] phi (byte*) print_str::str#18 = (const string) mul8s_compare::str [phi:mul8s_compare::@11->print_str#1] -- pbuz1=pbuc1 lda #print_str] print_str_from_mul8s_error: - //SEG131 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#189 [phi:mul8s_error->print_str#0] -- register_copy + //SEG131 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#190 [phi:mul8s_error->print_str#0] -- register_copy //SEG132 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1 lda #print_char] @@ -9127,9 +9137,9 @@ print_byte: { lda #$f and b sta _2 - //SEG234 [113] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG234 [113] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) -- vbuz1=pbuc1_derefidx_vbuz2 ldy _2 - lda hextab,y + lda print_hextab,y sta print_char.ch //SEG235 [114] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] ) //SEG236 [116] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] @@ -9142,7 +9152,6 @@ print_byte: { breturn: //SEG240 [115] return [ print_char_cursor#17 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG241 print_char print_char: { @@ -10260,7 +10269,7 @@ mulf_tables_cmp: { lda #>$400 sta print_line_cursor+1 jsr print_ln - //SEG606 [281] (byte*~) print_char_cursor#222 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#222 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#222 ] ) -- pbuz1=pbuz2 + //SEG606 [281] (byte*~) print_char_cursor#223 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#223 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#223 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -10268,7 +10277,7 @@ mulf_tables_cmp: { //SEG607 [272] phi from mulf_tables_cmp::@10 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return] breturn_from_b10: //SEG608 [272] phi (byte*) print_line_cursor#10 = (byte*) print_line_cursor#1 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#0] -- register_copy - //SEG609 [272] phi (byte*) print_char_cursor#30 = (byte*~) print_char_cursor#222 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#1] -- register_copy + //SEG609 [272] phi (byte*) print_char_cursor#30 = (byte*~) print_char_cursor#223 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#1] -- register_copy jmp breturn str: .text "multiply table mismatch at @" str1: .text " / @" @@ -10582,6 +10591,7 @@ print_cls: { //SEG690 [322] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" .align $100 mulf_sqr1_lo: .fill $200, 0 .align $100 @@ -10618,7 +10628,7 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ m Removing always clobbered register reg byte a as potential for zp ZP_BYTE:79 [ mul8s_error::b#0 ] Statement [45] (signed word) mul8s_error::mn#0 ← (signed word) mul8s_compare::mn#0 [ mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [46] (signed word) mul8s_error::mf#0 ← (signed word) mul8s_compare::mf#0 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [53] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_char_cursor#188 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#188 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [53] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ print_char_cursor#189 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#189 print_line_cursor#1 ] ) always clobbers reg byte a Statement [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#131 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8u_compare:13::print_ln:229 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8u_compare:13::mul8u_error:220::print_ln:252 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mulf_tables_cmp:11::print_ln:280 [ print_line_cursor#1 print_char_cursor#131 ] ) always clobbers reg byte a Statement [61] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#131) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#131 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8u_compare:13::print_ln:229 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8u_compare:13::mul8u_error:220::print_ln:252 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mulf_tables_cmp:11::print_ln:280 [ print_line_cursor#1 print_char_cursor#131 ] ) always clobbers reg byte a Statement [65] if(*((byte*) print_str::str#16)!=(byte) '@') goto print_str::@2 [ print_char_cursor#130 print_str::str#16 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_char_cursor#130 print_str::str#16 ] ) always clobbers reg byte a reg byte y @@ -10629,7 +10639,7 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:117 [ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:118 [ mul8u_error::b#0 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:118 [ mul8u_error::b#0 ] Statement [67] *((byte*) print_char_cursor#130) ← *((byte*) print_str::str#16) [ print_char_cursor#130 print_str::str#16 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_char_cursor#130 print_str::str#16 ] ) always clobbers reg byte a reg byte y -Statement [70] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#189 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#189 ] ) always clobbers reg byte a +Statement [70] (byte*~) print_char_cursor#190 ← (byte*) print_line_cursor#1 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#190 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#190 ] ) always clobbers reg byte a Statement [80] (signed word) print_sword::w#1 ← (signed word) mul8s_error::ms#0 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_sword::w#1 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_sword::w#1 ] ) always clobbers reg byte a Statement [84] (signed word) print_sword::w#2 ← (signed word) mul8s_error::mn#0 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_sword::w#2 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_sword::w#2 ] ) always clobbers reg byte a Statement [88] (signed word) print_sword::w#3 ← (signed word) mul8s_error::mf#0 [ print_line_cursor#1 print_char_cursor#130 print_sword::w#3 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ print_line_cursor#1 print_char_cursor#130 print_sword::w#3 ] ) always clobbers reg byte a @@ -10704,7 +10714,7 @@ Statement [264] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/ Statement [266] (word~) print_word::w#11 ← (word)(byte*) mulf_tables_cmp::asm_sqr#2 [ print_char_cursor#130 print_word::w#11 mulf_tables_cmp::kc_sqr#2 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#130 print_word::w#11 mulf_tables_cmp::kc_sqr#2 ] ) always clobbers reg byte a Statement [270] (word~) print_word::w#12 ← (word)(byte*) mulf_tables_cmp::kc_sqr#2 [ print_char_cursor#130 print_word::w#12 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#130 print_word::w#12 ] ) always clobbers reg byte a Statement [276] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ( main:2::mulf_tables_cmp:11 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ) always clobbers reg byte a -Statement [281] (byte*~) print_char_cursor#222 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#222 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#222 ] ) always clobbers reg byte a +Statement [281] (byte*~) print_char_cursor#223 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#223 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#223 ] ) always clobbers reg byte a Statement asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } always clobbers reg byte a reg byte x reg byte y Statement [283] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a Statement [284] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a @@ -10746,12 +10756,12 @@ Statement [41] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/d Statement [44] (signed word) mul8s_error::ms#0 ← (signed word) mul8s_compare::ms#0 [ mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::mf#0 mul8s_compare::mn#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [45] (signed word) mul8s_error::mn#0 ← (signed word) mul8s_compare::mn#0 [ mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_compare::mf#0 mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 print_line_cursor#1 ] ) always clobbers reg byte a Statement [46] (signed word) mul8s_error::mf#0 ← (signed word) mul8s_compare::mf#0 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 ] ) always clobbers reg byte a -Statement [53] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_char_cursor#188 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#188 print_line_cursor#1 ] ) always clobbers reg byte a +Statement [53] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ print_char_cursor#189 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#189 print_line_cursor#1 ] ) always clobbers reg byte a Statement [60] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#23 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#131 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8u_compare:13::print_ln:229 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8u_compare:13::mul8u_error:220::print_ln:252 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mulf_tables_cmp:11::print_ln:280 [ print_line_cursor#1 print_char_cursor#131 ] ) always clobbers reg byte a Statement [61] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#131) goto print_ln::@1 [ print_line_cursor#1 print_char_cursor#131 ] ( main:2::mul8s_compare:15::print_ln:56 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8s_compare:15::mul8s_error:47::print_ln:91 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8u_compare:13::print_ln:229 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mul8u_compare:13::mul8u_error:220::print_ln:252 [ print_line_cursor#1 print_char_cursor#131 ] main:2::mulf_tables_cmp:11::print_ln:280 [ print_line_cursor#1 print_char_cursor#131 ] ) always clobbers reg byte a Statement [65] if(*((byte*) print_str::str#16)!=(byte) '@') goto print_str::@2 [ print_char_cursor#130 print_str::str#16 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_char_cursor#130 print_str::str#16 ] ) always clobbers reg byte a reg byte y Statement [67] *((byte*) print_char_cursor#130) ← *((byte*) print_str::str#16) [ print_char_cursor#130 print_str::str#16 ] ( main:2::mul8s_compare:15::print_str:54 [ print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:71 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:75 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:79 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:83 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8s_compare:15::mul8s_error:47::print_str:87 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::print_str:227 [ print_line_cursor#10 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:232 [ print_line_cursor#10 mul8u_error::a#0 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:236 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:240 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:244 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mul8u_compare:13::mul8u_error:220::print_str:248 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:265 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::asm_sqr#2 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:269 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#130 print_str::str#16 ] main:2::mulf_tables_cmp:11::print_str:278 [ print_char_cursor#130 print_str::str#16 ] ) always clobbers reg byte a reg byte y -Statement [70] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#189 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#189 ] ) always clobbers reg byte a +Statement [70] (byte*~) print_char_cursor#190 ← (byte*) print_line_cursor#1 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#190 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::a#0 mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#190 ] ) always clobbers reg byte a Statement [80] (signed word) print_sword::w#1 ← (signed word) mul8s_error::ms#0 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_sword::w#1 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_sword::w#1 ] ) always clobbers reg byte a Statement [84] (signed word) print_sword::w#2 ← (signed word) mul8s_error::mn#0 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_sword::w#2 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#130 print_sword::w#2 ] ) always clobbers reg byte a Statement [88] (signed word) print_sword::w#3 ← (signed word) mul8s_error::mf#0 [ print_line_cursor#1 print_char_cursor#130 print_sword::w#3 ] ( main:2::mul8s_compare:15::mul8s_error:47 [ print_line_cursor#1 print_char_cursor#130 print_sword::w#3 ] ) always clobbers reg byte a @@ -10803,7 +10813,7 @@ Statement [264] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/ Statement [266] (word~) print_word::w#11 ← (word)(byte*) mulf_tables_cmp::asm_sqr#2 [ print_char_cursor#130 print_word::w#11 mulf_tables_cmp::kc_sqr#2 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#130 print_word::w#11 mulf_tables_cmp::kc_sqr#2 ] ) always clobbers reg byte a Statement [270] (word~) print_word::w#12 ← (word)(byte*) mulf_tables_cmp::kc_sqr#2 [ print_char_cursor#130 print_word::w#12 ] ( main:2::mulf_tables_cmp:11 [ print_char_cursor#130 print_word::w#12 ] ) always clobbers reg byte a Statement [276] if((byte*) mulf_tables_cmp::kc_sqr#1<(const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4) goto mulf_tables_cmp::@1 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ( main:2::mulf_tables_cmp:11 [ mulf_tables_cmp::kc_sqr#1 mulf_tables_cmp::asm_sqr#1 ] ) always clobbers reg byte a -Statement [281] (byte*~) print_char_cursor#222 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#222 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#222 ] ) always clobbers reg byte a +Statement [281] (byte*~) print_char_cursor#223 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#223 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#223 ] ) always clobbers reg byte a Statement asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- } always clobbers reg byte a reg byte x reg byte y Statement [283] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_lo#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a Statement [284] *((const byte*) mulf_init_asm::mem#0) ← *((const byte[512]) mula_sqr1_hi#0) [ ] ( main:2::mulf_init_asm:9 [ ] ) always clobbers reg byte a @@ -10833,7 +10843,7 @@ Potential registers zp ZP_WORD:9 [ print_sword::w#5 print_sword::w#4 print_sword Potential registers zp ZP_WORD:11 [ print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 ] : zp ZP_WORD:11 , Potential registers zp ZP_BYTE:13 [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] : zp ZP_BYTE:13 , reg byte a , reg byte x , Potential registers zp ZP_BYTE:14 [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] : zp ZP_BYTE:14 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:15 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] : zp ZP_WORD:15 , +Potential registers zp ZP_WORD:15 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] : zp ZP_WORD:15 , Potential registers zp ZP_BYTE:17 [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ] : zp ZP_BYTE:17 , reg byte a , reg byte x , Potential registers zp ZP_WORD:18 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] : zp ZP_WORD:18 , Potential registers zp ZP_BYTE:20 [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , reg byte y , @@ -10921,7 +10931,7 @@ Uplift Scope [mul8s_compare] 235.67: zp ZP_BYTE:4 [ mul8s_compare::ok#3 mul8s_co Uplift Scope [mulf_init] 45.1: zp ZP_WORD:50 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] 24.36: zp ZP_BYTE:44 [ mulf_init::c#2 mulf_init::c#1 ] 24.14: zp ZP_BYTE:49 [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] 22: zp ZP_BYTE:125 [ mulf_init::$2 ] 22: zp ZP_BYTE:126 [ mulf_init::$5 ] 22: zp ZP_BYTE:127 [ mulf_init::$6 ] 20.62: zp ZP_WORD:53 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] 19.04: zp ZP_WORD:45 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] 16.5: zp ZP_BYTE:52 [ mulf_init::x_255#2 mulf_init::x_255#1 ] 14.14: zp ZP_WORD:55 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] 12.05: zp ZP_BYTE:57 [ mulf_init::dir#2 mulf_init::dir#3 ] 8.5: zp ZP_WORD:47 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ] Uplift Scope [mul8s] 202: zp ZP_WORD:74 [ mul8s::return#2 ] 13.83: zp ZP_WORD:18 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] 9.36: zp ZP_BYTE:73 [ mul8s::b#0 ] 7.36: zp ZP_BYTE:72 [ mul8s::a#0 ] 4: zp ZP_BYTE:90 [ mul8s::$6 ] 4: zp ZP_BYTE:91 [ mul8s::$16 ] 4: zp ZP_BYTE:92 [ mul8s::$12 ] 4: zp ZP_BYTE:93 [ mul8s::$17 ] Uplift Scope [mulf8s] 202: zp ZP_WORD:68 [ mulf8s::return#2 ] 13.83: zp ZP_WORD:26 [ mulf8s::m#4 mulf8s::m#5 mulf8s::m#1 mulf8s::m#0 mulf8s::m#2 ] 9.36: zp ZP_BYTE:67 [ mulf8s::b#0 ] 7.36: zp ZP_BYTE:66 [ mulf8s::a#0 ] 4: zp ZP_BYTE:97 [ mulf8s::$6 ] 4: zp ZP_BYTE:98 [ mulf8s::$16 ] 4: zp ZP_BYTE:99 [ mulf8s::$12 ] 4: zp ZP_BYTE:100 [ mulf8s::$17 ] -Uplift Scope [] 81.83: zp ZP_WORD:15 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] 34.73: zp ZP_WORD:5 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ] +Uplift Scope [] 81.83: zp ZP_WORD:15 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] 34.73: zp ZP_WORD:5 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ] Uplift Scope [mulf_tables_cmp] 20.17: zp ZP_WORD:40 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] 15.58: zp ZP_WORD:42 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] Uplift Scope [print_str] 35.5: zp ZP_WORD:7 [ print_str::str#16 print_str::str#18 print_str::str#0 ] Uplift Scope [print_cls] 33: zp ZP_WORD:58 [ print_cls::sc#2 print_cls::sc#1 ] @@ -10948,7 +10958,7 @@ Uplifting [mul8s] best 294215 combination zp ZP_WORD:74 [ mul8s::return#2 ] zp Z Limited combination testing to 100 combinations of 2304 possible. Uplifting [mulf8s] best 293896 combination zp ZP_WORD:68 [ mulf8s::return#2 ] zp ZP_WORD:26 [ mulf8s::m#4 mulf8s::m#5 mulf8s::m#1 mulf8s::m#0 mulf8s::m#2 ] zp ZP_BYTE:67 [ mulf8s::b#0 ] reg byte y [ mulf8s::a#0 ] reg byte a [ mulf8s::$6 ] reg byte a [ mulf8s::$16 ] reg byte a [ mulf8s::$12 ] zp ZP_BYTE:100 [ mulf8s::$17 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [] best 293896 combination zp ZP_WORD:15 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] zp ZP_WORD:5 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ] +Uplifting [] best 293896 combination zp ZP_WORD:15 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] zp ZP_WORD:5 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 ] Uplifting [mulf_tables_cmp] best 293896 combination zp ZP_WORD:40 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] zp ZP_WORD:42 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] Uplifting [print_str] best 293896 combination zp ZP_WORD:7 [ print_str::str#16 print_str::str#18 print_str::str#0 ] Uplifting [print_cls] best 293896 combination zp ZP_WORD:58 [ print_cls::sc#2 print_cls::sc#1 ] @@ -11041,7 +11051,7 @@ Coalescing zero page register [ zp ZP_WORD:9 [ print_sword::w#5 print_sword::w#4 Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ print_line_cursor#23 print_line_cursor#45 print_line_cursor#1 print_line_cursor#10 mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 print_cls::sc#2 print_cls::sc#1 ] Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ print_str::str#16 print_str::str#18 print_str::str#0 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] Allocated (was zp ZP_WORD:9) zp ZP_WORD:8 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#0 print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 mul8s_error::ms#0 mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 mul8s_compare::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 muls8s::return#2 muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] -Allocated (was zp ZP_WORD:15) zp ZP_WORD:10 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] +Allocated (was zp ZP_WORD:15) zp ZP_WORD:10 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] Allocated (was zp ZP_WORD:18) zp ZP_WORD:12 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s::return#2 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8s_compare::mn#0 mul8s_error::mn#0 mul8u_compare::mn#0 mul8u_error::mn#0 ] Allocated (was zp ZP_WORD:26) zp ZP_WORD:14 [ mulf8s::m#4 mulf8s::m#5 mulf8s::m#1 mulf8s::m#0 mulf8s::m#2 mulf8s::return#2 mulf8u::return#2 mul8s_compare::mf#0 mul8s_error::mf#0 mulf8u::return#0 mulf8u::return#3 mul8u_compare::mf#0 mul8u_error::mf#0 ] @@ -11282,7 +11292,7 @@ mul8s_compare: { jmp b11 //SEG91 mul8s_compare::@11 b11: - //SEG92 [53] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_char_cursor#188 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#188 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG92 [53] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ print_char_cursor#189 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#189 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -11290,7 +11300,7 @@ mul8s_compare: { //SEG93 [54] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#130 ] ( main:2::mul8s_compare:15 [ print_line_cursor#1 print_char_cursor#130 ] ) //SEG94 [63] phi from mul8s_compare::@11 to print_str [phi:mul8s_compare::@11->print_str] print_str_from_b11: - //SEG95 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#188 [phi:mul8s_compare::@11->print_str#0] -- register_copy + //SEG95 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#189 [phi:mul8s_compare::@11->print_str#0] -- register_copy //SEG96 [63] phi (byte*) print_str::str#18 = (const string) mul8s_compare::str [phi:mul8s_compare::@11->print_str#1] -- pbuz1=pbuc1 lda #print_str] print_str_from_mul8s_error: - //SEG131 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#189 [phi:mul8s_error->print_str#0] -- register_copy + //SEG131 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#190 [phi:mul8s_error->print_str#0] -- register_copy //SEG132 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1 lda #print_char] print_char_from_print_byte: @@ -11657,9 +11667,9 @@ print_byte: { //SEG233 [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG234 [113] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG234 [113] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG235 [114] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] ) //SEG236 [116] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] print_char_from_b1: @@ -11671,7 +11681,6 @@ print_byte: { breturn: //SEG240 [115] return [ print_char_cursor#17 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG241 print_char print_char: { @@ -12672,7 +12681,7 @@ mulf_tables_cmp: { lda #>$400 sta print_line_cursor+1 jsr print_ln - //SEG606 [281] (byte*~) print_char_cursor#222 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#222 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#222 ] ) -- pbuz1=pbuz2 + //SEG606 [281] (byte*~) print_char_cursor#223 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#223 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#223 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 @@ -12680,7 +12689,7 @@ mulf_tables_cmp: { //SEG607 [272] phi from mulf_tables_cmp::@10 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return] breturn_from_b10: //SEG608 [272] phi (byte*) print_line_cursor#10 = (byte*) print_line_cursor#1 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#0] -- register_copy - //SEG609 [272] phi (byte*) print_char_cursor#30 = (byte*~) print_char_cursor#222 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#1] -- register_copy + //SEG609 [272] phi (byte*) print_char_cursor#30 = (byte*~) print_char_cursor#223 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#1] -- register_copy jmp breturn str: .text "multiply table mismatch at @" str1: .text " / @" @@ -12980,6 +12989,7 @@ print_cls: { //SEG690 [322] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" .align $100 mulf_sqr1_lo: .fill $200, 0 .align $100 @@ -13778,8 +13788,6 @@ FINAL SYMBOL TABLE (byte) print_byte::b#4 reg byte x 4.0 (byte) print_byte::b#5 reg byte x 3.5 (byte~) print_byte::b#9 reg byte x 4.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -13796,9 +13804,9 @@ FINAL SYMBOL TABLE (byte*) print_char_cursor#137 print_char_cursor zp ZP_WORD:10 3.9999999999999996 (byte*) print_char_cursor#149 print_char_cursor zp ZP_WORD:10 28.0 (byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:10 0.8095238095238098 -(byte*~) print_char_cursor#188 print_char_cursor zp ZP_WORD:10 4.0 (byte*~) print_char_cursor#189 print_char_cursor zp ZP_WORD:10 4.0 -(byte*~) print_char_cursor#222 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#190 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#223 print_char_cursor zp ZP_WORD:10 4.0 (byte*) print_char_cursor#30 print_char_cursor zp ZP_WORD:10 0.1951219512195122 (byte*) print_char_cursor#82 print_char_cursor zp ZP_WORD:10 6.0 (void()) print_cls() @@ -13807,6 +13815,8 @@ FINAL SYMBOL TABLE (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:4 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:4 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:4 0.6338028169014083 (byte*) print_line_cursor#10 print_line_cursor zp ZP_WORD:4 0.09523809523809523 @@ -13867,7 +13877,7 @@ zp ZP_WORD:6 [ print_str::str#16 print_str::str#18 print_str::str#0 mul8u::mb#2 zp ZP_WORD:8 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#0 print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 mul8s_error::ms#0 mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 mul8s_compare::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 muls8s::return#2 muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -zp ZP_WORD:10 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] +zp ZP_WORD:10 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] reg byte x [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ] zp ZP_WORD:12 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s::return#2 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8s_compare::mn#0 mul8s_error::mn#0 mul8u_compare::mn#0 mul8u_error::mn#0 ] reg byte a [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ] @@ -14085,14 +14095,14 @@ mul8s_compare: { cmp #-$80 bne b1 //SEG91 mul8s_compare::@11 - //SEG92 [53] (byte*~) print_char_cursor#188 ← (byte*) print_line_cursor#1 [ print_char_cursor#188 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#188 print_line_cursor#1 ] ) -- pbuz1=pbuz2 + //SEG92 [53] (byte*~) print_char_cursor#189 ← (byte*) print_line_cursor#1 [ print_char_cursor#189 print_line_cursor#1 ] ( main:2::mul8s_compare:15 [ print_char_cursor#189 print_line_cursor#1 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG93 [54] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#130 ] ( main:2::mul8s_compare:15 [ print_line_cursor#1 print_char_cursor#130 ] ) //SEG94 [63] phi from mul8s_compare::@11 to print_str [phi:mul8s_compare::@11->print_str] - //SEG95 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#188 [phi:mul8s_compare::@11->print_str#0] -- register_copy + //SEG95 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#189 [phi:mul8s_compare::@11->print_str#0] -- register_copy //SEG96 [63] phi (byte*) print_str::str#18 = (const string) mul8s_compare::str [phi:mul8s_compare::@11->print_str#1] -- pbuz1=pbuc1 lda #print_str] - //SEG131 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#189 [phi:mul8s_error->print_str#0] -- register_copy + //SEG131 [63] phi (byte*) print_char_cursor#149 = (byte*~) print_char_cursor#190 [phi:mul8s_error->print_str#0] -- register_copy //SEG132 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1 lda #print_char] //SEG230 [116] phi (byte*) print_char_cursor#82 = (byte*) print_char_cursor#137 [phi:print_byte->print_char#0] -- register_copy @@ -14380,9 +14390,9 @@ print_byte: { //SEG233 [112] (byte~) print_byte::$2 ← (byte) print_byte::b#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ print_char_cursor#17 print_byte::$2 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_byte::$2 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_byte::$2 ] ) -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG234 [113] (byte) print_char::ch#3 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa + //SEG234 [113] (byte) print_char::ch#3 ← *((const string) print_hextab#0 + (byte~) print_byte::$2) [ print_char_cursor#17 print_char::ch#3 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 print_char::ch#3 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 print_char::ch#3 ] ) -- vbuaa=pbuc1_derefidx_vbuaa tay - lda hextab,y + lda print_hextab,y //SEG235 [114] call print_char param-assignment [ print_char_cursor#17 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] ) //SEG236 [116] phi from print_byte::@1 to print_char [phi:print_byte::@1->print_char] //SEG237 [116] phi (byte*) print_char_cursor#82 = (byte*) print_char_cursor#17 [phi:print_byte::@1->print_char#0] -- register_copy @@ -14391,7 +14401,6 @@ print_byte: { //SEG239 print_byte::@return //SEG240 [115] return [ print_char_cursor#17 ] ( main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:104 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:104 [ mul8s_error::mf#0 print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:104 [ print_line_cursor#1 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:104 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:104 [ print_line_cursor#10 mul8u_error::mf#0 print_word::w#6 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:104 [ print_line_cursor#10 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:104 [ mulf_tables_cmp::kc_sqr#2 print_word::w#6 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:104 [ print_word::w#6 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:81::print_word:100::print_byte:106 [ mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:85::print_word:100::print_byte:106 [ mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sword:89::print_word:100::print_byte:106 [ print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:242::print_byte:106 [ print_line_cursor#10 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:246::print_byte:106 [ print_line_cursor#10 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_word:250::print_byte:106 [ print_line_cursor#10 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:267::print_byte:106 [ mulf_tables_cmp::kc_sqr#2 print_char_cursor#17 ] main:2::mulf_tables_cmp:11::print_word:271::print_byte:106 [ print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:73::print_byte:127 [ mul8s_error::b#0 mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8s_compare:15::mul8s_error:47::print_sbyte:77::print_byte:127 [ mul8s_error::ms#0 mul8s_error::mn#0 mul8s_error::mf#0 print_line_cursor#1 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:234 [ print_line_cursor#10 mul8u_error::b#0 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] main:2::mul8u_compare:13::mul8u_error:220::print_byte:238 [ print_line_cursor#10 mul8u_error::ms#0 mul8u_error::mn#0 mul8u_error::mf#0 print_char_cursor#17 ] ) rts - hextab: .text "0123456789abcdef" } //SEG241 print_char print_char: { @@ -15196,14 +15205,14 @@ mulf_tables_cmp: { lda #>$400 sta print_line_cursor+1 jsr print_ln - //SEG606 [281] (byte*~) print_char_cursor#222 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#222 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#222 ] ) -- pbuz1=pbuz2 + //SEG606 [281] (byte*~) print_char_cursor#223 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#223 ] ( main:2::mulf_tables_cmp:11 [ print_line_cursor#1 print_char_cursor#223 ] ) -- pbuz1=pbuz2 lda print_line_cursor sta print_char_cursor lda print_line_cursor+1 sta print_char_cursor+1 //SEG607 [272] phi from mulf_tables_cmp::@10 to mulf_tables_cmp::@return [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return] //SEG608 [272] phi (byte*) print_line_cursor#10 = (byte*) print_line_cursor#1 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#0] -- register_copy - //SEG609 [272] phi (byte*) print_char_cursor#30 = (byte*~) print_char_cursor#222 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#1] -- register_copy + //SEG609 [272] phi (byte*) print_char_cursor#30 = (byte*~) print_char_cursor#223 [phi:mulf_tables_cmp::@10->mulf_tables_cmp::@return#1] -- register_copy jmp breturn str: .text "multiply table mismatch at @" str1: .text " / @" @@ -15468,6 +15477,7 @@ print_cls: { //SEG690 [322] return [ ] ( main:2::print_cls:5 [ ] ) rts } + print_hextab: .text "0123456789abcdef" .align $100 mulf_sqr1_lo: .fill $200, 0 .align $100 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.sym b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.sym index 288ce461a..29029194b 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.sym +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.sym @@ -354,8 +354,6 @@ (byte) print_byte::b#4 reg byte x 4.0 (byte) print_byte::b#5 reg byte x 3.5 (byte~) print_byte::b#9 reg byte x 4.0 -(byte[]) print_byte::hextab -(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef" (void()) print_char((byte) print_char::ch) (label) print_char::@return (byte) print_char::ch @@ -372,9 +370,9 @@ (byte*) print_char_cursor#137 print_char_cursor zp ZP_WORD:10 3.9999999999999996 (byte*) print_char_cursor#149 print_char_cursor zp ZP_WORD:10 28.0 (byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:10 0.8095238095238098 -(byte*~) print_char_cursor#188 print_char_cursor zp ZP_WORD:10 4.0 (byte*~) print_char_cursor#189 print_char_cursor zp ZP_WORD:10 4.0 -(byte*~) print_char_cursor#222 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#190 print_char_cursor zp ZP_WORD:10 4.0 +(byte*~) print_char_cursor#223 print_char_cursor zp ZP_WORD:10 4.0 (byte*) print_char_cursor#30 print_char_cursor zp ZP_WORD:10 0.1951219512195122 (byte*) print_char_cursor#82 print_char_cursor zp ZP_WORD:10 6.0 (void()) print_cls() @@ -383,6 +381,8 @@ (byte*) print_cls::sc (byte*) print_cls::sc#1 sc zp ZP_WORD:4 16.5 (byte*) print_cls::sc#2 sc zp ZP_WORD:4 16.5 +(byte[]) print_hextab +(const string) print_hextab#0 print_hextab = (string) "0123456789abcdef" (byte*) print_line_cursor (byte*) print_line_cursor#1 print_line_cursor zp ZP_WORD:4 0.6338028169014083 (byte*) print_line_cursor#10 print_line_cursor zp ZP_WORD:4 0.09523809523809523 @@ -443,7 +443,7 @@ zp ZP_WORD:6 [ print_str::str#16 print_str::str#18 print_str::str#0 mul8u::mb#2 zp ZP_WORD:8 [ print_sword::w#5 print_sword::w#4 print_sword::w#1 print_sword::w#2 print_sword::w#3 print_sword::w#0 print_word::w#6 print_word::w#3 print_word::w#4 print_word::w#5 print_word::w#11 print_word::w#12 print_word::w#13 mul8s_error::ms#0 mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 mul8s_compare::ms#0 mul8u_compare::ms#0 mul8u_error::ms#0 muls8s::m#5 muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#2 muls8s::return#2 muls8u::return#0 muls8u::m#3 muls8u::m#1 muls8u::return#2 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] reg byte x [ print_byte::b#5 print_byte::b#3 print_byte::b#4 print_byte::b#9 print_byte::b#1 print_byte::b#2 ] reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ] -zp ZP_WORD:10 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#188 print_char_cursor#189 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#222 ] +zp ZP_WORD:10 [ print_char_cursor#82 print_char_cursor#137 print_char_cursor#136 print_char_cursor#132 print_char_cursor#149 print_char_cursor#189 print_char_cursor#190 print_char_cursor#131 print_char_cursor#130 print_char_cursor#17 print_char_cursor#30 print_char_cursor#1 print_char_cursor#134 print_char_cursor#223 ] reg byte x [ print_sbyte::b#4 print_sbyte::b#3 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#0 ] zp ZP_WORD:12 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 mul8s::return#2 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 mul8s_compare::mn#0 mul8s_error::mn#0 mul8u_compare::mn#0 mul8u_error::mn#0 ] reg byte a [ mul8u::b#2 mul8u::b#3 mul8u::b#1 ]