1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-08-02 09:29:35 +00:00

Implemented v0.1 of a screen form library

This commit is contained in:
jespergravgaard 2018-04-03 00:02:25 +02:00
parent 91589327e3
commit 17ffe83bd2
63 changed files with 8504 additions and 3269 deletions

View File

@ -0,0 +1,6 @@
sec
sbc #{c1}
bvc !+
eor #$80
!:
bpl {la1}

View File

@ -1,4 +1,3 @@
package dk.camelot64.kickc.test;
import dk.camelot64.kickc.CompileLog;

View File

@ -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;
form_line_hi[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<form_fields_cnt; idx++) {
byte* field = form_field_ptr(idx);
*field = print_hextab[form_fields_val[idx]];
}
}
// Reads keyboard and allows the user to navigate and change the fields of the form
void form_control() {
byte* field = form_field_ptr(form_field_idx);
// Blinking cursor
if(--form_cursor_count < 0) {
form_cursor_count = FORM_CURSOR_BLINK;
}
if(form_cursor_count<FORM_CURSOR_BLINK/2) {
*field = *field | $80;
} else {
*field = *field & $7f;
}
// Navigation using cursor up/down
byte key_down = keyboard_key_pressed(KEY_CRSR_DOWN);
if(key_down!=key_down_debounce) {
key_down_debounce = key_down;
if(key_down!=0) {
// Unblink the cursor
*field = *field & $7f;
if(keyboard_key_pressed(KEY_RSHIFT)==0) {
// Move to next field
if(++form_field_idx==form_fields_cnt) {
form_field_idx = 0;
}
} else {
// Move to previous field
if(--form_field_idx==$ff) {
form_field_idx = form_fields_cnt-1;
}
}
// Always blink cursor in new field
form_cursor_count = FORM_CURSOR_BLINK/2;
// Return to refresh
return;
}
}
// Change value with cursor left/right
// Navigation using cursor up/down
byte key_right = keyboard_key_pressed(KEY_CRSR_RIGHT);
if(key_right!=key_right_debounce) {
key_right_debounce = key_right;
if(key_right!=0) {
if(keyboard_key_pressed(KEY_RSHIFT)==0) {
// Increase value
form_fields_val[form_field_idx] = (form_fields_val[form_field_idx]+1) & $f;
} else {
// Decrease value
form_fields_val[form_field_idx] = (form_fields_val[form_field_idx]-1) & $f;
}
// Render field value
*field = print_hextab[form_fields_val[form_field_idx]];
}
}
}

View File

@ -84,12 +84,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

View File

@ -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 #<COLS
sta c
@ -87,31 +101,194 @@ menu: {
jsr print_set_screen
jsr print_cls
jsr print_str_lines
jmp b4
breturn:
rts
b4:
jsr form_set_screen
jsr form_render_values
b6:
lda RASTER
cmp #$ff
bne b6
jsr form_control
jmp b6
}
form_control: {
.label field = 5
stx form_field_ptr.field_idx
jsr form_field_ptr
dec form_cursor_count
lda form_cursor_count
cmp #0
bpl b1
lda #FORM_CURSOR_BLINK
sta form_cursor_count
b1:
lda form_cursor_count
sec
sbc #FORM_CURSOR_BLINK/2
bvc !+
eor #$80
!:
bpl b2
lda #$80
ldy #0
ora (field),y
sta (field),y
b3:
ldy #KEY_CRSR_DOWN
jsr keyboard_key_pressed
cmp key_down_debounce
beq b4
sta key_down_debounce
cmp #0
beq b4
lda #$7f
ldy #0
and (field),y
sta (field),y
ldy #KEY_RSHIFT
jsr keyboard_key_pressed
cmp #0
bne b6
inx
cpx #form_fields_cnt
bne b8
ldx #0
b8:
lda #FORM_CURSOR_BLINK/2
sta form_cursor_count
breturn:
rts
b6:
dex
cpx #$ff
bne b8
ldx #form_fields_cnt-1
jmp b8
b4:
ldy #KEY_CRSR_RIGHT
jsr keyboard_key_pressed
cmp key_right_debounce
beq breturn
sta key_right_debounce
cmp #0
beq breturn
ldy #KEY_RSHIFT
jsr keyboard_key_pressed
cmp #0
bne b12
lda form_fields_val,x
clc
adc #1
and #$f
sta form_fields_val,x
b13:
lda form_fields_val,x
tay
lda print_hextab,y
ldy #0
sta (field),y
jmp breturn
b12:
lda form_fields_val,x
sec
sbc #1
and #$f
sta form_fields_val,x
jmp b13
b2:
lda #$7f
ldy #0
and (field),y
sta (field),y
jmp b3
}
keyboard_key_pressed: {
.const colidx = KEY_SPACE&7
.label rowidx = KEY_SPACE>>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
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
sta print_line_cursor
lda #>menu.SCREEN
@ -175,7 +352,7 @@ print_ln: {
rts
}
print_cls: {
.label sc = 2
.label sc = 5
lda #<menu.SCREEN
sta sc
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 @"+"@"

View File

@ -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

View File

@ -1,4 +1,4 @@
(label) @21
(label) @25
(label) @begin
(label) @end
(byte*) BGCOL
@ -33,12 +33,20 @@
(const byte*) DTV_PALETTE#0 DTV_PALETTE = ((byte*))(word/dword/signed dword) 53760
(byte[16]) DTV_PALETTE_DEFAULT
(const byte[16]) DTV_PALETTE_DEFAULT#0 DTV_PALETTE_DEFAULT = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 15, (byte/signed byte/word/signed word/dword/signed dword) 54, (byte/word/signed word/dword/signed dword) 190, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 219, (byte/word/signed word/dword/signed dword) 134, (byte/word/signed word/dword/signed dword) 255, (byte/signed byte/word/signed word/dword/signed dword) 41, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 59, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 154, (byte/signed byte/word/signed word/dword/signed dword) 10 }
(byte) KEY_SPACE
(const byte) KEY_SPACE#0 KEY_SPACE = (byte/signed byte/word/signed word/dword/signed dword) 60
(signed byte) FORM_CURSOR_BLINK
(const signed byte) FORM_CURSOR_BLINK#0 FORM_CURSOR_BLINK = (byte/signed byte/word/signed word/dword/signed dword) 40
(byte) KEY_CRSR_DOWN
(const byte) KEY_CRSR_DOWN#0 KEY_CRSR_DOWN = (byte/signed byte/word/signed word/dword/signed dword) 7
(byte) KEY_CRSR_RIGHT
(const byte) KEY_CRSR_RIGHT#0 KEY_CRSR_RIGHT = (byte/signed byte/word/signed word/dword/signed dword) 2
(byte) KEY_RSHIFT
(const byte) KEY_RSHIFT#0 KEY_RSHIFT = (byte/signed byte/word/signed word/dword/signed dword) 52
(byte) LIGHT_GREEN
(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) 13
(byte[]) MENU_TEXT
(const string) MENU_TEXT#0 MENU_TEXT = (string) " DTV GfxExplorer PRESET 8bpp pixel cell @"+(string) " CONTROL PLANE A PLANE B VIC II @"+(string) " bmm 0 patt p1 patt p2 screen s3 @"+(string) " mcm 0 start 00 start 00 gfx g4 @"+(string) " ecm 0 step 00 step 00 colors c5 @"+(string) " hicol 0 mod 00 mod 00 bgcol0 00 @"+(string) " line 0 bgcol1 00 @"+(string) " colof 0 borof 0 bgcol2 00 @"+(string) " chunk 0 overs 0 bgcol3 00 @"+(string) "@"
(byte*) RASTER
(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266
(byte*) VIC_CONTROL
(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265
(byte*) VIC_CONTROL2
@ -51,18 +59,136 @@
(const byte*) VIC_MEMORY#0 VIC_MEMORY = ((byte*))(word/dword/signed dword) 53272
(byte) VIC_RSEL
(const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8
(void()) form_control()
(byte~) form_control::$13 reg byte a 4.0
(byte~) form_control::$14 reg byte a 4.0
(byte~) form_control::$28 reg byte a 4.0
(byte/signed word/word/dword/signed dword~) form_control::$31 reg byte a 4.0
(byte/word/dword~) form_control::$32 reg byte a 4.0
(byte/signed word/word/dword/signed dword~) form_control::$33 reg byte a 4.0
(byte/word/dword~) form_control::$34 reg byte a 4.0
(byte/word/dword~) form_control::$6 reg byte a 4.0
(byte~) form_control::$7 reg byte a 4.0
(label) form_control::@1
(label) form_control::@12
(label) form_control::@13
(label) form_control::@15
(label) form_control::@17
(label) form_control::@18
(label) form_control::@19
(label) form_control::@2
(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::@33
(label) form_control::@34
(label) form_control::@35
(label) form_control::@4
(label) form_control::@6
(label) form_control::@8
(label) form_control::@return
(byte*) form_control::field
(byte*) form_control::field#0 field zp ZP_WORD:5 0.44444444444444453
(byte) form_control::key_down
(byte) form_control::key_down#0 reg byte a 2.6666666666666665
(byte) form_control::key_right
(byte) form_control::key_right#0 reg byte a 2.6666666666666665
(signed byte) form_cursor_count
(signed byte) form_cursor_count#1 form_cursor_count zp ZP_BYTE:2 0.41935483870967744
(signed byte) form_cursor_count#13 form_cursor_count zp ZP_BYTE:2 11.6
(signed byte) form_cursor_count#15 form_cursor_count zp ZP_BYTE:2 0.3125
(signed byte) form_cursor_count#16 form_cursor_count zp ZP_BYTE:2 35.66666666666666
(signed byte) form_cursor_count#5 form_cursor_count zp ZP_BYTE:2 2.0
(byte) form_field_idx
(byte) form_field_idx#1 reg byte x 0.41935483870967744
(byte) form_field_idx#14 reg byte x 2.666666666666665
(byte) form_field_idx#18 reg byte x 36.33333333333332
(byte) form_field_idx#30 reg byte x 6.0
(byte) form_field_idx#37 reg byte x 2.0
(byte) form_field_idx#38 reg byte x 2.0
(byte*()) form_field_ptr((byte) form_field_ptr::field_idx)
(word~) form_field_ptr::$2 $2 zp ZP_WORD:5 1.0
(label) form_field_ptr::@return
(byte*) form_field_ptr::field
(byte) form_field_ptr::field_idx
(byte) form_field_ptr::field_idx#0 field_idx zp ZP_BYTE:7 202.0
(byte) form_field_ptr::field_idx#1 field_idx zp ZP_BYTE:7 4.0
(byte) form_field_ptr::field_idx#2 field_idx zp ZP_BYTE:7 35.66666666666666
(byte*) form_field_ptr::line
(byte*) form_field_ptr::return
(byte*) form_field_ptr::return#0 return zp ZP_WORD:5 26.25
(byte*) form_field_ptr::return#2 return zp ZP_WORD:5 202.0
(byte*) form_field_ptr::return#3 return zp ZP_WORD:5 4.0
(byte) form_field_ptr::x
(byte) form_field_ptr::x#0 reg byte a 4.0
(byte) form_field_ptr::y
(byte) form_field_ptr::y#0 reg byte a 6.0
(byte) form_fields_cnt
(const byte) form_fields_cnt#0 form_fields_cnt = (byte/signed byte/word/signed word/dword/signed dword) 9
(byte[]) form_fields_val
(const byte[]) form_fields_val#0 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[]) form_fields_x
(const byte[]) form_fields_x#0 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
(const byte[]) form_fields_y#0 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[25]) form_line_hi
(const byte[25]) form_line_hi#0 form_line_hi = { fill( 25, 0) }
(byte[25]) form_line_lo
(const byte[25]) form_line_lo#0 form_line_lo = { fill( 25, 0) }
(void()) form_render_values()
(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 field zp ZP_WORD:5 202.0
(byte) form_render_values::idx
(byte) form_render_values::idx#1 idx zp ZP_BYTE:7 151.5
(byte) form_render_values::idx#2 idx zp ZP_BYTE:7 67.33333333333333
(void()) form_set_screen((byte*) form_set_screen::screen)
(byte~) form_set_screen::$0 reg byte a 202.0
(byte~) form_set_screen::$1 reg byte a 202.0
(label) form_set_screen::@1
(label) form_set_screen::@return
(byte*) form_set_screen::line
(byte*) form_set_screen::line#1 line zp ZP_WORD:5 67.33333333333333
(byte*) form_set_screen::line#2 line zp ZP_WORD:5 80.8
(byte*) form_set_screen::screen
(byte) form_set_screen::y
(byte) form_set_screen::y#1 reg byte y 151.5
(byte) form_set_screen::y#2 reg byte y 67.33333333333333
(byte) key_down_debounce
(byte) key_down_debounce#1 key_down_debounce zp ZP_BYTE:3 0.41935483870967744
(byte) key_down_debounce#11 key_down_debounce zp ZP_BYTE:3 4.916666666666666
(byte) key_down_debounce#13 key_down_debounce zp ZP_BYTE:3 36.33333333333332
(byte) key_down_debounce#20 key_down_debounce zp ZP_BYTE:3 0.5263157894736842
(byte) key_down_debounce#23 key_down_debounce zp ZP_BYTE:3 0.4
(byte) key_right_debounce
(byte) key_right_debounce#1 key_right_debounce zp ZP_BYTE:4 0.41935483870967744
(byte) key_right_debounce#11 key_right_debounce zp ZP_BYTE:4 2.727272727272727
(byte) key_right_debounce#13 key_right_debounce zp ZP_BYTE:4 36.33333333333332
(byte) key_right_debounce#21 key_right_debounce zp ZP_BYTE:4 0.42857142857142855
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
(byte~) keyboard_key_pressed::$2 reg byte a 4.0
(label) keyboard_key_pressed::@2
(label) keyboard_key_pressed::@return
(byte) keyboard_key_pressed::colidx
(const byte) keyboard_key_pressed::colidx#0 colidx = (const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7
(byte) keyboard_key_pressed::colidx#0 colidx zp ZP_BYTE:7 0.6666666666666666
(byte) keyboard_key_pressed::key
(byte) keyboard_key_pressed::key#4 reg byte y 2.0
(byte) keyboard_key_pressed::return
(byte) keyboard_key_pressed::return#0 reg byte a 34.33333333333333
(byte) keyboard_key_pressed::return#2 reg byte a 202.0
(byte) keyboard_key_pressed::return#0 reg byte a 1.6666666666666665
(byte) keyboard_key_pressed::return#10 reg byte a 4.0
(byte) keyboard_key_pressed::return#2 reg byte a 4.0
(byte) keyboard_key_pressed::return#3 reg byte a 4.0
(byte) keyboard_key_pressed::return#4 reg byte a 4.0
(byte) keyboard_key_pressed::rowidx
(const byte) keyboard_key_pressed::rowidx#0 rowidx = (const byte) KEY_SPACE#0>>(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 ]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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 #<str6
sta print_str.str
@ -4870,9 +4882,9 @@ print_byte: {
lsr
lsr
sta _0
//SEG190 [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 ] ) -- vbuz1=pbuc1_derefidx_vbuz2
//SEG190 [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 ] ) -- vbuz1=pbuc1_derefidx_vbuz2
ldy _0
lda hextab,y
lda print_hextab,y
sta print_char.ch
//SEG191 [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 ] )
//SEG192 [80] phi from print_byte to print_char [phi:print_byte->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 #<str6
sta print_str.str
@ -6015,9 +6027,9 @@ print_byte: {
lsr
lsr
lsr
//SEG190 [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 ] ) -- vbuaa=pbuc1_derefidx_vbuaa
//SEG190 [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 ] ) -- vbuaa=pbuc1_derefidx_vbuaa
tay
lda hextab,y
lda print_hextab,y
//SEG191 [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 ] )
//SEG192 [80] phi from print_byte to print_char [phi:print_byte->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 #<str6
sta print_str.str
@ -7242,9 +7254,9 @@ print_byte: {
lsr
lsr
lsr
//SEG190 [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 ] ) -- vbuaa=pbuc1_derefidx_vbuaa
//SEG190 [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 ] ) -- vbuaa=pbuc1_derefidx_vbuaa
tay
lda hextab,y
lda print_hextab,y
//SEG191 [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 ] )
//SEG192 [80] phi from print_byte to print_char [phi:print_byte->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"

View File

@ -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 ]

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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 ]

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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)

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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)

View File

@ -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"

View File

@ -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

View File

@ -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 #<str5
sta print_str.str
@ -7747,9 +7759,9 @@ print_byte: {
lsr
lsr
sta _0
//SEG172 [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 ] ) -- vbuz1=pbuc1_derefidx_vbuz2
//SEG172 [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 ] ) -- vbuz1=pbuc1_derefidx_vbuz2
ldy _0
lda hextab,y
lda print_hextab,y
sta print_char.ch
//SEG173 [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 ] )
//SEG174 [82] phi from print_byte to print_char [phi:print_byte->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 #<str5
sta print_str.str
@ -9420,9 +9432,9 @@ print_byte: {
lsr
lsr
lsr
//SEG172 [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 ] ) -- vbuaa=pbuc1_derefidx_vbuaa
//SEG172 [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 ] ) -- vbuaa=pbuc1_derefidx_vbuaa
tay
lda hextab,y
lda print_hextab,y
//SEG173 [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 ] )
//SEG174 [82] phi from print_byte to print_char [phi:print_byte->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 #<str5
sta print_str.str
@ -11237,9 +11249,9 @@ print_byte: {
lsr
lsr
lsr
//SEG172 [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 ] ) -- vbuaa=pbuc1_derefidx_vbuaa
//SEG172 [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 ] ) -- vbuaa=pbuc1_derefidx_vbuaa
tay
lda hextab,y
lda print_hextab,y
//SEG173 [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 ] )
//SEG174 [82] phi from print_byte to print_char [phi:print_byte->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"

View File

@ -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 ]

View File

@ -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"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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 ]

View File

@ -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"

View File

@ -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 [ ] )

File diff suppressed because it is too large Load Diff

View File

@ -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 ]

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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 ]

View File

@ -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

View File

@ -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

View File

@ -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 ]

View File

@ -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

View File

@ -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!- }

View File

@ -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 ]