mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-11 20:37:40 +00:00
Improved keyboard routine slightly.
This commit is contained in:
parent
770f213b40
commit
dc25fa7d11
@ -1,6 +1,7 @@
|
||||
package dk.camelot64.kickc.passes;
|
||||
|
||||
import dk.camelot64.kickc.model.*;
|
||||
import dk.camelot64.kickc.model.statements.StatementPhiBlock;
|
||||
import dk.camelot64.kickc.model.values.LValue;
|
||||
import dk.camelot64.kickc.model.values.VariableRef;
|
||||
import dk.camelot64.kickc.model.statements.Statement;
|
||||
@ -51,6 +52,20 @@ public class PassNEliminateUnusedVars extends Pass2SsaOptimization {
|
||||
call.setlValue(null);
|
||||
modified = true;
|
||||
}
|
||||
} else if(statement instanceof StatementPhiBlock) {
|
||||
StatementPhiBlock statementPhi = (StatementPhiBlock) statement;
|
||||
ListIterator<StatementPhiBlock.PhiVariable> phiVarIt = statementPhi.getPhiVariables().listIterator();
|
||||
while(phiVarIt.hasNext()) {
|
||||
StatementPhiBlock.PhiVariable phiVariable = phiVarIt.next();
|
||||
VariableRef variableRef = phiVariable.getVariable();
|
||||
if(referenceInfos.isUnused(variableRef)) {
|
||||
getLog().append("Eliminating unused variable - keeping the phi block " + variableRef.toString(getProgram()));
|
||||
Variable variable = getScope().getVariable(variableRef);
|
||||
variable.getScope().remove(variable);
|
||||
phiVarIt.remove();
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,30 @@ void main() {
|
||||
}
|
||||
|
||||
const byte* MENU_SCREEN = $8000;
|
||||
const byte* MENU_CHARSET = $9800;
|
||||
const byte* MENU_CHARSET = $9800; // Charset ROM
|
||||
byte[] MENU_TEXT =
|
||||
"C64DTV Graphics Modes EMBLHCC@" +
|
||||
" CCMIIHO@" +
|
||||
" MMMNCUL@" +
|
||||
"----------------------------------------@" +
|
||||
"1. Standard Char (V) 0000000@" +
|
||||
"2. Extended Color Char (V) 1000000@" +
|
||||
"3. Multicolor Char (V) 0100000@" +
|
||||
"4. Standard Bitmap (V) 0010000@" +
|
||||
"5. Multicolor Bitmap (V) 0110000@" +
|
||||
"6. High Color Standard Char (H) 0000100@" +
|
||||
"7. High Extended Color Char (H) 1000100@" +
|
||||
"8. High Multicolor Char (H) 0100100@" +
|
||||
"9. High Multicolor Bitmap (H) 0110100@" +
|
||||
"a. Sixs Fred (D) 1111100@" +
|
||||
"b. Sixs Fred 2 (D) 1111000@" +
|
||||
"c. Two Plane Bitmap (D) 1011100@" +
|
||||
"d. Two Plane Multicol Bitmap (D) 1111100@" +
|
||||
"e. 8bpp Pixel Cell (D) 1101110@" +
|
||||
"f. Chunky 8bpp Bitmap (D) 1101111@" +
|
||||
"----------------------------------------@" +
|
||||
" (V) vicII (H) vicII+hicol (D) c64dtv@" +
|
||||
"@" ;
|
||||
|
||||
void menu() {
|
||||
// DTV Graphics Bank
|
||||
@ -22,40 +45,20 @@ void menu() {
|
||||
*CIA2_PORT_A_DDR = %00000011; // Set VIC Bank bits to output - all others to input
|
||||
*CIA2_PORT_A = %00000011 ^ (byte)((word)MENU_CHARSET/$4000); // Set VIC Bank
|
||||
// VIC Graphics Mode
|
||||
*D011 = VIC_DEN|VIC_RSEL|3;
|
||||
*D016 = VIC_CSEL;
|
||||
*VIC_CONTROL = VIC_DEN|VIC_RSEL|3;
|
||||
*VIC_CONTROL2 = VIC_CSEL;
|
||||
// VIC Memory Pointers
|
||||
*D018 = (byte)((((word)MENU_SCREEN&$3fff)/$40)|(((word)MENU_CHARSET&$3fff)/$400));
|
||||
*VIC_MEMORY = (byte)((((word)MENU_SCREEN&$3fff)/$40)|(((word)MENU_CHARSET&$3fff)/$400));
|
||||
// Char Colors
|
||||
for(byte* c=COLS;c!=COLS+1000;c++) *c=LIGHT_GREEN;
|
||||
// Screen colors
|
||||
*BGCOL = 0;
|
||||
*BORDERCOL = 0;
|
||||
|
||||
// Display menu Text
|
||||
print_set_screen(MENU_SCREEN);
|
||||
print_cls();
|
||||
print_str_ln("C64DTV Graphics Modes EMBLHCC@");
|
||||
print_str_ln(" CCMIIHO@");
|
||||
print_str_ln(" MMMNCUL@");
|
||||
print_str_ln("----------------------------------------@");
|
||||
print_str_ln("1. Standard Char (V) 0000000@");
|
||||
print_str_ln("2. Extended Color Char (V) 1000000@");
|
||||
print_str_ln("3. Multicolor Char (V) 0100000@");
|
||||
print_str_ln("4. Standard Bitmap (V) 0010000@");
|
||||
print_str_ln("5. Multicolor Bitmap (V) 0110000@");
|
||||
print_str_ln("6. High Color Standard Char (H) 0000100@");
|
||||
print_str_ln("7. High Extended Color Char (H) 1000100@");
|
||||
print_str_ln("8. High Multicolor Char (H) 0100100@");
|
||||
print_str_ln("9. High Multicolor Bitmap (H) 0110100@");
|
||||
print_str_ln("a. Sixs Fred (D) 1111100@");
|
||||
print_str_ln("b. Sixs Fred 2 (D) 1111000@");
|
||||
print_str_ln("c. Two Plane Bitmap (D) 1011100@");
|
||||
print_str_ln("d. Two Plane Multicol Bitmap (D) 1111100@");
|
||||
print_str_ln("e. 8bpp Pixel Cell (D) 1101110@");
|
||||
print_str_ln("f. Chunky 8bpp Bitmap (D) 1101111@");
|
||||
print_str_ln("----------------------------------------@");
|
||||
print_str_ln(" (V) vicII (H) vicII+hicol (D) c64dtv@");
|
||||
|
||||
print_str_lines(MENU_TEXT);
|
||||
// Wait for key press
|
||||
while(true) {
|
||||
if(keyboard_key_pressed(KEY_C)!=0) {
|
||||
mode_twoplanebitmap();
|
||||
@ -76,8 +79,8 @@ void mode_twoplanebitmap() {
|
||||
// DTV Graphics Mode
|
||||
*DTV_CONTROL = DTV_CONTROL_HIGHCOLOR_ON | DTV_CONTROL_LINEAR_ADDRESSING_ON;
|
||||
// VIC Graphics Mode
|
||||
*D011 = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3;
|
||||
*D016 = VIC_CSEL;
|
||||
*VIC_CONTROL = VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3;
|
||||
*VIC_CONTROL2 = VIC_CSEL;
|
||||
// Linear Graphics Plane A Counter
|
||||
*DTV_PLANEA_START_LO = <TWOPLANE_PLANEA;
|
||||
*DTV_PLANEA_START_MI = >TWOPLANE_PLANEA;
|
||||
|
@ -126,7 +126,9 @@ byte keyboard_matrix_read(byte rowid) {
|
||||
// All keys exist as as KEY_XXX constants.
|
||||
// Returns zero if the key is not pressed and a non-zero value if the key is currently pressed
|
||||
byte keyboard_key_pressed(byte key) {
|
||||
return keyboard_matrix_read(key>>3)&keyboard_matrix_col_bitmask[key&7];
|
||||
byte colidx = key&7;
|
||||
byte rowidx = key>>3;
|
||||
return keyboard_matrix_read(rowidx)&keyboard_matrix_col_bitmask[colidx];
|
||||
}
|
||||
|
||||
// Get the keycode corresponding to a specific screen code character
|
||||
|
@ -3,6 +3,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -17,13 +37,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
|
@ -5,14 +5,14 @@
|
||||
.label BGCOL = $d021
|
||||
.label BGCOL1 = $d021
|
||||
.label BGCOL2 = $d022
|
||||
.label D011 = $d011
|
||||
.label VIC_CONTROL = $d011
|
||||
.const VIC_ECM = $40
|
||||
.const VIC_BMM = $20
|
||||
.const VIC_DEN = $10
|
||||
.const VIC_RSEL = 8
|
||||
.label D016 = $d016
|
||||
.label VIC_CONTROL2 = $d016
|
||||
.const VIC_CSEL = 8
|
||||
.label D018 = $d018
|
||||
.label VIC_MEMORY = $d018
|
||||
.label COLS = $d800
|
||||
.label CIA1_PORT_A = $dc00
|
||||
.label CIA1_PORT_B = $dc01
|
||||
@ -45,34 +45,27 @@
|
||||
.label MENU_CHARSET = $9800
|
||||
.label TWOPLANE_PLANEA = $4000
|
||||
.label TWOPLANE_PLANEB = $6000
|
||||
.label print_char_cursor = 7
|
||||
.label print_line_cursor = 5
|
||||
.label print_line_cursor_10 = 2
|
||||
.label print_char_cursor_13 = 5
|
||||
.label print_char_cursor = 2
|
||||
.label print_line_cursor = 7
|
||||
.label print_screen = 2
|
||||
.label print_line_cursor_89 = 2
|
||||
jsr main
|
||||
main: {
|
||||
lda #DTV_FEATURE_ENABLE
|
||||
sta DTV_FEATURE
|
||||
lda #<$400
|
||||
sta print_char_cursor_13
|
||||
sta print_char_cursor
|
||||
lda #>$400
|
||||
sta print_char_cursor_13+1
|
||||
sta print_char_cursor+1
|
||||
lda #<$400
|
||||
sta print_line_cursor_10
|
||||
sta print_line_cursor
|
||||
lda #>$400
|
||||
sta print_line_cursor_10+1
|
||||
sta print_line_cursor+1
|
||||
lda #<$400
|
||||
sta print_screen
|
||||
lda #>$400
|
||||
sta print_screen+1
|
||||
b2:
|
||||
jsr menu
|
||||
lda print_line_cursor
|
||||
sta print_line_cursor_89
|
||||
lda print_line_cursor+1
|
||||
sta print_line_cursor_89+1
|
||||
lda #<MENU_SCREEN
|
||||
sta print_screen
|
||||
lda #>MENU_SCREEN
|
||||
@ -91,11 +84,11 @@ menu: {
|
||||
lda #3^MENU_CHARSET/$4000
|
||||
sta CIA2_PORT_A
|
||||
lda #VIC_DEN|VIC_RSEL|3
|
||||
sta D011
|
||||
sta VIC_CONTROL
|
||||
lda #VIC_CSEL
|
||||
sta D016
|
||||
sta VIC_CONTROL2
|
||||
lda #(MENU_SCREEN&$3fff)/$40|(MENU_CHARSET&$3fff)/$400
|
||||
sta D018
|
||||
sta VIC_MEMORY
|
||||
lda #<COLS
|
||||
sta c
|
||||
lda #>COLS
|
||||
@ -119,204 +112,12 @@ menu: {
|
||||
sta BORDERCOL
|
||||
jsr print_set_screen
|
||||
jsr print_cls
|
||||
lda #<MENU_SCREEN
|
||||
sta print_line_cursor
|
||||
lda #>MENU_SCREEN
|
||||
sta print_line_cursor+1
|
||||
lda #<MENU_SCREEN
|
||||
sta print_char_cursor
|
||||
lda #>MENU_SCREEN
|
||||
sta print_char_cursor+1
|
||||
lda #<str
|
||||
sta print_str_ln.str
|
||||
lda #>str
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str1
|
||||
sta print_str_ln.str
|
||||
lda #>str1
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str2
|
||||
sta print_str_ln.str
|
||||
lda #>str2
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str3
|
||||
sta print_str_ln.str
|
||||
lda #>str3
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str4
|
||||
sta print_str_ln.str
|
||||
lda #>str4
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str5
|
||||
sta print_str_ln.str
|
||||
lda #>str5
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str6
|
||||
sta print_str_ln.str
|
||||
lda #>str6
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str7
|
||||
sta print_str_ln.str
|
||||
lda #>str7
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str8
|
||||
sta print_str_ln.str
|
||||
lda #>str8
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str9
|
||||
sta print_str_ln.str
|
||||
lda #>str9
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str10
|
||||
sta print_str_ln.str
|
||||
lda #>str10
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str11
|
||||
sta print_str_ln.str
|
||||
lda #>str11
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str12
|
||||
sta print_str_ln.str
|
||||
lda #>str12
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str13
|
||||
sta print_str_ln.str
|
||||
lda #>str13
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str14
|
||||
sta print_str_ln.str
|
||||
lda #>str14
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str15
|
||||
sta print_str_ln.str
|
||||
lda #>str15
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str16
|
||||
sta print_str_ln.str
|
||||
lda #>str16
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str17
|
||||
sta print_str_ln.str
|
||||
lda #>str17
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str18
|
||||
sta print_str_ln.str
|
||||
lda #>str18
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str19
|
||||
sta print_str_ln.str
|
||||
lda #>str19
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str20
|
||||
sta print_str_ln.str
|
||||
lda #>str20
|
||||
sta print_str_ln.str+1
|
||||
jsr print_str_ln
|
||||
jsr print_str_lines
|
||||
jmp b3
|
||||
breturn:
|
||||
rts
|
||||
b3:
|
||||
ldx #KEY_C
|
||||
ldy #KEY_C
|
||||
jsr keyboard_key_pressed
|
||||
cmp #0
|
||||
beq b5
|
||||
@ -325,40 +126,19 @@ menu: {
|
||||
b5:
|
||||
inc last
|
||||
jmp b3
|
||||
str: .text "C64DTV Graphics Modes EMBLHCC@"
|
||||
str1: .text " CCMIIHO@"
|
||||
str2: .text " MMMNCUL@"
|
||||
str3: .text "----------------------------------------@"
|
||||
str4: .text "1. Standard Char (V) 0000000@"
|
||||
str5: .text "2. Extended Color Char (V) 1000000@"
|
||||
str6: .text "3. Multicolor Char (V) 0100000@"
|
||||
str7: .text "4. Standard Bitmap (V) 0010000@"
|
||||
str8: .text "5. Multicolor Bitmap (V) 0110000@"
|
||||
str9: .text "6. High Color Standard Char (H) 0000100@"
|
||||
str10: .text "7. High Extended Color Char (H) 1000100@"
|
||||
str11: .text "8. High Multicolor Char (H) 0100100@"
|
||||
str12: .text "9. High Multicolor Bitmap (H) 0110100@"
|
||||
str13: .text "a. Sixs Fred (D) 1111100@"
|
||||
str14: .text "b. Sixs Fred 2 (D) 1111000@"
|
||||
str15: .text "c. Two Plane Bitmap (D) 1011100@"
|
||||
str16: .text "d. Two Plane Multicol Bitmap (D) 1111100@"
|
||||
str17: .text "e. 8bpp Pixel Cell (D) 1101110@"
|
||||
str18: .text "f. Chunky 8bpp Bitmap (D) 1101111@"
|
||||
str19: .text "----------------------------------------@"
|
||||
str20: .text " (V) vicII (H) vicII+hicol (D) c64dtv@"
|
||||
}
|
||||
mode_twoplanebitmap: {
|
||||
.label c = 2
|
||||
.label gfxa = 2
|
||||
.label ay = 4
|
||||
.label gfxb = 2
|
||||
.label by = 4
|
||||
.label c = 4
|
||||
.label gfxa = 4
|
||||
.label ay = 6
|
||||
.label gfxb = 4
|
||||
.label by = 6
|
||||
lda #DTV_CONTROL_HIGHCOLOR_ON|DTV_CONTROL_LINEAR_ADDRESSING_ON
|
||||
sta DTV_CONTROL
|
||||
lda #VIC_ECM|VIC_BMM|VIC_DEN|VIC_RSEL|3
|
||||
sta D011
|
||||
sta VIC_CONTROL
|
||||
lda #VIC_CSEL
|
||||
sta D016
|
||||
sta VIC_CONTROL2
|
||||
lda #<TWOPLANE_PLANEA
|
||||
sta DTV_PLANEA_START_LO
|
||||
lda #>TWOPLANE_PLANEA
|
||||
@ -459,7 +239,7 @@ mode_twoplanebitmap: {
|
||||
breturn:
|
||||
rts
|
||||
b9:
|
||||
ldx #KEY_SPACE
|
||||
ldy #KEY_SPACE
|
||||
jsr keyboard_key_pressed
|
||||
cmp #0
|
||||
beq b9
|
||||
@ -475,16 +255,14 @@ mode_twoplanebitmap: {
|
||||
jmp b5
|
||||
}
|
||||
keyboard_key_pressed: {
|
||||
txa
|
||||
tya
|
||||
and #7
|
||||
tax
|
||||
tya
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr keyboard_matrix_read
|
||||
tay
|
||||
txa
|
||||
and #7
|
||||
tax
|
||||
tya
|
||||
and keyboard_matrix_col_bitmask,x
|
||||
rts
|
||||
}
|
||||
@ -496,11 +274,50 @@ keyboard_matrix_read: {
|
||||
eor #$ff
|
||||
rts
|
||||
}
|
||||
print_str_ln: {
|
||||
.label str = 2
|
||||
jsr print_str
|
||||
jsr print_ln
|
||||
print_str_lines: {
|
||||
.label str = 4
|
||||
lda #<MENU_SCREEN
|
||||
sta print_line_cursor
|
||||
lda #>MENU_SCREEN
|
||||
sta print_line_cursor+1
|
||||
lda #<MENU_SCREEN
|
||||
sta print_char_cursor
|
||||
lda #>MENU_SCREEN
|
||||
sta print_char_cursor+1
|
||||
lda #<MENU_TEXT
|
||||
sta str
|
||||
lda #>MENU_TEXT
|
||||
sta str+1
|
||||
b1:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
cmp #'@'
|
||||
bne b4
|
||||
rts
|
||||
b4:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
inc str
|
||||
bne !+
|
||||
inc str+1
|
||||
!:
|
||||
cmp #'@'
|
||||
beq b5
|
||||
ldy #0
|
||||
sta (print_char_cursor),y
|
||||
inc print_char_cursor
|
||||
bne !+
|
||||
inc print_char_cursor+1
|
||||
!:
|
||||
b5:
|
||||
cmp #'@'
|
||||
bne b4
|
||||
jsr print_ln
|
||||
lda print_line_cursor
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
jmp b1
|
||||
}
|
||||
print_ln: {
|
||||
b1:
|
||||
@ -521,28 +338,6 @@ print_ln: {
|
||||
!:
|
||||
rts
|
||||
}
|
||||
print_str: {
|
||||
.label str = 2
|
||||
b1:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
cmp #'@'
|
||||
bne b2
|
||||
rts
|
||||
b2:
|
||||
ldy #0
|
||||
lda (str),y
|
||||
sta (print_char_cursor),y
|
||||
inc print_char_cursor
|
||||
bne !+
|
||||
inc print_char_cursor+1
|
||||
!:
|
||||
inc str
|
||||
bne !+
|
||||
inc str+1
|
||||
!:
|
||||
jmp b1
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 2
|
||||
lda #<MENU_SCREEN
|
||||
@ -570,3 +365,4 @@ print_set_screen: {
|
||||
}
|
||||
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
|
||||
MENU_TEXT: .text "C64DTV Graphics Modes EMBLHCC@"+" CCMIIHO@"+" MMMNCUL@"+"----------------------------------------@"+"1. Standard Char (V) 0000000@"+"2. Extended Color Char (V) 1000000@"+"3. Multicolor Char (V) 0100000@"+"4. Standard Bitmap (V) 0010000@"+"5. Multicolor Bitmap (V) 0110000@"+"6. High Color Standard Char (H) 0000100@"+"7. High Extended Color Char (H) 1000100@"+"8. High Multicolor Char (H) 0100100@"+"9. High Multicolor Bitmap (H) 0110100@"+"a. Sixs Fred (D) 1111100@"+"b. Sixs Fred 2 (D) 1111000@"+"c. Two Plane Bitmap (D) 1011100@"+"d. Two Plane Multicol Bitmap (D) 1111100@"+"e. 8bpp Pixel Cell (D) 1101110@"+"f. Chunky 8bpp Bitmap (D) 1101111@"+"----------------------------------------@"+" (V) vicII (H) vicII+hicol (D) c64dtv@"+"@"
|
||||
|
@ -1,18 +1,18 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@20
|
||||
@20: scope:[] from @begin
|
||||
to:@21
|
||||
@21: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @20
|
||||
@end: scope:[] from @21
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @20
|
||||
main: scope:[main] from @21
|
||||
[4] *((const byte*) DTV_FEATURE#0) ← (const byte) DTV_FEATURE_ENABLE#0 [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
[5] (byte*) print_char_cursor#13 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@2/(byte*) print_line_cursor#3 ) [ ] ( main:2 [ ] )
|
||||
[5] (byte*) print_line_cursor#10 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@2/(byte*~) print_line_cursor#89 ) [ ] ( main:2 [ ] )
|
||||
[5] (byte*) print_char_cursor#11 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@2/(byte*) print_char_cursor#19 ) [ ] ( main:2 [ ] )
|
||||
[5] (byte*) print_line_cursor#10 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@2/(byte*) print_line_cursor#17 ) [ ] ( main:2 [ ] )
|
||||
[5] (byte*) print_screen#13 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@2/(const byte*) MENU_SCREEN#0 ) [ ] ( main:2 [ ] )
|
||||
[6] if(true) goto main::@2 [ ] ( main:2 [ ] )
|
||||
to:main::@return
|
||||
@ -21,301 +21,223 @@ main::@return: scope:[main] from main::@1
|
||||
to:@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
[8] phi() [ ] ( main:2 [ ] )
|
||||
[9] call menu param-assignment [ print_line_cursor#3 ] ( main:2 [ print_line_cursor#3 ] )
|
||||
[10] (byte*~) print_line_cursor#89 ← (byte*) print_line_cursor#3 [ print_line_cursor#89 print_line_cursor#3 ] ( main:2 [ print_line_cursor#89 print_line_cursor#3 ] )
|
||||
[9] call menu param-assignment [ print_line_cursor#17 print_char_cursor#19 ] ( main:2 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:main::@1
|
||||
menu: scope:[menu] from main::@2
|
||||
[11] *((const byte*) DTV_GRAPHICS_VIC_BANK#0) ← ((byte))((dword))(const byte*) MENU_CHARSET#0/(dword/signed dword) 65536 [ ] ( main:2::menu:9 [ ] )
|
||||
[12] *((const byte*) DTV_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] )
|
||||
[13] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] )
|
||||
[14] *((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 [ ] )
|
||||
[15] *((const byte*) D011#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 [ ] )
|
||||
[16] *((const byte*) D016#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] )
|
||||
[17] *((const byte*) D018#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 [ ] )
|
||||
[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_CONTROL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] )
|
||||
[12] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9 [ ] )
|
||||
[13] *((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 [ ] )
|
||||
[14] *((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 [ ] )
|
||||
[15] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9 [ ] )
|
||||
[16] *((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 [ ] )
|
||||
to:menu::@1
|
||||
menu::@1: scope:[menu] from menu menu::@1
|
||||
[18] (byte*) menu::c#2 ← phi( menu/(const byte*) COLS#0 menu::@1/(byte*) menu::c#1 ) [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] )
|
||||
[19] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] )
|
||||
[20] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] )
|
||||
[21] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@1 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] )
|
||||
[17] (byte*) menu::c#2 ← phi( menu/(const byte*) COLS#0 menu::@1/(byte*) menu::c#1 ) [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] )
|
||||
[18] *((byte*) menu::c#2) ← (const byte) LIGHT_GREEN#0 [ menu::c#2 ] ( main:2::menu:9 [ menu::c#2 ] )
|
||||
[19] (byte*) menu::c#1 ← ++ (byte*) menu::c#2 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] )
|
||||
[20] if((byte*) menu::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto menu::@1 [ menu::c#1 ] ( main:2::menu:9 [ menu::c#1 ] )
|
||||
to:menu::@6
|
||||
menu::@6: scope:[menu] from menu::@1
|
||||
[22] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] )
|
||||
[23] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] )
|
||||
[24] call print_set_screen param-assignment [ ] ( main:2::menu:9 [ ] )
|
||||
[21] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] )
|
||||
[22] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9 [ ] )
|
||||
[23] call print_set_screen param-assignment [ ] ( main:2::menu:9 [ ] )
|
||||
to:menu::@12
|
||||
menu::@12: scope:[menu] from menu::@6
|
||||
[25] phi() [ ] ( main:2::menu:9 [ ] )
|
||||
[26] call print_cls param-assignment [ ] ( main:2::menu:9 [ ] )
|
||||
[24] phi() [ ] ( main:2::menu:9 [ ] )
|
||||
[25] call print_cls param-assignment [ ] ( main:2::menu:9 [ ] )
|
||||
to:menu::@13
|
||||
menu::@13: scope:[menu] from menu::@12
|
||||
[27] phi() [ ] ( main:2::menu:9 [ ] )
|
||||
[28] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@14
|
||||
menu::@14: scope:[menu] from menu::@13
|
||||
[29] (byte*~) print_char_cursor#96 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#96 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#96 ] )
|
||||
[30] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@15
|
||||
menu::@15: scope:[menu] from menu::@14
|
||||
[31] (byte*~) print_char_cursor#97 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#97 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#97 ] )
|
||||
[32] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@16
|
||||
menu::@16: scope:[menu] from menu::@15
|
||||
[33] (byte*~) print_char_cursor#98 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#98 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#98 ] )
|
||||
[34] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@17
|
||||
menu::@17: scope:[menu] from menu::@16
|
||||
[35] (byte*~) print_char_cursor#99 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#99 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#99 ] )
|
||||
[36] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@18
|
||||
menu::@18: scope:[menu] from menu::@17
|
||||
[37] (byte*~) print_char_cursor#100 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#100 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#100 ] )
|
||||
[38] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@19
|
||||
menu::@19: scope:[menu] from menu::@18
|
||||
[39] (byte*~) print_char_cursor#101 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#101 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#101 ] )
|
||||
[40] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@20
|
||||
menu::@20: scope:[menu] from menu::@19
|
||||
[41] (byte*~) print_char_cursor#102 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#102 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#102 ] )
|
||||
[42] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@21
|
||||
menu::@21: scope:[menu] from menu::@20
|
||||
[43] (byte*~) print_char_cursor#103 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#103 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#103 ] )
|
||||
[44] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@22
|
||||
menu::@22: scope:[menu] from menu::@21
|
||||
[45] (byte*~) print_char_cursor#104 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#104 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#104 ] )
|
||||
[46] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@23
|
||||
menu::@23: scope:[menu] from menu::@22
|
||||
[47] (byte*~) print_char_cursor#105 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#105 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#105 ] )
|
||||
[48] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@24
|
||||
menu::@24: scope:[menu] from menu::@23
|
||||
[49] (byte*~) print_char_cursor#106 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#106 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#106 ] )
|
||||
[50] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@25
|
||||
menu::@25: scope:[menu] from menu::@24
|
||||
[51] (byte*~) print_char_cursor#107 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#107 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#107 ] )
|
||||
[52] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@26
|
||||
menu::@26: scope:[menu] from menu::@25
|
||||
[53] (byte*~) print_char_cursor#108 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#108 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#108 ] )
|
||||
[54] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@27
|
||||
menu::@27: scope:[menu] from menu::@26
|
||||
[55] (byte*~) print_char_cursor#109 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#109 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#109 ] )
|
||||
[56] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@28
|
||||
menu::@28: scope:[menu] from menu::@27
|
||||
[57] (byte*~) print_char_cursor#110 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#110 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#110 ] )
|
||||
[58] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@29
|
||||
menu::@29: scope:[menu] from menu::@28
|
||||
[59] (byte*~) print_char_cursor#111 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#111 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#111 ] )
|
||||
[60] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@30
|
||||
menu::@30: scope:[menu] from menu::@29
|
||||
[61] (byte*~) print_char_cursor#112 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#112 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#112 ] )
|
||||
[62] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@31
|
||||
menu::@31: scope:[menu] from menu::@30
|
||||
[63] (byte*~) print_char_cursor#113 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#113 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#113 ] )
|
||||
[64] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@32
|
||||
menu::@32: scope:[menu] from menu::@31
|
||||
[65] (byte*~) print_char_cursor#114 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#114 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#114 ] )
|
||||
[66] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
to:menu::@33
|
||||
menu::@33: scope:[menu] from menu::@32
|
||||
[67] (byte*~) print_char_cursor#115 ← (byte*) print_line_cursor#3 [ print_line_cursor#3 print_char_cursor#115 ] ( main:2::menu:9 [ print_line_cursor#3 print_char_cursor#115 ] )
|
||||
[68] call print_str_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
[26] phi() [ ] ( main:2::menu:9 [ ] )
|
||||
[27] call print_str_lines param-assignment [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:menu::@2
|
||||
menu::@2: scope:[menu] from menu::@33 menu::@5
|
||||
[69] if(true) goto menu::@3 [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
menu::@2: scope:[menu] from menu::@13 menu::@5
|
||||
[28] if(true) goto menu::@3 [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:menu::@return
|
||||
menu::@return: scope:[menu] from menu::@2 menu::@9
|
||||
[70] return [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
[29] return [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:@return
|
||||
menu::@3: scope:[menu] from menu::@2
|
||||
[71] phi() [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
[72] call keyboard_key_pressed param-assignment [ print_line_cursor#3 keyboard_key_pressed::return#0 ] ( main:2::menu:9 [ print_line_cursor#3 keyboard_key_pressed::return#0 ] )
|
||||
[73] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ print_line_cursor#3 keyboard_key_pressed::return#2 ] ( main:2::menu:9 [ print_line_cursor#3 keyboard_key_pressed::return#2 ] )
|
||||
to:menu::@35
|
||||
menu::@35: scope:[menu] from menu::@3
|
||||
[74] (byte~) menu::$42 ← (byte) keyboard_key_pressed::return#2 [ print_line_cursor#3 menu::$42 ] ( main:2::menu:9 [ print_line_cursor#3 menu::$42 ] )
|
||||
[75] if((byte~) menu::$42==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@5 [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
[30] phi() [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[31] call keyboard_key_pressed param-assignment [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#0 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#0 ] )
|
||||
[32] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#2 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#2 ] )
|
||||
to:menu::@15
|
||||
menu::@15: scope:[menu] from menu::@3
|
||||
[33] (byte~) menu::$22 ← (byte) keyboard_key_pressed::return#2 [ print_line_cursor#17 print_char_cursor#19 menu::$22 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 menu::$22 ] )
|
||||
[34] if((byte~) menu::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto menu::@5 [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:menu::@9
|
||||
menu::@9: scope:[menu] from menu::@35
|
||||
[76] phi() [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
[77] call mode_twoplanebitmap param-assignment [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
menu::@9: scope:[menu] from menu::@15
|
||||
[35] phi() [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[36] call mode_twoplanebitmap param-assignment [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:menu::@return
|
||||
menu::@5: scope:[menu] from menu::@35
|
||||
[78] *((const byte*) menu::last#0) ← ++ *((const byte*) menu::last#0) [ print_line_cursor#3 ] ( main:2::menu:9 [ print_line_cursor#3 ] )
|
||||
menu::@5: scope:[menu] from menu::@15
|
||||
[37] *((const byte*) menu::last#0) ← ++ *((const byte*) menu::last#0) [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:menu::@2
|
||||
mode_twoplanebitmap: scope:[mode_twoplanebitmap] from menu::@9
|
||||
[79] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_CONTROL_HIGHCOLOR_ON#0|(const byte) DTV_CONTROL_LINEAR_ADDRESSING_ON#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[80] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#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::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[81] *((const byte*) D016#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[82] *((const byte*) DTV_PLANEA_START_LO#0) ← <(const byte*) TWOPLANE_PLANEA#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[83] *((const byte*) DTV_PLANEA_START_MI#0) ← >(const byte*) TWOPLANE_PLANEA#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[84] *((const byte*) DTV_PLANEA_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[85] *((const byte*) DTV_PLANEA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[86] *((const byte*) DTV_PLANEA_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[87] *((const byte*) DTV_PLANEA_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[88] *((const byte*) DTV_PLANEB_START_LO#0) ← <(const byte*) TWOPLANE_PLANEB#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[89] *((const byte*) DTV_PLANEB_START_MI#0) ← >(const byte*) TWOPLANE_PLANEB#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[90] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[91] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[92] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[93] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[94] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[95] *((const byte*) BGCOL1#0) ← (const byte) GREEN#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[96] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[38] *((const byte*) DTV_CONTROL#0) ← (const byte) DTV_CONTROL_HIGHCOLOR_ON#0|(const byte) DTV_CONTROL_LINEAR_ADDRESSING_ON#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[39] *((const byte*) VIC_CONTROL#0) ← (const byte) VIC_ECM#0|(const byte) VIC_BMM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[40] *((const byte*) VIC_CONTROL2#0) ← (const byte) VIC_CSEL#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[41] *((const byte*) DTV_PLANEA_START_LO#0) ← <(const byte*) TWOPLANE_PLANEA#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[42] *((const byte*) DTV_PLANEA_START_MI#0) ← >(const byte*) TWOPLANE_PLANEA#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[43] *((const byte*) DTV_PLANEA_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[44] *((const byte*) DTV_PLANEA_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[45] *((const byte*) DTV_PLANEA_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[46] *((const byte*) DTV_PLANEA_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[47] *((const byte*) DTV_PLANEB_START_LO#0) ← <(const byte*) TWOPLANE_PLANEB#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[48] *((const byte*) DTV_PLANEB_START_MI#0) ← >(const byte*) TWOPLANE_PLANEB#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[49] *((const byte*) DTV_PLANEB_START_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[50] *((const byte*) DTV_PLANEB_STEP#0) ← (byte/signed byte/word/signed word/dword/signed dword) 1 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[51] *((const byte*) DTV_PLANEB_MODULO_LO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[52] *((const byte*) DTV_PLANEB_MODULO_HI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[53] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[54] *((const byte*) BGCOL1#0) ← (const byte) GREEN#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[55] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:mode_twoplanebitmap::@1
|
||||
mode_twoplanebitmap::@1: scope:[mode_twoplanebitmap] from mode_twoplanebitmap mode_twoplanebitmap::@1
|
||||
[97] (byte*) mode_twoplanebitmap::c#2 ← phi( mode_twoplanebitmap/(const byte*) COLS#0 mode_twoplanebitmap::@1/(byte*) mode_twoplanebitmap::c#1 ) [ mode_twoplanebitmap::c#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::c#2 ] )
|
||||
[98] (byte~) mode_twoplanebitmap::$9 ← < (byte*) mode_twoplanebitmap::c#2 [ mode_twoplanebitmap::c#2 mode_twoplanebitmap::$9 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::c#2 mode_twoplanebitmap::$9 ] )
|
||||
[99] *((byte*) mode_twoplanebitmap::c#2) ← (byte~) mode_twoplanebitmap::$9 [ mode_twoplanebitmap::c#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::c#2 ] )
|
||||
[100] (byte*) mode_twoplanebitmap::c#1 ← ++ (byte*) mode_twoplanebitmap::c#2 [ mode_twoplanebitmap::c#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::c#1 ] )
|
||||
[101] if((byte*) mode_twoplanebitmap::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto mode_twoplanebitmap::@1 [ mode_twoplanebitmap::c#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::c#1 ] )
|
||||
[56] (byte*) mode_twoplanebitmap::c#2 ← phi( mode_twoplanebitmap/(const byte*) COLS#0 mode_twoplanebitmap::@1/(byte*) mode_twoplanebitmap::c#1 ) [ mode_twoplanebitmap::c#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::c#2 ] )
|
||||
[57] (byte~) mode_twoplanebitmap::$9 ← < (byte*) mode_twoplanebitmap::c#2 [ mode_twoplanebitmap::c#2 mode_twoplanebitmap::$9 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::c#2 mode_twoplanebitmap::$9 ] )
|
||||
[58] *((byte*) mode_twoplanebitmap::c#2) ← (byte~) mode_twoplanebitmap::$9 [ mode_twoplanebitmap::c#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::c#2 ] )
|
||||
[59] (byte*) mode_twoplanebitmap::c#1 ← ++ (byte*) mode_twoplanebitmap::c#2 [ mode_twoplanebitmap::c#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::c#1 ] )
|
||||
[60] if((byte*) mode_twoplanebitmap::c#1!=(const byte*) COLS#0+(word/signed word/dword/signed dword) 1000) goto mode_twoplanebitmap::@1 [ mode_twoplanebitmap::c#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::c#1 ] )
|
||||
to:mode_twoplanebitmap::@2
|
||||
mode_twoplanebitmap::@2: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@1 mode_twoplanebitmap::@15
|
||||
[102] (byte*) mode_twoplanebitmap::gfxa#6 ← phi( mode_twoplanebitmap::@1/(const byte*) TWOPLANE_PLANEA#0 mode_twoplanebitmap::@15/(byte*) mode_twoplanebitmap::gfxa#7 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#6 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#6 ] )
|
||||
[102] (byte) mode_twoplanebitmap::ay#4 ← phi( mode_twoplanebitmap::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@15/(byte) mode_twoplanebitmap::ay#1 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#6 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#6 ] )
|
||||
[61] (byte*) mode_twoplanebitmap::gfxa#6 ← phi( mode_twoplanebitmap::@1/(const byte*) TWOPLANE_PLANEA#0 mode_twoplanebitmap::@15/(byte*) mode_twoplanebitmap::gfxa#7 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#6 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#6 ] )
|
||||
[61] (byte) mode_twoplanebitmap::ay#4 ← phi( mode_twoplanebitmap::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@15/(byte) mode_twoplanebitmap::ay#1 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#6 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#6 ] )
|
||||
to:mode_twoplanebitmap::@3
|
||||
mode_twoplanebitmap::@3: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@2 mode_twoplanebitmap::@5
|
||||
[103] (byte) mode_twoplanebitmap::ax#2 ← phi( mode_twoplanebitmap::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@5/(byte) mode_twoplanebitmap::ax#1 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[103] (byte*) mode_twoplanebitmap::gfxa#3 ← phi( mode_twoplanebitmap::@2/(byte*) mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::@5/(byte*) mode_twoplanebitmap::gfxa#7 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[104] (byte~) mode_twoplanebitmap::$12 ← (byte) mode_twoplanebitmap::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$12 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$12 ] )
|
||||
[105] if((byte~) mode_twoplanebitmap::$12!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@4 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[62] (byte) mode_twoplanebitmap::ax#2 ← phi( mode_twoplanebitmap::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@5/(byte) mode_twoplanebitmap::ax#1 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[62] (byte*) mode_twoplanebitmap::gfxa#3 ← phi( mode_twoplanebitmap::@2/(byte*) mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::@5/(byte*) mode_twoplanebitmap::gfxa#7 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[63] (byte~) mode_twoplanebitmap::$12 ← (byte) mode_twoplanebitmap::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$12 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$12 ] )
|
||||
[64] if((byte~) mode_twoplanebitmap::$12!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@4 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
to:mode_twoplanebitmap::@13
|
||||
mode_twoplanebitmap::@13: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@3
|
||||
[106] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[107] (byte*) mode_twoplanebitmap::gfxa#2 ← ++ (byte*) mode_twoplanebitmap::gfxa#3 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#2 ] )
|
||||
[65] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[66] (byte*) mode_twoplanebitmap::gfxa#2 ← ++ (byte*) mode_twoplanebitmap::gfxa#3 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#2 ] )
|
||||
to:mode_twoplanebitmap::@5
|
||||
mode_twoplanebitmap::@5: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@13 mode_twoplanebitmap::@4
|
||||
[108] (byte*) mode_twoplanebitmap::gfxa#7 ← phi( mode_twoplanebitmap::@13/(byte*) mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::@4/(byte*) mode_twoplanebitmap::gfxa#1 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#2 ] )
|
||||
[109] (byte) mode_twoplanebitmap::ax#1 ← ++ (byte) mode_twoplanebitmap::ax#2 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#1 ] )
|
||||
[110] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@3 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#1 ] )
|
||||
[67] (byte*) mode_twoplanebitmap::gfxa#7 ← phi( mode_twoplanebitmap::@13/(byte*) mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::@4/(byte*) mode_twoplanebitmap::gfxa#1 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#2 ] )
|
||||
[68] (byte) mode_twoplanebitmap::ax#1 ← ++ (byte) mode_twoplanebitmap::ax#2 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#1 ] )
|
||||
[69] if((byte) mode_twoplanebitmap::ax#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@3 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::ax#1 ] )
|
||||
to:mode_twoplanebitmap::@15
|
||||
mode_twoplanebitmap::@15: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@5
|
||||
[111] (byte) mode_twoplanebitmap::ay#1 ← ++ (byte) mode_twoplanebitmap::ay#4 [ mode_twoplanebitmap::ay#1 mode_twoplanebitmap::gfxa#7 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#1 mode_twoplanebitmap::gfxa#7 ] )
|
||||
[112] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@2 [ mode_twoplanebitmap::ay#1 mode_twoplanebitmap::gfxa#7 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#1 mode_twoplanebitmap::gfxa#7 ] )
|
||||
[70] (byte) mode_twoplanebitmap::ay#1 ← ++ (byte) mode_twoplanebitmap::ay#4 [ mode_twoplanebitmap::ay#1 mode_twoplanebitmap::gfxa#7 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#1 mode_twoplanebitmap::gfxa#7 ] )
|
||||
[71] if((byte) mode_twoplanebitmap::ay#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@2 [ mode_twoplanebitmap::ay#1 mode_twoplanebitmap::gfxa#7 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#1 mode_twoplanebitmap::gfxa#7 ] )
|
||||
to:mode_twoplanebitmap::@6
|
||||
mode_twoplanebitmap::@6: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@15 mode_twoplanebitmap::@17
|
||||
[113] (byte) mode_twoplanebitmap::by#4 ← phi( mode_twoplanebitmap::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@17/(byte) mode_twoplanebitmap::by#1 ) [ mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::by#4 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::by#4 ] )
|
||||
[113] (byte*) mode_twoplanebitmap::gfxb#3 ← phi( mode_twoplanebitmap::@15/(const byte*) TWOPLANE_PLANEB#0 mode_twoplanebitmap::@17/(byte*) mode_twoplanebitmap::gfxb#1 ) [ mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::by#4 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::by#4 ] )
|
||||
[72] (byte) mode_twoplanebitmap::by#4 ← phi( mode_twoplanebitmap::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@17/(byte) mode_twoplanebitmap::by#1 ) [ mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::by#4 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::by#4 ] )
|
||||
[72] (byte*) mode_twoplanebitmap::gfxb#3 ← phi( mode_twoplanebitmap::@15/(const byte*) TWOPLANE_PLANEB#0 mode_twoplanebitmap::@17/(byte*) mode_twoplanebitmap::gfxb#1 ) [ mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::by#4 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::by#4 ] )
|
||||
to:mode_twoplanebitmap::@7
|
||||
mode_twoplanebitmap::@7: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@6 mode_twoplanebitmap::@7
|
||||
[114] (byte) mode_twoplanebitmap::bx#2 ← phi( mode_twoplanebitmap::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@7/(byte) mode_twoplanebitmap::bx#1 ) [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] )
|
||||
[114] (byte*) mode_twoplanebitmap::gfxb#2 ← phi( mode_twoplanebitmap::@6/(byte*) mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::@7/(byte*) mode_twoplanebitmap::gfxb#1 ) [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] )
|
||||
[115] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] )
|
||||
[116] (byte*) mode_twoplanebitmap::gfxb#1 ← ++ (byte*) mode_twoplanebitmap::gfxb#2 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#2 ] )
|
||||
[117] (byte) mode_twoplanebitmap::bx#1 ← ++ (byte) mode_twoplanebitmap::bx#2 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#1 ] )
|
||||
[118] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@7 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#1 ] )
|
||||
[73] (byte) mode_twoplanebitmap::bx#2 ← phi( mode_twoplanebitmap::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@7/(byte) mode_twoplanebitmap::bx#1 ) [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] )
|
||||
[73] (byte*) mode_twoplanebitmap::gfxb#2 ← phi( mode_twoplanebitmap::@6/(byte*) mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::@7/(byte*) mode_twoplanebitmap::gfxb#1 ) [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] )
|
||||
[74] *((byte*) mode_twoplanebitmap::gfxb#2) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::bx#2 ] )
|
||||
[75] (byte*) mode_twoplanebitmap::gfxb#1 ← ++ (byte*) mode_twoplanebitmap::gfxb#2 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#2 ] )
|
||||
[76] (byte) mode_twoplanebitmap::bx#1 ← ++ (byte) mode_twoplanebitmap::bx#2 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#1 ] )
|
||||
[77] if((byte) mode_twoplanebitmap::bx#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto mode_twoplanebitmap::@7 [ mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::by#4 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::bx#1 ] )
|
||||
to:mode_twoplanebitmap::@17
|
||||
mode_twoplanebitmap::@17: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@7
|
||||
[119] (byte) mode_twoplanebitmap::by#1 ← ++ (byte) mode_twoplanebitmap::by#4 [ mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::by#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::by#1 ] )
|
||||
[120] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@6 [ mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::by#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::by#1 ] )
|
||||
[78] (byte) mode_twoplanebitmap::by#1 ← ++ (byte) mode_twoplanebitmap::by#4 [ mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::by#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::by#1 ] )
|
||||
[79] if((byte) mode_twoplanebitmap::by#1!=(byte/word/signed word/dword/signed dword) 200) goto mode_twoplanebitmap::@6 [ mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::by#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::gfxb#1 mode_twoplanebitmap::by#1 ] )
|
||||
to:mode_twoplanebitmap::@8
|
||||
mode_twoplanebitmap::@8: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@17 mode_twoplanebitmap::@24
|
||||
[121] if(true) goto mode_twoplanebitmap::@9 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[80] if(true) goto mode_twoplanebitmap::@9 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:mode_twoplanebitmap::@return
|
||||
mode_twoplanebitmap::@return: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@24 mode_twoplanebitmap::@8
|
||||
[122] return [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[81] return [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:@return
|
||||
mode_twoplanebitmap::@9: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@8
|
||||
[123] phi() [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[124] call keyboard_key_pressed param-assignment [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 keyboard_key_pressed::return#0 ] )
|
||||
[125] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ keyboard_key_pressed::return#3 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 keyboard_key_pressed::return#3 ] )
|
||||
[82] phi() [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
[83] call keyboard_key_pressed param-assignment [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#0 ] )
|
||||
[84] (byte) keyboard_key_pressed::return#3 ← (byte) keyboard_key_pressed::return#0 [ keyboard_key_pressed::return#3 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#3 ] )
|
||||
to:mode_twoplanebitmap::@24
|
||||
mode_twoplanebitmap::@24: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@9
|
||||
[126] (byte~) mode_twoplanebitmap::$19 ← (byte) keyboard_key_pressed::return#3 [ mode_twoplanebitmap::$19 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::$19 ] )
|
||||
[127] if((byte~) mode_twoplanebitmap::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@8 [ ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 ] )
|
||||
[85] (byte~) mode_twoplanebitmap::$19 ← (byte) keyboard_key_pressed::return#3 [ mode_twoplanebitmap::$19 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::$19 ] )
|
||||
[86] if((byte~) mode_twoplanebitmap::$19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@8 [ ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:mode_twoplanebitmap::@return
|
||||
mode_twoplanebitmap::@4: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@3
|
||||
[128] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[129] (byte*) mode_twoplanebitmap::gfxa#1 ← ++ (byte*) mode_twoplanebitmap::gfxa#3 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#1 ] ( main:2::menu:9::mode_twoplanebitmap:77 [ print_line_cursor#3 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#1 ] )
|
||||
[87] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
|
||||
[88] (byte*) mode_twoplanebitmap::gfxa#1 ← ++ (byte*) mode_twoplanebitmap::gfxa#3 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#1 ] ( main:2::menu:9::mode_twoplanebitmap:36 [ print_line_cursor#17 print_char_cursor#19 mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#1 ] )
|
||||
to:mode_twoplanebitmap::@5
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from menu::@3 mode_twoplanebitmap::@9
|
||||
[130] (byte) keyboard_key_pressed::key#2 ← phi( menu::@3/(const byte) KEY_C#0 mode_twoplanebitmap::@9/(const byte) KEY_SPACE#0 ) [ keyboard_key_pressed::key#2 ] ( main:2::menu:9::keyboard_key_pressed:72 [ print_line_cursor#3 keyboard_key_pressed::key#2 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124 [ print_line_cursor#3 keyboard_key_pressed::key#2 ] )
|
||||
[131] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::key#2 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::key#2 keyboard_matrix_read::rowid#0 ] ( main:2::menu:9::keyboard_key_pressed:72 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::rowid#0 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::rowid#0 ] )
|
||||
[132] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::key#2 keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:72 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::return#0 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::return#0 ] )
|
||||
[133] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::key#2 keyboard_matrix_read::return#2 ] ( main:2::menu:9::keyboard_key_pressed:72 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::return#2 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::return#2 ] )
|
||||
[89] (byte) keyboard_key_pressed::key#2 ← phi( menu::@3/(const byte) KEY_C#0 mode_twoplanebitmap::@9/(const byte) KEY_SPACE#0 ) [ keyboard_key_pressed::key#2 ] ( main:2::menu:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::key#2 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::key#2 ] )
|
||||
[90] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#2 keyboard_key_pressed::colidx#0 ] ( main:2::menu:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::key#2 keyboard_key_pressed::colidx#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::key#2 keyboard_key_pressed::colidx#0 ] )
|
||||
[91] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#2 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::menu:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] )
|
||||
[92] (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:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] )
|
||||
[93] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
[94] (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:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 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
|
||||
[134] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::key#2 keyboard_key_pressed::$1 ] ( main:2::menu:9::keyboard_key_pressed:72 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_key_pressed::$1 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_key_pressed::$1 ] )
|
||||
[135] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#2 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::menu:9::keyboard_key_pressed:72 [ print_line_cursor#3 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124 [ print_line_cursor#3 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] )
|
||||
[136] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:72 [ print_line_cursor#3 keyboard_key_pressed::return#0 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124 [ print_line_cursor#3 keyboard_key_pressed::return#0 ] )
|
||||
[95] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::menu:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] )
|
||||
[96] (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:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#0 ] )
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2
|
||||
[137] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:72 [ print_line_cursor#3 keyboard_key_pressed::return#0 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124 [ print_line_cursor#3 keyboard_key_pressed::return#0 ] )
|
||||
[97] return [ keyboard_key_pressed::return#0 ] ( main:2::menu:9::keyboard_key_pressed:31 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::return#0 ] )
|
||||
to:@return
|
||||
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
|
||||
[138] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:9::keyboard_key_pressed:72::keyboard_matrix_read:132 [ print_line_cursor#3 keyboard_key_pressed::key#2 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124::keyboard_matrix_read:132 [ print_line_cursor#3 keyboard_key_pressed::key#2 ] )
|
||||
[139] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:72::keyboard_matrix_read:132 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::return#0 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124::keyboard_matrix_read:132 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::return#0 ] )
|
||||
[98] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::menu:9::keyboard_key_pressed:31::keyboard_matrix_read:93 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83::keyboard_matrix_read:93 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 ] )
|
||||
[99] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:31::keyboard_matrix_read:93 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83::keyboard_matrix_read:93 [ print_line_cursor#17 print_char_cursor#19 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
|
||||
[140] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:72::keyboard_matrix_read:132 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::return#0 ] main:2::menu:9::mode_twoplanebitmap:77::keyboard_key_pressed:124::keyboard_matrix_read:132 [ print_line_cursor#3 keyboard_key_pressed::key#2 keyboard_matrix_read::return#0 ] )
|
||||
[100] return [ keyboard_matrix_read::return#0 ] ( main:2::menu:9::keyboard_key_pressed:31::keyboard_matrix_read:93 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::menu:9::mode_twoplanebitmap:36::keyboard_key_pressed:83::keyboard_matrix_read:93 [ print_line_cursor#17 print_char_cursor#19 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
to:@return
|
||||
print_str_ln: scope:[print_str_ln] from menu::@13 menu::@14 menu::@15 menu::@16 menu::@17 menu::@18 menu::@19 menu::@20 menu::@21 menu::@22 menu::@23 menu::@24 menu::@25 menu::@26 menu::@27 menu::@28 menu::@29 menu::@30 menu::@31 menu::@32 menu::@33
|
||||
[141] (byte*) print_line_cursor#70 ← phi( menu::@13/(const byte*) MENU_SCREEN#0 menu::@14/(byte*) print_line_cursor#3 menu::@15/(byte*) print_line_cursor#3 menu::@16/(byte*) print_line_cursor#3 menu::@17/(byte*) print_line_cursor#3 menu::@18/(byte*) print_line_cursor#3 menu::@19/(byte*) print_line_cursor#3 menu::@20/(byte*) print_line_cursor#3 menu::@21/(byte*) print_line_cursor#3 menu::@22/(byte*) print_line_cursor#3 menu::@23/(byte*) print_line_cursor#3 menu::@24/(byte*) print_line_cursor#3 menu::@25/(byte*) print_line_cursor#3 menu::@26/(byte*) print_line_cursor#3 menu::@27/(byte*) print_line_cursor#3 menu::@28/(byte*) print_line_cursor#3 menu::@29/(byte*) print_line_cursor#3 menu::@30/(byte*) print_line_cursor#3 menu::@31/(byte*) print_line_cursor#3 menu::@32/(byte*) print_line_cursor#3 menu::@33/(byte*) print_line_cursor#3 ) [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] ( main:2::menu:9::print_str_ln:28 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:30 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:32 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:34 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:36 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:38 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:40 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:42 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:44 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:46 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:48 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:50 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:52 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:54 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:56 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:58 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:60 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:62 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:64 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:66 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:68 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] )
|
||||
[141] (byte*) print_char_cursor#76 ← phi( menu::@13/(const byte*) MENU_SCREEN#0 menu::@14/(byte*~) print_char_cursor#96 menu::@15/(byte*~) print_char_cursor#97 menu::@16/(byte*~) print_char_cursor#98 menu::@17/(byte*~) print_char_cursor#99 menu::@18/(byte*~) print_char_cursor#100 menu::@19/(byte*~) print_char_cursor#101 menu::@20/(byte*~) print_char_cursor#102 menu::@21/(byte*~) print_char_cursor#103 menu::@22/(byte*~) print_char_cursor#104 menu::@23/(byte*~) print_char_cursor#105 menu::@24/(byte*~) print_char_cursor#106 menu::@25/(byte*~) print_char_cursor#107 menu::@26/(byte*~) print_char_cursor#108 menu::@27/(byte*~) print_char_cursor#109 menu::@28/(byte*~) print_char_cursor#110 menu::@29/(byte*~) print_char_cursor#111 menu::@30/(byte*~) print_char_cursor#112 menu::@31/(byte*~) print_char_cursor#113 menu::@32/(byte*~) print_char_cursor#114 menu::@33/(byte*~) print_char_cursor#115 ) [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] ( main:2::menu:9::print_str_ln:28 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:30 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:32 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:34 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:36 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:38 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:40 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:42 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:44 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:46 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:48 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:50 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:52 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:54 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:56 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:58 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:60 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:62 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:64 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:66 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:68 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] )
|
||||
[141] (byte*) print_str_ln::str#21 ← phi( menu::@13/(const string) menu::str menu::@14/(const string) menu::str1 menu::@15/(const string) menu::str2 menu::@16/(const string) menu::str3 menu::@17/(const string) menu::str4 menu::@18/(const string) menu::str5 menu::@19/(const string) menu::str6 menu::@20/(const string) menu::str7 menu::@21/(const string) menu::str8 menu::@22/(const string) menu::str9 menu::@23/(const string) menu::str10 menu::@24/(const string) menu::str11 menu::@25/(const string) menu::str12 menu::@26/(const string) menu::str13 menu::@27/(const string) menu::str14 menu::@28/(const string) menu::str15 menu::@29/(const string) menu::str16 menu::@30/(const string) menu::str17 menu::@31/(const string) menu::str18 menu::@32/(const string) menu::str19 menu::@33/(const string) menu::str20 ) [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] ( main:2::menu:9::print_str_ln:28 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:30 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:32 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:34 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:36 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:38 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:40 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:42 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:44 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:46 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:48 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:50 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:52 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:54 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:56 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:58 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:60 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:62 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:64 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:66 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] main:2::menu:9::print_str_ln:68 [ print_str_ln::str#21 print_char_cursor#76 print_line_cursor#70 ] )
|
||||
[142] (byte*) print_str::str#1 ← (byte*) print_str_ln::str#21 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] ( main:2::menu:9::print_str_ln:28 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:30 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:32 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:34 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:36 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:38 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:40 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:42 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:44 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:46 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:48 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:50 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:52 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:54 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:56 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:58 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:60 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:62 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:64 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:66 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] main:2::menu:9::print_str_ln:68 [ print_char_cursor#76 print_line_cursor#70 print_str::str#1 ] )
|
||||
[143] call print_str param-assignment [ print_line_cursor#70 print_char_cursor#2 ] ( main:2::menu:9::print_str_ln:28 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:30 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:32 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:34 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:36 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:38 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:40 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:42 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:44 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:46 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:48 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:50 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:52 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:54 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:56 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:58 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:60 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:62 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:64 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:66 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:68 [ print_line_cursor#70 print_char_cursor#2 ] )
|
||||
to:print_str_ln::@1
|
||||
print_str_ln::@1: scope:[print_str_ln] from print_str_ln
|
||||
[144] phi() [ print_line_cursor#70 print_char_cursor#2 ] ( main:2::menu:9::print_str_ln:28 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:30 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:32 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:34 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:36 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:38 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:40 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:42 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:44 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:46 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:48 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:50 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:52 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:54 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:56 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:58 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:60 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:62 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:64 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:66 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:68 [ print_line_cursor#70 print_char_cursor#2 ] )
|
||||
[145] call print_ln param-assignment [ print_line_cursor#3 ] ( main:2::menu:9::print_str_ln:28 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:30 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:32 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:34 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:36 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:38 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:40 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:42 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:44 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:46 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:48 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:50 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:52 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:54 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:56 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:58 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:60 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:62 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:64 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:66 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:68 [ print_line_cursor#3 ] )
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln::@1
|
||||
[146] return [ print_line_cursor#3 ] ( main:2::menu:9::print_str_ln:28 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:30 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:32 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:34 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:36 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:38 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:40 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:42 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:44 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:46 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:48 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:50 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:52 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:54 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:56 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:58 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:60 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:62 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:64 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:66 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:68 [ print_line_cursor#3 ] )
|
||||
print_str_lines: scope:[print_str_lines] from menu::@13
|
||||
[101] phi() [ ] ( main:2::menu:9::print_str_lines:27 [ ] )
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
[102] (byte*) print_line_cursor#17 ← phi( print_str_lines/(const byte*) MENU_SCREEN#0 print_str_lines::@9/(byte*) print_line_cursor#19 ) [ print_line_cursor#17 print_char_cursor#19 print_str_lines::str#2 ] ( main:2::menu:9::print_str_lines:27 [ print_line_cursor#17 print_char_cursor#19 print_str_lines::str#2 ] )
|
||||
[102] (byte*) print_char_cursor#19 ← phi( print_str_lines/(const byte*) MENU_SCREEN#0 print_str_lines::@9/(byte*~) print_char_cursor#55 ) [ print_line_cursor#17 print_char_cursor#19 print_str_lines::str#2 ] ( main:2::menu:9::print_str_lines:27 [ print_line_cursor#17 print_char_cursor#19 print_str_lines::str#2 ] )
|
||||
[102] (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_line_cursor#17 print_char_cursor#19 print_str_lines::str#2 ] ( main:2::menu:9::print_str_lines:27 [ print_line_cursor#17 print_char_cursor#19 print_str_lines::str#2 ] )
|
||||
[103] if(*((byte*) print_str_lines::str#2)!=(byte) '@') goto print_str_lines::@4 [ print_line_cursor#17 print_char_cursor#19 print_str_lines::str#2 ] ( main:2::menu:9::print_str_lines:27 [ print_line_cursor#17 print_char_cursor#19 print_str_lines::str#2 ] )
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@1
|
||||
[104] return [ print_line_cursor#17 print_char_cursor#19 ] ( main:2::menu:9::print_str_lines:27 [ print_line_cursor#17 print_char_cursor#19 ] )
|
||||
to:@return
|
||||
print_ln: scope:[print_ln] from print_str_ln::@1
|
||||
[147] phi() [ print_line_cursor#70 print_char_cursor#2 ] ( main:2::menu:9::print_str_ln:28::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:30::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:32::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:34::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:36::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:38::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:40::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:42::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:44::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:46::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:48::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:50::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:52::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:54::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:56::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:58::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:60::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:62::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:64::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:66::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:68::print_ln:145 [ print_line_cursor#70 print_char_cursor#2 ] )
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@5
|
||||
[105] (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:27 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] )
|
||||
[105] (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:27 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 ] )
|
||||
[106] (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:27 [ print_line_cursor#17 print_str_lines::str#3 print_char_cursor#17 print_str_lines::ch#0 ] )
|
||||
[107] (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:27 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] )
|
||||
[108] 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:27 [ 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
|
||||
[109] *((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:27 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#17 print_str_lines::ch#0 ] )
|
||||
[110] (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:27 [ 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
|
||||
[111] (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:27 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 print_str_lines::ch#0 ] )
|
||||
[112] 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:27 [ 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
|
||||
[113] phi() [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:27 [ print_line_cursor#17 print_str_lines::str#0 print_char_cursor#32 ] )
|
||||
[114] call print_ln param-assignment [ print_str_lines::str#0 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:27 [ print_str_lines::str#0 print_line_cursor#19 ] )
|
||||
[115] (byte*~) print_char_cursor#55 ← (byte*) print_line_cursor#19 [ print_str_lines::str#0 print_char_cursor#55 print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:27 [ print_str_lines::str#0 print_char_cursor#55 print_line_cursor#19 ] )
|
||||
to:print_str_lines::@1
|
||||
print_ln: scope:[print_ln] from print_str_lines::@9
|
||||
[116] phi() [ print_line_cursor#17 print_char_cursor#32 ] ( main:2::menu:9::print_str_lines:27::print_ln:114 [ 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
|
||||
[148] (byte*) print_line_cursor#38 ← phi( print_ln/(byte*) print_line_cursor#70 print_ln::@1/(byte*) print_line_cursor#3 ) [ print_line_cursor#38 print_char_cursor#2 ] ( main:2::menu:9::print_str_ln:28::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:30::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:32::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:34::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:36::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:38::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:40::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:42::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:44::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:46::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:48::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:50::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:52::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:54::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:56::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:58::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:60::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:62::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:64::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:66::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] main:2::menu:9::print_str_ln:68::print_ln:145 [ print_line_cursor#38 print_char_cursor#2 ] )
|
||||
[149] (byte*) print_line_cursor#3 ← (byte*) print_line_cursor#38 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#3 print_char_cursor#2 ] ( main:2::menu:9::print_str_ln:28::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:30::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:32::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:34::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:36::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:38::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:40::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:42::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:44::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:46::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:48::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:50::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:52::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:54::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:56::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:58::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:60::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:62::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:64::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:66::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:68::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] )
|
||||
[150] if((byte*) print_line_cursor#3<(byte*) print_char_cursor#2) goto print_ln::@1 [ print_line_cursor#3 print_char_cursor#2 ] ( main:2::menu:9::print_str_ln:28::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:30::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:32::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:34::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:36::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:38::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:40::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:42::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:44::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:46::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:48::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:50::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:52::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:54::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:56::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:58::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:60::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:62::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:64::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:66::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] main:2::menu:9::print_str_ln:68::print_ln:145 [ print_line_cursor#3 print_char_cursor#2 ] )
|
||||
[117] (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:27::print_ln:114 [ print_str_lines::str#0 print_char_cursor#32 print_line_cursor#18 ] )
|
||||
[118] (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:27::print_ln:114 [ print_str_lines::str#0 print_line_cursor#19 print_char_cursor#32 ] )
|
||||
[119] 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:27::print_ln:114 [ 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
|
||||
[151] return [ print_line_cursor#3 ] ( main:2::menu:9::print_str_ln:28::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:30::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:32::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:34::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:36::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:38::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:40::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:42::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:44::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:46::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:48::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:50::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:52::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:54::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:56::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:58::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:60::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:62::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:64::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:66::print_ln:145 [ print_line_cursor#3 ] main:2::menu:9::print_str_ln:68::print_ln:145 [ print_line_cursor#3 ] )
|
||||
[120] return [ print_line_cursor#19 ] ( main:2::menu:9::print_str_lines:27::print_ln:114 [ print_str_lines::str#0 print_line_cursor#19 ] )
|
||||
to:@return
|
||||
print_str: scope:[print_str] from print_str_ln
|
||||
[152] phi() [ print_char_cursor#76 print_str::str#1 ] ( main:2::menu:9::print_str_ln:28::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:30::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:32::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:34::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:36::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:38::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:40::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:42::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:44::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:46::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:48::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:50::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:52::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:54::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:56::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:58::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:60::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:62::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:64::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:66::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] main:2::menu:9::print_str_ln:68::print_str:143 [ print_line_cursor#70 print_char_cursor#76 print_str::str#1 ] )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[153] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#76 print_str::@2/(byte*) print_char_cursor#1 ) [ print_char_cursor#2 print_str::str#2 ] ( main:2::menu:9::print_str_ln:28::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:30::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:32::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:34::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:36::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:38::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:40::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:42::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:44::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:46::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:48::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:50::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:52::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:54::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:56::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:58::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:60::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:62::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:64::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:66::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:68::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] )
|
||||
[153] (byte*) print_str::str#2 ← phi( print_str/(byte*) print_str::str#1 print_str::@2/(byte*) print_str::str#0 ) [ print_char_cursor#2 print_str::str#2 ] ( main:2::menu:9::print_str_ln:28::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:30::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:32::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:34::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:36::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:38::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:40::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:42::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:44::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:46::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:48::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:50::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:52::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:54::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:56::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:58::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:60::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:62::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:64::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:66::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:68::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] )
|
||||
[154] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#2 ] ( main:2::menu:9::print_str_ln:28::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:30::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:32::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:34::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:36::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:38::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:40::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:42::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:44::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:46::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:48::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:50::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:52::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:54::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:56::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:58::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:60::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:62::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:64::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:66::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:68::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] )
|
||||
to:print_str::@return
|
||||
print_str::@return: scope:[print_str] from print_str::@1
|
||||
[155] return [ print_char_cursor#2 ] ( main:2::menu:9::print_str_ln:28::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:30::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:32::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:34::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:36::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:38::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:40::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:42::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:44::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:46::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:48::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:50::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:52::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:54::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:56::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:58::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:60::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:62::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:64::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:66::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] main:2::menu:9::print_str_ln:68::print_str:143 [ print_line_cursor#70 print_char_cursor#2 ] )
|
||||
to:@return
|
||||
print_str::@2: scope:[print_str] from print_str::@1
|
||||
[156] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#2) [ print_char_cursor#2 print_str::str#2 ] ( main:2::menu:9::print_str_ln:28::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:30::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:32::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:34::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:36::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:38::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:40::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:42::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:44::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:46::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:48::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:50::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:52::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:54::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:56::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:58::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:60::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:62::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:64::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:66::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] main:2::menu:9::print_str_ln:68::print_str:143 [ print_line_cursor#70 print_char_cursor#2 print_str::str#2 ] )
|
||||
[157] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#2 [ print_str::str#2 print_char_cursor#1 ] ( main:2::menu:9::print_str_ln:28::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:30::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:32::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:34::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:36::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:38::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:40::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:42::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:44::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:46::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:48::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:50::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:52::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:54::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:56::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:58::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:60::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:62::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:64::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:66::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] main:2::menu:9::print_str_ln:68::print_str:143 [ print_line_cursor#70 print_str::str#2 print_char_cursor#1 ] )
|
||||
[158] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#2 [ print_str::str#0 print_char_cursor#1 ] ( main:2::menu:9::print_str_ln:28::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:30::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:32::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:34::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:36::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:38::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:40::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:42::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:44::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:46::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:48::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:50::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:52::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:54::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:56::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:58::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:60::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:62::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:64::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:66::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] main:2::menu:9::print_str_ln:68::print_str:143 [ print_line_cursor#70 print_str::str#0 print_char_cursor#1 ] )
|
||||
to:print_str::@1
|
||||
print_cls: scope:[print_cls] from menu::@12
|
||||
[159] phi() [ ] ( main:2::menu:9::print_cls:26 [ ] )
|
||||
[121] phi() [ ] ( main:2::menu:9::print_cls:25 [ ] )
|
||||
to:print_cls::@1
|
||||
print_cls::@1: scope:[print_cls] from print_cls print_cls::@1
|
||||
[160] (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:26 [ print_cls::sc#2 ] )
|
||||
[161] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:26 [ print_cls::sc#2 ] )
|
||||
[162] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:26 [ print_cls::sc#1 ] )
|
||||
[163] 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:26 [ print_cls::sc#1 ] )
|
||||
[122] (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:25 [ print_cls::sc#2 ] )
|
||||
[123] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::menu:9::print_cls:25 [ print_cls::sc#2 ] )
|
||||
[124] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::menu:9::print_cls:25 [ print_cls::sc#1 ] )
|
||||
[125] 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:25 [ print_cls::sc#1 ] )
|
||||
to:print_cls::@return
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
[164] return [ ] ( main:2::menu:9::print_cls:26 [ ] )
|
||||
[126] return [ ] ( main:2::menu:9::print_cls:25 [ ] )
|
||||
to:@return
|
||||
print_set_screen: scope:[print_set_screen] from menu::@6
|
||||
[165] phi() [ ] ( main:2::menu:9::print_set_screen:24 [ ] )
|
||||
[127] phi() [ ] ( main:2::menu:9::print_set_screen:23 [ ] )
|
||||
to:print_set_screen::@return
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
[166] return [ ] ( main:2::menu:9::print_set_screen:24 [ ] )
|
||||
[128] return [ ] ( main:2::menu:9::print_set_screen:23 [ ] )
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
(label) @20
|
||||
(label) @21
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
@ -21,12 +21,6 @@
|
||||
(const byte*) CIA2_PORT_A_DDR#0 CIA2_PORT_A_DDR = ((byte*))(word/dword/signed dword) 56578
|
||||
(byte*) COLS
|
||||
(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296
|
||||
(byte*) D011
|
||||
(const byte*) D011#0 D011 = ((byte*))(word/dword/signed dword) 53265
|
||||
(byte*) D016
|
||||
(const byte*) D016#0 D016 = ((byte*))(word/dword/signed dword) 53270
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272
|
||||
(byte*) DTV_CONTROL
|
||||
(const byte*) DTV_CONTROL#0 DTV_CONTROL = ((byte*))(word/dword/signed dword) 53308
|
||||
(byte) DTV_CONTROL_HIGHCOLOR_ON
|
||||
@ -75,31 +69,42 @@
|
||||
(const byte*) MENU_CHARSET#0 MENU_CHARSET = ((byte*))(word/dword/signed dword) 38912
|
||||
(byte*) MENU_SCREEN
|
||||
(const byte*) MENU_SCREEN#0 MENU_SCREEN = ((byte*))(word/dword/signed dword) 32768
|
||||
(byte[]) MENU_TEXT
|
||||
(const string) MENU_TEXT#0 MENU_TEXT = (string) "C64DTV Graphics Modes EMBLHCC@"+(string) " CCMIIHO@"+(string) " MMMNCUL@"+(string) "----------------------------------------@"+(string) "1. Standard Char (V) 0000000@"+(string) "2. Extended Color Char (V) 1000000@"+(string) "3. Multicolor Char (V) 0100000@"+(string) "4. Standard Bitmap (V) 0010000@"+(string) "5. Multicolor Bitmap (V) 0110000@"+(string) "6. High Color Standard Char (H) 0000100@"+(string) "7. High Extended Color Char (H) 1000100@"+(string) "8. High Multicolor Char (H) 0100100@"+(string) "9. High Multicolor Bitmap (H) 0110100@"+(string) "a. Sixs Fred (D) 1111100@"+(string) "b. Sixs Fred 2 (D) 1111000@"+(string) "c. Two Plane Bitmap (D) 1011100@"+(string) "d. Two Plane Multicol Bitmap (D) 1111100@"+(string) "e. 8bpp Pixel Cell (D) 1101110@"+(string) "f. Chunky 8bpp Bitmap (D) 1101111@"+(string) "----------------------------------------@"+(string) " (V) vicII (H) vicII+hicol (D) c64dtv@"+(string) "@"
|
||||
(byte*) TWOPLANE_PLANEA
|
||||
(const byte*) TWOPLANE_PLANEA#0 TWOPLANE_PLANEA = ((byte*))(word/signed word/dword/signed dword) 16384
|
||||
(byte*) TWOPLANE_PLANEB
|
||||
(const byte*) TWOPLANE_PLANEB#0 TWOPLANE_PLANEB = ((byte*))(word/signed word/dword/signed dword) 24576
|
||||
(byte) VIC_BMM
|
||||
(const byte) VIC_BMM#0 VIC_BMM = (byte/signed byte/word/signed word/dword/signed dword) 32
|
||||
(byte*) VIC_CONTROL
|
||||
(const byte*) VIC_CONTROL#0 VIC_CONTROL = ((byte*))(word/dword/signed dword) 53265
|
||||
(byte*) VIC_CONTROL2
|
||||
(const byte*) VIC_CONTROL2#0 VIC_CONTROL2 = ((byte*))(word/dword/signed dword) 53270
|
||||
(byte) VIC_CSEL
|
||||
(const byte) VIC_CSEL#0 VIC_CSEL = (byte/signed byte/word/signed word/dword/signed dword) 8
|
||||
(byte) VIC_DEN
|
||||
(const byte) VIC_DEN#0 VIC_DEN = (byte/signed byte/word/signed word/dword/signed dword) 16
|
||||
(byte) VIC_ECM
|
||||
(const byte) VIC_ECM#0 VIC_ECM = (byte/signed byte/word/signed word/dword/signed dword) 64
|
||||
(byte*) VIC_MEMORY
|
||||
(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
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$1 reg byte y 2.0
|
||||
(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
|
||||
(byte) keyboard_key_pressed::colidx#0 reg byte x 0.6666666666666666
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::key#2 reg byte x 0.8
|
||||
(byte) keyboard_key_pressed::key#2 reg byte y 2.0
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0 reg byte a 51.0
|
||||
(byte) keyboard_key_pressed::return#2 reg byte a 202.0
|
||||
(byte) keyboard_key_pressed::return#3 reg byte a 202.0
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(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)
|
||||
@ -117,33 +122,13 @@
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(void()) menu()
|
||||
(byte~) menu::$42 reg byte a 202.0
|
||||
(byte~) menu::$22 reg byte a 202.0
|
||||
(label) menu::@1
|
||||
(label) menu::@12
|
||||
(label) menu::@13
|
||||
(label) menu::@14
|
||||
(label) menu::@15
|
||||
(label) menu::@16
|
||||
(label) menu::@17
|
||||
(label) menu::@18
|
||||
(label) menu::@19
|
||||
(label) menu::@2
|
||||
(label) menu::@20
|
||||
(label) menu::@21
|
||||
(label) menu::@22
|
||||
(label) menu::@23
|
||||
(label) menu::@24
|
||||
(label) menu::@25
|
||||
(label) menu::@26
|
||||
(label) menu::@27
|
||||
(label) menu::@28
|
||||
(label) menu::@29
|
||||
(label) menu::@3
|
||||
(label) menu::@30
|
||||
(label) menu::@31
|
||||
(label) menu::@32
|
||||
(label) menu::@33
|
||||
(label) menu::@35
|
||||
(label) menu::@5
|
||||
(label) menu::@6
|
||||
(label) menu::@9
|
||||
@ -153,27 +138,6 @@
|
||||
(byte*) menu::c#2 c zp ZP_WORD:2 151.5
|
||||
(byte*) menu::last
|
||||
(const byte*) menu::last#0 last = (const byte*) MENU_SCREEN#0+(word/signed word/dword/signed dword) 999
|
||||
(const string) menu::str str = (string) "C64DTV Graphics Modes EMBLHCC@"
|
||||
(const string) menu::str1 str1 = (string) " CCMIIHO@"
|
||||
(const string) menu::str10 str10 = (string) "7. High Extended Color Char (H) 1000100@"
|
||||
(const string) menu::str11 str11 = (string) "8. High Multicolor Char (H) 0100100@"
|
||||
(const string) menu::str12 str12 = (string) "9. High Multicolor Bitmap (H) 0110100@"
|
||||
(const string) menu::str13 str13 = (string) "a. Sixs Fred (D) 1111100@"
|
||||
(const string) menu::str14 str14 = (string) "b. Sixs Fred 2 (D) 1111000@"
|
||||
(const string) menu::str15 str15 = (string) "c. Two Plane Bitmap (D) 1011100@"
|
||||
(const string) menu::str16 str16 = (string) "d. Two Plane Multicol Bitmap (D) 1111100@"
|
||||
(const string) menu::str17 str17 = (string) "e. 8bpp Pixel Cell (D) 1101110@"
|
||||
(const string) menu::str18 str18 = (string) "f. Chunky 8bpp Bitmap (D) 1101111@"
|
||||
(const string) menu::str19 str19 = (string) "----------------------------------------@"
|
||||
(const string) menu::str2 str2 = (string) " MMMNCUL@"
|
||||
(const string) menu::str20 str20 = (string) " (V) vicII (H) vicII+hicol (D) c64dtv@"
|
||||
(const string) menu::str3 str3 = (string) "----------------------------------------@"
|
||||
(const string) menu::str4 str4 = (string) "1. Standard Char (V) 0000000@"
|
||||
(const string) menu::str5 str5 = (string) "2. Extended Color Char (V) 1000000@"
|
||||
(const string) menu::str6 str6 = (string) "3. Multicolor Char (V) 0100000@"
|
||||
(const string) menu::str7 str7 = (string) "4. Standard Bitmap (V) 0010000@"
|
||||
(const string) menu::str8 str8 = (string) "5. Multicolor Bitmap (V) 0110000@"
|
||||
(const string) menu::str9 str9 = (string) "6. High Color Standard Char (H) 0000100@"
|
||||
(void()) mode_twoplanebitmap()
|
||||
(byte~) mode_twoplanebitmap::$12 reg byte a 2002.0
|
||||
(byte~) mode_twoplanebitmap::$19 reg byte a 202.0
|
||||
@ -196,52 +160,34 @@
|
||||
(byte) mode_twoplanebitmap::ax#1 reg byte x 1501.5
|
||||
(byte) mode_twoplanebitmap::ax#2 reg byte x 250.25
|
||||
(byte) mode_twoplanebitmap::ay
|
||||
(byte) mode_twoplanebitmap::ay#1 ay zp ZP_BYTE:4 151.5
|
||||
(byte) mode_twoplanebitmap::ay#4 ay zp ZP_BYTE:4 109.36363636363637
|
||||
(byte) mode_twoplanebitmap::ay#1 ay zp ZP_BYTE:6 151.5
|
||||
(byte) mode_twoplanebitmap::ay#4 ay zp ZP_BYTE:6 109.36363636363637
|
||||
(byte) mode_twoplanebitmap::bx
|
||||
(byte) mode_twoplanebitmap::bx#1 reg byte x 1501.5
|
||||
(byte) mode_twoplanebitmap::bx#2 reg byte x 667.3333333333334
|
||||
(byte) mode_twoplanebitmap::by
|
||||
(byte) mode_twoplanebitmap::by#1 by zp ZP_BYTE:4 151.5
|
||||
(byte) mode_twoplanebitmap::by#4 by zp ZP_BYTE:4 33.666666666666664
|
||||
(byte) mode_twoplanebitmap::by#1 by zp ZP_BYTE:6 151.5
|
||||
(byte) mode_twoplanebitmap::by#4 by zp ZP_BYTE:6 33.666666666666664
|
||||
(byte*) mode_twoplanebitmap::c
|
||||
(byte*) mode_twoplanebitmap::c#1 c zp ZP_WORD:2 151.5
|
||||
(byte*) mode_twoplanebitmap::c#2 c zp ZP_WORD:2 134.66666666666666
|
||||
(byte*) mode_twoplanebitmap::c#1 c zp ZP_WORD:4 151.5
|
||||
(byte*) mode_twoplanebitmap::c#2 c zp ZP_WORD:4 134.66666666666666
|
||||
(byte*) mode_twoplanebitmap::gfxa
|
||||
(byte*) mode_twoplanebitmap::gfxa#1 gfxa zp ZP_WORD:2 2002.0
|
||||
(byte*) mode_twoplanebitmap::gfxa#2 gfxa zp ZP_WORD:2 2002.0
|
||||
(byte*) mode_twoplanebitmap::gfxa#3 gfxa zp ZP_WORD:2 1021.2
|
||||
(byte*) mode_twoplanebitmap::gfxa#6 gfxa zp ZP_WORD:2 202.0
|
||||
(byte*) mode_twoplanebitmap::gfxa#7 gfxa zp ZP_WORD:2 620.8
|
||||
(byte*) mode_twoplanebitmap::gfxa#1 gfxa zp ZP_WORD:4 2002.0
|
||||
(byte*) mode_twoplanebitmap::gfxa#2 gfxa zp ZP_WORD:4 2002.0
|
||||
(byte*) mode_twoplanebitmap::gfxa#3 gfxa zp ZP_WORD:4 1021.2
|
||||
(byte*) mode_twoplanebitmap::gfxa#6 gfxa zp ZP_WORD:4 202.0
|
||||
(byte*) mode_twoplanebitmap::gfxa#7 gfxa zp ZP_WORD:4 620.8
|
||||
(byte*) mode_twoplanebitmap::gfxb
|
||||
(byte*) mode_twoplanebitmap::gfxb#1 gfxb zp ZP_WORD:2 420.59999999999997
|
||||
(byte*) mode_twoplanebitmap::gfxb#2 gfxb zp ZP_WORD:2 1552.0
|
||||
(byte*) mode_twoplanebitmap::gfxb#3 gfxb zp ZP_WORD:2 202.0
|
||||
(byte*) mode_twoplanebitmap::gfxb#1 gfxb zp ZP_WORD:4 420.59999999999997
|
||||
(byte*) mode_twoplanebitmap::gfxb#2 gfxb zp ZP_WORD:4 1552.0
|
||||
(byte*) mode_twoplanebitmap::gfxb#3 gfxb zp ZP_WORD:4 202.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#101 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#102 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#103 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#104 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#105 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#106 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#107 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#108 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#109 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#110 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#111 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#112 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#113 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#114 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#115 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*) print_char_cursor#13 print_char_cursor#13 zp ZP_WORD:5 110.0
|
||||
(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:7 40.6
|
||||
(byte*) print_char_cursor#76 print_char_cursor zp ZP_WORD:7 13.999999999999995
|
||||
(byte*~) print_char_cursor#96 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#97 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#98 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*~) print_char_cursor#99 print_char_cursor zp ZP_WORD:7 4.0
|
||||
(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:2 2002.0
|
||||
(byte*) print_char_cursor#11 print_char_cursor zp ZP_WORD:2 110.0
|
||||
(byte*) print_char_cursor#17 print_char_cursor zp ZP_WORD:2 821.0
|
||||
(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:2 14.2
|
||||
(byte*) print_char_cursor#32 print_char_cursor zp ZP_WORD:2 572.0
|
||||
(byte*~) print_char_cursor#55 print_char_cursor zp ZP_WORD:2 202.0
|
||||
(void()) print_cls()
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
@ -249,11 +195,10 @@
|
||||
(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_line_cursor
|
||||
(byte*) print_line_cursor#10 print_line_cursor#10 zp ZP_WORD:2 110.0
|
||||
(byte*) print_line_cursor#3 print_line_cursor zp ZP_WORD:5 6.982758620689656
|
||||
(byte*) print_line_cursor#38 print_line_cursor zp ZP_WORD:5 204.0
|
||||
(byte*) print_line_cursor#70 print_line_cursor zp ZP_WORD:5 8.400000000000002
|
||||
(byte*~) print_line_cursor#89 print_line_cursor#89 zp ZP_WORD:2 22.0
|
||||
(byte*) print_line_cursor#10 print_line_cursor zp ZP_WORD:7 110.0
|
||||
(byte*) print_line_cursor#17 print_line_cursor zp ZP_WORD:7 4.5600000000000005
|
||||
(byte*) print_line_cursor#18 print_line_cursor zp ZP_WORD:7 2004.0
|
||||
(byte*) print_line_cursor#19 print_line_cursor zp ZP_WORD:7 641.0
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
@ -262,36 +207,38 @@
|
||||
(void()) print_set_screen((byte*) print_set_screen::screen)
|
||||
(label) print_set_screen::@return
|
||||
(byte*) print_set_screen::screen
|
||||
(void()) print_str((byte*) print_str::str)
|
||||
(label) print_str::@1
|
||||
(label) print_str::@2
|
||||
(label) print_str::@return
|
||||
(byte*) print_str::str
|
||||
(byte*) print_str::str#0 str zp ZP_WORD:2 202.0
|
||||
(byte*) print_str::str#1 str zp ZP_WORD:2 2.0
|
||||
(byte*) print_str::str#2 str zp ZP_WORD:2 101.5
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(label) print_str_ln::@1
|
||||
(label) print_str_ln::@return
|
||||
(byte*) print_str_ln::str
|
||||
(byte*) print_str_ln::str#21 str zp ZP_WORD:2 2.0
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@8
|
||||
(label) print_str_lines::@9
|
||||
(label) print_str_lines::@return
|
||||
(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:4 233.66666666666669
|
||||
(byte*) print_str_lines::str#2 str zp ZP_WORD:4 151.5
|
||||
(byte*) print_str_lines::str#3 str zp ZP_WORD:4 1552.0
|
||||
|
||||
zp ZP_WORD:2 [ print_screen#13 print_line_cursor#10 print_line_cursor#89 menu::c#2 menu::c#1 mode_twoplanebitmap::c#2 mode_twoplanebitmap::c#1 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 print_str_ln::str#21 print_str::str#2 print_str::str#1 print_str::str#0 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_BYTE:4 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ]
|
||||
zp ZP_WORD:2 [ print_screen#13 print_char_cursor#17 print_char_cursor#11 print_char_cursor#19 print_char_cursor#55 print_char_cursor#32 print_char_cursor#1 menu::c#2 menu::c#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
zp ZP_WORD:4 [ mode_twoplanebitmap::c#2 mode_twoplanebitmap::c#1 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::gfxa#7 mode_twoplanebitmap::gfxa#2 mode_twoplanebitmap::gfxa#1 mode_twoplanebitmap::gfxb#2 mode_twoplanebitmap::gfxb#3 mode_twoplanebitmap::gfxb#1 print_str_lines::str#3 print_str_lines::str#2 print_str_lines::str#0 ]
|
||||
zp ZP_BYTE:6 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ay#1 mode_twoplanebitmap::by#4 mode_twoplanebitmap::by#1 ]
|
||||
reg byte x [ mode_twoplanebitmap::ax#2 mode_twoplanebitmap::ax#1 ]
|
||||
reg byte x [ mode_twoplanebitmap::bx#2 mode_twoplanebitmap::bx#1 ]
|
||||
reg byte x [ keyboard_key_pressed::key#2 ]
|
||||
zp ZP_WORD:5 [ print_line_cursor#38 print_line_cursor#70 print_char_cursor#13 print_line_cursor#3 ]
|
||||
zp ZP_WORD:7 [ print_char_cursor#2 print_char_cursor#76 print_char_cursor#96 print_char_cursor#97 print_char_cursor#98 print_char_cursor#99 print_char_cursor#100 print_char_cursor#101 print_char_cursor#102 print_char_cursor#103 print_char_cursor#104 print_char_cursor#105 print_char_cursor#106 print_char_cursor#107 print_char_cursor#108 print_char_cursor#109 print_char_cursor#110 print_char_cursor#111 print_char_cursor#112 print_char_cursor#113 print_char_cursor#114 print_char_cursor#115 print_char_cursor#1 ]
|
||||
reg byte y [ keyboard_key_pressed::key#2 ]
|
||||
zp ZP_WORD:7 [ print_line_cursor#18 print_line_cursor#10 print_line_cursor#17 print_line_cursor#19 ]
|
||||
reg byte a [ keyboard_key_pressed::return#2 ]
|
||||
reg byte a [ menu::$42 ]
|
||||
reg byte a [ menu::$22 ]
|
||||
reg byte a [ mode_twoplanebitmap::$9 ]
|
||||
reg byte a [ mode_twoplanebitmap::$12 ]
|
||||
reg byte a [ keyboard_key_pressed::return#3 ]
|
||||
reg byte a [ mode_twoplanebitmap::$19 ]
|
||||
reg byte x [ keyboard_key_pressed::colidx#0 ]
|
||||
reg byte a [ keyboard_key_pressed::rowidx#0 ]
|
||||
reg byte a [ keyboard_matrix_read::rowid#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
reg byte y [ keyboard_key_pressed::$1 ]
|
||||
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 [ print_str_lines::ch#0 ]
|
||||
|
@ -333,21 +333,19 @@ mul8u: {
|
||||
}
|
||||
keyboard_key_pressed: {
|
||||
txa
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr keyboard_matrix_read
|
||||
and #7
|
||||
tay
|
||||
txa
|
||||
and #7
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
tax
|
||||
tya
|
||||
and keyboard_matrix_col_bitmask,x
|
||||
jsr keyboard_matrix_read
|
||||
and keyboard_matrix_col_bitmask,y
|
||||
rts
|
||||
}
|
||||
keyboard_matrix_read: {
|
||||
tay
|
||||
lda keyboard_matrix_row_bitmask,y
|
||||
lda keyboard_matrix_row_bitmask,x
|
||||
sta CIA1_PORT_A
|
||||
lda CIA1_PORT_B
|
||||
eor #$ff
|
||||
|
@ -227,45 +227,46 @@ mul8u::@4: scope:[mul8u] from mul8u::@2 mul8u::@7
|
||||
to:mul8u::@1
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@21 main::@3 main::@4 main::@5 main::@6 main::@7
|
||||
[115] (byte) keyboard_key_pressed::key#6 ← phi( main::@21/(byte) keyboard_key_pressed::key#5 main::@3/(const byte) KEY_F1#0 main::@4/(const byte) KEY_F3#0 main::@5/(const byte) KEY_F5#0 main::@6/(const byte) KEY_F7#0 main::@7/(const byte) KEY_LSHIFT#0 ) [ keyboard_key_pressed::key#6 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 ] )
|
||||
[116] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::key#6 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::key#6 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::key#6 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::key#6 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::key#6 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::key#6 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::key#6 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 keyboard_matrix_read::rowid#0 ] )
|
||||
[117] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] )
|
||||
[118] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::key#6 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::key#6 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::key#6 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::key#6 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::key#6 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::key#6 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 keyboard_matrix_read::return#2 ] )
|
||||
[116] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 keyboard_key_pressed::colidx#0 ] )
|
||||
[117] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#6 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] )
|
||||
[118] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] )
|
||||
[119] call keyboard_matrix_read param-assignment [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
[120] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 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
|
||||
[119] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::key#6 keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::key#6 keyboard_key_pressed::$1 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::key#6 keyboard_key_pressed::$1 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::key#6 keyboard_key_pressed::$1 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::key#6 keyboard_key_pressed::$1 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::key#6 keyboard_key_pressed::$1 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 keyboard_key_pressed::$1 ] )
|
||||
[120] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] )
|
||||
[121] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] )
|
||||
[121] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] )
|
||||
[122] (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::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] )
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2
|
||||
[122] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] )
|
||||
[123] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:23 [ main::cur_pos#24 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:28 [ main::cur_pos#22 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:33 [ main::cur_pos#20 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:38 [ main::cur_pos#18 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:43 [ main::cur_pos#12 keyboard_key_pressed::return#0 ] main:2::keyboard_key_pressed:56 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::return#0 ] )
|
||||
to:@return
|
||||
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
|
||||
[123] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:117 [ main::cur_pos#12 keyboard_key_pressed::key#6 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:117 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 ] )
|
||||
[124] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:117 [ main::cur_pos#12 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:117 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] )
|
||||
[124] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:119 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:119 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:119 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:119 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:119 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:119 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 ] )
|
||||
[125] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:119 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:119 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:119 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:119 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:119 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:119 [ main::cur_pos#12 main::shift#10 main::ch#2 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
|
||||
[125] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:117 [ main::cur_pos#24 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:117 [ main::cur_pos#22 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:117 [ main::cur_pos#20 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:117 [ main::cur_pos#18 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:117 [ main::cur_pos#12 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:117 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::key#6 keyboard_matrix_read::return#0 ] )
|
||||
[126] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:23::keyboard_matrix_read:119 [ main::cur_pos#24 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:28::keyboard_matrix_read:119 [ main::cur_pos#22 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:33::keyboard_matrix_read:119 [ main::cur_pos#20 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:38::keyboard_matrix_read:119 [ main::cur_pos#18 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:43::keyboard_matrix_read:119 [ main::cur_pos#12 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:56::keyboard_matrix_read:119 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
to:@return
|
||||
keyboard_get_keycode: scope:[keyboard_get_keycode] from main::@10
|
||||
[126] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:51 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_get_keycode::return#0 ] )
|
||||
[127] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:51 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_get_keycode::return#0 ] )
|
||||
to:keyboard_get_keycode::@return
|
||||
keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_keycode
|
||||
[127] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:51 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_get_keycode::return#0 ] )
|
||||
[128] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:51 [ main::cur_pos#12 main::shift#10 main::ch#2 keyboard_get_keycode::return#0 ] )
|
||||
to:@return
|
||||
print_str_at: scope:[print_str_at] from main::@13 main::@25 main::@26 main::@27
|
||||
[128] (byte*) print_str_at::at#7 ← phi( main::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 main::@25/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 10 main::@26/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 20 main::@27/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30 ) [ print_str_at::str#7 print_str_at::at#7 ] ( main:2::print_str_at:10 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:12 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:14 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:16 [ print_str_at::str#7 print_str_at::at#7 ] )
|
||||
[128] (byte*) print_str_at::str#7 ← phi( main::@13/(const string) main::str main::@25/(const string) main::str1 main::@26/(const string) main::str2 main::@27/(const string) main::str3 ) [ print_str_at::str#7 print_str_at::at#7 ] ( main:2::print_str_at:10 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:12 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:14 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:16 [ print_str_at::str#7 print_str_at::at#7 ] )
|
||||
[129] (byte*) print_str_at::at#7 ← phi( main::@13/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 main::@25/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 10 main::@26/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 20 main::@27/(const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30 ) [ print_str_at::str#7 print_str_at::at#7 ] ( main:2::print_str_at:10 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:12 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:14 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:16 [ print_str_at::str#7 print_str_at::at#7 ] )
|
||||
[129] (byte*) print_str_at::str#7 ← phi( main::@13/(const string) main::str main::@25/(const string) main::str1 main::@26/(const string) main::str2 main::@27/(const string) main::str3 ) [ print_str_at::str#7 print_str_at::at#7 ] ( main:2::print_str_at:10 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:12 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:14 [ print_str_at::str#7 print_str_at::at#7 ] main:2::print_str_at:16 [ print_str_at::str#7 print_str_at::at#7 ] )
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
[129] (byte*) print_str_at::at#5 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 ) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] )
|
||||
[129] (byte*) print_str_at::str#5 ← phi( print_str_at/(byte*) print_str_at::str#7 print_str_at::@2/(byte*) print_str_at::str#4 ) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] )
|
||||
[130] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] )
|
||||
[130] (byte*) print_str_at::at#5 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 ) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] )
|
||||
[130] (byte*) print_str_at::str#5 ← phi( print_str_at/(byte*) print_str_at::str#7 print_str_at::@2/(byte*) print_str_at::str#4 ) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] )
|
||||
[131] if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2 [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] )
|
||||
to:print_str_at::@return
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@1
|
||||
[131] return [ ] ( main:2::print_str_at:10 [ ] main:2::print_str_at:12 [ ] main:2::print_str_at:14 [ ] main:2::print_str_at:16 [ ] )
|
||||
[132] return [ ] ( main:2::print_str_at:10 [ ] main:2::print_str_at:12 [ ] main:2::print_str_at:14 [ ] main:2::print_str_at:16 [ ] )
|
||||
to:@return
|
||||
print_str_at::@2: scope:[print_str_at] from print_str_at::@1
|
||||
[132] *((byte*) print_str_at::at#5) ← *((byte*) print_str_at::str#5) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] )
|
||||
[133] (byte*) print_str_at::at#4 ← ++ (byte*) print_str_at::at#5 [ print_str_at::str#5 print_str_at::at#4 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#4 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#4 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#4 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#4 ] )
|
||||
[134] (byte*) print_str_at::str#4 ← ++ (byte*) print_str_at::str#5 [ print_str_at::str#4 print_str_at::at#4 ] ( main:2::print_str_at:10 [ print_str_at::str#4 print_str_at::at#4 ] main:2::print_str_at:12 [ print_str_at::str#4 print_str_at::at#4 ] main:2::print_str_at:14 [ print_str_at::str#4 print_str_at::at#4 ] main:2::print_str_at:16 [ print_str_at::str#4 print_str_at::at#4 ] )
|
||||
[133] *((byte*) print_str_at::at#5) ← *((byte*) print_str_at::str#5) [ print_str_at::str#5 print_str_at::at#5 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#5 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#5 ] )
|
||||
[134] (byte*) print_str_at::at#4 ← ++ (byte*) print_str_at::at#5 [ print_str_at::str#5 print_str_at::at#4 ] ( main:2::print_str_at:10 [ print_str_at::str#5 print_str_at::at#4 ] main:2::print_str_at:12 [ print_str_at::str#5 print_str_at::at#4 ] main:2::print_str_at:14 [ print_str_at::str#5 print_str_at::at#4 ] main:2::print_str_at:16 [ print_str_at::str#5 print_str_at::at#4 ] )
|
||||
[135] (byte*) print_str_at::str#4 ← ++ (byte*) print_str_at::str#5 [ print_str_at::str#4 print_str_at::at#4 ] ( main:2::print_str_at:10 [ print_str_at::str#4 print_str_at::at#4 ] main:2::print_str_at:12 [ print_str_at::str#4 print_str_at::at#4 ] main:2::print_str_at:14 [ print_str_at::str#4 print_str_at::at#4 ] main:2::print_str_at:16 [ print_str_at::str#4 print_str_at::at#4 ] )
|
||||
to:print_str_at::@1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -131,13 +131,14 @@
|
||||
(byte) keyboard_get_keycode::return#0 reg byte a 34.33333333333333
|
||||
(byte) keyboard_get_keycode::return#2 reg byte a 202.0
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$1 reg byte y 2.0
|
||||
(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
|
||||
(byte) keyboard_key_pressed::colidx#0 reg byte y 0.6666666666666666
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::key#5 reg byte x 202.0
|
||||
(byte) keyboard_key_pressed::key#6 reg byte x 20.999999999999996
|
||||
(byte) keyboard_key_pressed::key#6 reg byte x 52.5
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0 reg byte a 19.75
|
||||
(byte) keyboard_key_pressed::return#10 reg byte a 22.0
|
||||
@ -146,6 +147,8 @@
|
||||
(byte) keyboard_key_pressed::return#13 reg byte a 22.0
|
||||
(byte) keyboard_key_pressed::return#14 reg byte a 202.0
|
||||
(byte) keyboard_key_pressed::return#2 reg byte a 22.0
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(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)
|
||||
@ -155,7 +158,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 a 4.0
|
||||
(byte) keyboard_matrix_read::rowid#0 reg byte x 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()
|
||||
@ -336,9 +339,10 @@ reg byte a [ main::key#0 ]
|
||||
reg byte a [ keyboard_key_pressed::return#14 ]
|
||||
reg byte a [ plot_chargen::$10 ]
|
||||
reg byte a [ mul8u::$1 ]
|
||||
reg byte a [ keyboard_matrix_read::rowid#0 ]
|
||||
reg byte y [ keyboard_key_pressed::colidx#0 ]
|
||||
reg byte a [ keyboard_key_pressed::rowidx#0 ]
|
||||
reg byte x [ keyboard_matrix_read::rowid#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
reg byte y [ keyboard_key_pressed::$1 ]
|
||||
reg byte a [ keyboard_key_pressed::$2 ]
|
||||
reg byte a [ keyboard_key_pressed::return#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@18
|
||||
@18: scope:[] from @begin
|
||||
to:@19
|
||||
@19: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @18
|
||||
@end: scope:[] from @19
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @18
|
||||
main: scope:[main] from @19
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -66,6 +66,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -80,13 +100,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -163,6 +176,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -174,6 +189,35 @@ STATEMENTS
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -202,12 +246,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -495,6 +533,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -557,6 +609,54 @@ INITIAL CONTROL FLOW GRAPH
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@1
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -579,8 +679,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -603,17 +703,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -628,8 +719,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -647,8 +738,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -666,8 +757,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -677,8 +768,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -688,8 +779,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -707,8 +798,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
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
|
||||
@ -719,8 +810,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -728,8 +819,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -747,8 +838,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -757,11 +848,11 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
@14: scope:[] from @13
|
||||
(byte*) BGCOL ← ((byte*)) (word/dword/signed dword) 53281
|
||||
(byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
to:@14
|
||||
to:@15
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_cls
|
||||
*((byte*) BGCOL) ← (byte) GREEN
|
||||
@ -771,8 +862,8 @@ main: scope:[main] from
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
test_bytes: scope:[test_bytes] from
|
||||
(byte) test_bytes::bb ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(void~) test_bytes::$0 ← call assert_byte (string) "0=0@" (byte) test_bytes::bb (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -788,8 +879,8 @@ test_bytes: scope:[test_bytes] from
|
||||
test_bytes::@return: scope:[test_bytes] from test_bytes
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
assert_byte: scope:[assert_byte] from
|
||||
(void~) assert_byte::$0 ← call print_str (byte*) assert_byte::msg
|
||||
(void~) assert_byte::$1 ← call print_str (string) " @"
|
||||
@ -812,8 +903,8 @@ assert_byte::@4: scope:[assert_byte] from
|
||||
assert_byte::@return: scope:[assert_byte] from assert_byte::@2
|
||||
return
|
||||
to:@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
test_sbytes: scope:[test_sbytes] from
|
||||
(signed byte) test_sbytes::bb ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(void~) test_sbytes::$0 ← call assert_sbyte (string) "0=0@" (signed byte) test_sbytes::bb (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -836,8 +927,8 @@ test_sbytes: scope:[test_sbytes] from
|
||||
test_sbytes::@return: scope:[test_sbytes] from test_sbytes
|
||||
return
|
||||
to:@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
assert_sbyte: scope:[assert_sbyte] from
|
||||
(void~) assert_sbyte::$0 ← call print_str (byte*) assert_sbyte::msg
|
||||
(void~) assert_sbyte::$1 ← call print_str (string) " @"
|
||||
@ -860,13 +951,14 @@ assert_sbyte::@4: scope:[assert_sbyte] from
|
||||
assert_sbyte::@return: scope:[assert_sbyte] from assert_sbyte::@2
|
||||
return
|
||||
to:@return
|
||||
@18: scope:[] from @17
|
||||
@19: scope:[] from @18
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @18
|
||||
@end: scope:[] from @19
|
||||
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
@ -910,12 +1002,12 @@ Creating constant string variable for inline (const string) test_sbytes::msg4 "-
|
||||
Creating constant string variable for inline (const string) assert_sbyte::str " @"
|
||||
Creating constant string variable for inline (const string) assert_sbyte::str1 "ok@"
|
||||
Creating constant string variable for inline (const string) assert_sbyte::str2 "fail!@"
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block @3
|
||||
Removing empty block @4
|
||||
Removing empty block @5
|
||||
@ -926,11 +1018,12 @@ Removing empty block @9
|
||||
Removing empty block @10
|
||||
Removing empty block @11
|
||||
Removing empty block @12
|
||||
Removing empty block @14
|
||||
Removing empty block @13
|
||||
Removing empty block @15
|
||||
Removing empty block assert_byte::@4
|
||||
Removing empty block @16
|
||||
Removing empty block assert_byte::@4
|
||||
Removing empty block @17
|
||||
Removing empty block @18
|
||||
Removing empty block assert_sbyte::@4
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies print_char_cursor
|
||||
@ -962,7 +1055,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:@13
|
||||
to:@14
|
||||
print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@5 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@5
|
||||
(byte*) print_char_cursor#80 ← phi( assert_byte/(byte*) print_char_cursor#70 assert_byte::@1/(byte*) print_char_cursor#71 assert_byte::@3/(byte*) print_char_cursor#72 assert_byte::@5/(byte*) print_char_cursor#15 assert_sbyte/(byte*) print_char_cursor#75 assert_sbyte::@1/(byte*) print_char_cursor#76 assert_sbyte::@3/(byte*) print_char_cursor#77 assert_sbyte::@5/(byte*) print_char_cursor#27 )
|
||||
(byte*) print_str::str#11 ← phi( assert_byte/(byte*) print_str::str#1 assert_byte::@1/(byte*) print_str::str#3 assert_byte::@3/(byte*) print_str::str#4 assert_byte::@5/(byte*) print_str::str#2 assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(byte*) print_str::str#7 assert_sbyte::@3/(byte*) print_str::str#8 assert_sbyte::@5/(byte*) print_str::str#6 )
|
||||
@ -1033,18 +1126,18 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#6 ← (byte*) print_char_cursor#38
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @begin
|
||||
@14: scope:[] from @begin
|
||||
(byte*) print_screen#6 ← phi( @begin/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#81 ← phi( @begin/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#58 ← phi( @begin/(byte*) print_line_cursor#0 )
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281
|
||||
(byte) GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
to:@18
|
||||
main: scope:[main] from @18
|
||||
(byte*) print_char_cursor#68 ← phi( @18/(byte*) print_char_cursor#79 )
|
||||
(byte*) print_line_cursor#48 ← phi( @18/(byte*) print_line_cursor#53 )
|
||||
(byte*) print_screen#4 ← phi( @18/(byte*) print_screen#5 )
|
||||
to:@19
|
||||
main: scope:[main] from @19
|
||||
(byte*) print_char_cursor#68 ← phi( @19/(byte*) print_char_cursor#79 )
|
||||
(byte*) print_line_cursor#48 ← phi( @19/(byte*) print_line_cursor#53 )
|
||||
(byte*) print_screen#4 ← phi( @19/(byte*) print_screen#5 )
|
||||
call print_cls param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
@ -1339,24 +1432,24 @@ assert_sbyte::@return: scope:[assert_sbyte] from assert_sbyte::@9
|
||||
(byte*) print_line_cursor#22 ← (byte*) print_line_cursor#45
|
||||
return
|
||||
to:@return
|
||||
@18: scope:[] from @13
|
||||
(byte*) print_screen#5 ← phi( @13/(byte*) print_screen#6 )
|
||||
(byte*) print_char_cursor#79 ← phi( @13/(byte*) print_char_cursor#81 )
|
||||
(byte*) print_line_cursor#53 ← phi( @13/(byte*) print_line_cursor#58 )
|
||||
@19: scope:[] from @14
|
||||
(byte*) print_screen#5 ← phi( @14/(byte*) print_screen#6 )
|
||||
(byte*) print_char_cursor#79 ← phi( @14/(byte*) print_char_cursor#81 )
|
||||
(byte*) print_line_cursor#53 ← phi( @14/(byte*) print_line_cursor#58 )
|
||||
call main param-assignment
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
(byte*) print_char_cursor#65 ← phi( @18/(byte*) print_char_cursor#10 )
|
||||
(byte*) print_line_cursor#46 ← phi( @18/(byte*) print_line_cursor#8 )
|
||||
to:@20
|
||||
@20: scope:[] from @19
|
||||
(byte*) print_char_cursor#65 ← phi( @19/(byte*) print_char_cursor#10 )
|
||||
(byte*) print_line_cursor#46 ← phi( @19/(byte*) print_line_cursor#8 )
|
||||
(byte*) print_line_cursor#23 ← (byte*) print_line_cursor#46
|
||||
(byte*) print_char_cursor#33 ← (byte*) print_char_cursor#65
|
||||
to:@end
|
||||
@end: scope:[] from @19
|
||||
@end: scope:[] from @20
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @13
|
||||
(label) @18
|
||||
(label) @14
|
||||
(label) @19
|
||||
(label) @20
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
@ -2082,7 +2175,7 @@ Constant (const byte) assert_byte::b#2 = test_bytes::bd#0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @14
|
||||
Culled Empty Block (label) main::@3
|
||||
Culled Empty Block (label) test_bytes::@3
|
||||
Culled Empty Block (label) assert_byte::@7
|
||||
@ -2092,7 +2185,7 @@ Culled Empty Block (label) test_sbytes::@5
|
||||
Culled Empty Block (label) assert_sbyte::@7
|
||||
Culled Empty Block (label) assert_sbyte::@8
|
||||
Culled Empty Block (label) assert_sbyte::@9
|
||||
Culled Empty Block (label) @19
|
||||
Culled Empty Block (label) @20
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: print_str::str#11 print_str::str#1
|
||||
Not aliassing across scopes: print_char_cursor#80 print_char_cursor#70
|
||||
@ -2223,12 +2316,12 @@ Constant inlined print_str::str#8 = (const string) assert_sbyte::str2
|
||||
Constant inlined print_str::str#7 = (const string) assert_sbyte::str1
|
||||
Constant inlined print_str::str#6 = (const string) assert_sbyte::str
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @18 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @19 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @18 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return print_ln::@3 test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @19 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return print_ln::@3 test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @18
|
||||
Adding NOP phi() at start of @19
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@2
|
||||
@ -2284,9 +2377,9 @@ Coalesced [87] print_cls::sc#3 ← print_cls::sc#1
|
||||
Coalesced down to 10 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @18 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @19 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @18
|
||||
Adding NOP phi() at start of @19
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@2
|
||||
@ -2315,14 +2408,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@18
|
||||
@18: scope:[] from @begin
|
||||
to:@19
|
||||
@19: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @18
|
||||
@end: scope:[] from @19
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @18
|
||||
main: scope:[main] from @19
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -2479,46 +2572,46 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@18 dominated by @begin @18
|
||||
@end dominated by @end @begin @18
|
||||
main dominated by main @begin @18
|
||||
main::@1 dominated by main main::@1 @begin @18
|
||||
main::@2 dominated by main main::@1 main::@2 @begin @18
|
||||
main::@return dominated by main::@return main main::@1 main::@2 @begin @18
|
||||
test_sbytes dominated by main test_sbytes main::@1 main::@2 @begin @18
|
||||
test_sbytes::@1 dominated by main test_sbytes main::@1 main::@2 @begin @18 test_sbytes::@1
|
||||
test_sbytes::@2 dominated by main test_sbytes main::@1 main::@2 @begin @18 test_sbytes::@1 test_sbytes::@2
|
||||
test_sbytes::@3 dominated by main test_sbytes main::@1 main::@2 @begin @18 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3
|
||||
test_sbytes::@4 dominated by main test_sbytes main::@1 main::@2 @begin @18 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
|
||||
test_sbytes::@return dominated by test_sbytes::@return main test_sbytes main::@1 main::@2 @begin @18 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
|
||||
assert_sbyte dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @18
|
||||
assert_sbyte::@5 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @18 assert_sbyte::@5
|
||||
assert_sbyte::@6 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @18 assert_sbyte::@5 assert_sbyte::@6
|
||||
assert_sbyte::@3 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @18 assert_sbyte::@5 assert_sbyte::@3 assert_sbyte::@6
|
||||
assert_sbyte::@2 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @18 assert_sbyte::@5 assert_sbyte::@2 assert_sbyte::@6
|
||||
assert_sbyte::@return dominated by assert_sbyte assert_sbyte::@return main test_sbytes main::@1 main::@2 @begin @18 assert_sbyte::@5 assert_sbyte::@2 assert_sbyte::@6
|
||||
assert_sbyte::@1 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @18 assert_sbyte::@5 assert_sbyte::@1 assert_sbyte::@6
|
||||
print_str dominated by main main::@1 @begin @18 print_str
|
||||
print_str::@1 dominated by main print_str::@1 main::@1 @begin @18 print_str
|
||||
print_str::@return dominated by print_str::@return main print_str::@1 main::@1 @begin @18 print_str
|
||||
print_str::@2 dominated by main print_str::@1 print_str::@2 main::@1 @begin @18 print_str
|
||||
print_ln dominated by main main::@1 @begin @18 print_ln
|
||||
print_ln::@1 dominated by print_ln::@1 main main::@1 @begin @18 print_ln
|
||||
print_ln::@return dominated by print_ln::@1 main print_ln::@return main::@1 @begin @18 print_ln
|
||||
test_bytes dominated by test_bytes main main::@1 @begin @18
|
||||
test_bytes::@1 dominated by test_bytes main main::@1 @begin @18 test_bytes::@1
|
||||
test_bytes::@2 dominated by test_bytes main main::@1 @begin @18 test_bytes::@2 test_bytes::@1
|
||||
test_bytes::@return dominated by test_bytes main main::@1 @begin @18 test_bytes::@2 test_bytes::@1 test_bytes::@return
|
||||
assert_byte dominated by test_bytes main main::@1 @begin @18 assert_byte
|
||||
assert_byte::@5 dominated by test_bytes main assert_byte::@5 main::@1 @begin @18 assert_byte
|
||||
assert_byte::@6 dominated by test_bytes main assert_byte::@5 assert_byte::@6 main::@1 @begin @18 assert_byte
|
||||
assert_byte::@3 dominated by test_bytes assert_byte::@3 main assert_byte::@5 assert_byte::@6 main::@1 @begin @18 assert_byte
|
||||
assert_byte::@2 dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@2 main::@1 @begin @18 assert_byte
|
||||
assert_byte::@return dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@2 main::@1 assert_byte::@return @begin @18 assert_byte
|
||||
assert_byte::@1 dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@1 main::@1 @begin @18 assert_byte
|
||||
print_cls dominated by main @begin @18 print_cls
|
||||
print_cls::@1 dominated by main @begin @18 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main print_cls::@return @begin @18 print_cls::@1 print_cls
|
||||
@19 dominated by @begin @19
|
||||
@end dominated by @end @begin @19
|
||||
main dominated by main @begin @19
|
||||
main::@1 dominated by main main::@1 @begin @19
|
||||
main::@2 dominated by main main::@1 main::@2 @begin @19
|
||||
main::@return dominated by main::@return main main::@1 main::@2 @begin @19
|
||||
test_sbytes dominated by main test_sbytes main::@1 main::@2 @begin @19
|
||||
test_sbytes::@1 dominated by main test_sbytes main::@1 main::@2 @begin @19 test_sbytes::@1
|
||||
test_sbytes::@2 dominated by main test_sbytes main::@1 main::@2 @begin @19 test_sbytes::@1 test_sbytes::@2
|
||||
test_sbytes::@3 dominated by main test_sbytes main::@1 main::@2 @begin @19 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3
|
||||
test_sbytes::@4 dominated by main test_sbytes main::@1 main::@2 @begin @19 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
|
||||
test_sbytes::@return dominated by test_sbytes::@return main test_sbytes main::@1 main::@2 @begin @19 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
|
||||
assert_sbyte dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @19
|
||||
assert_sbyte::@5 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @19 assert_sbyte::@5
|
||||
assert_sbyte::@6 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @19 assert_sbyte::@5 assert_sbyte::@6
|
||||
assert_sbyte::@3 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @19 assert_sbyte::@5 assert_sbyte::@3 assert_sbyte::@6
|
||||
assert_sbyte::@2 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @19 assert_sbyte::@5 assert_sbyte::@2 assert_sbyte::@6
|
||||
assert_sbyte::@return dominated by assert_sbyte assert_sbyte::@return main test_sbytes main::@1 main::@2 @begin @19 assert_sbyte::@5 assert_sbyte::@2 assert_sbyte::@6
|
||||
assert_sbyte::@1 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @19 assert_sbyte::@5 assert_sbyte::@1 assert_sbyte::@6
|
||||
print_str dominated by main main::@1 @begin @19 print_str
|
||||
print_str::@1 dominated by main print_str::@1 main::@1 @begin @19 print_str
|
||||
print_str::@return dominated by print_str::@return main print_str::@1 main::@1 @begin @19 print_str
|
||||
print_str::@2 dominated by main print_str::@1 print_str::@2 main::@1 @begin @19 print_str
|
||||
print_ln dominated by main main::@1 @begin @19 print_ln
|
||||
print_ln::@1 dominated by print_ln::@1 main main::@1 @begin @19 print_ln
|
||||
print_ln::@return dominated by print_ln::@1 main print_ln::@return main::@1 @begin @19 print_ln
|
||||
test_bytes dominated by test_bytes main main::@1 @begin @19
|
||||
test_bytes::@1 dominated by test_bytes main main::@1 @begin @19 test_bytes::@1
|
||||
test_bytes::@2 dominated by test_bytes main main::@1 @begin @19 test_bytes::@2 test_bytes::@1
|
||||
test_bytes::@return dominated by test_bytes main main::@1 @begin @19 test_bytes::@2 test_bytes::@1 test_bytes::@return
|
||||
assert_byte dominated by test_bytes main main::@1 @begin @19 assert_byte
|
||||
assert_byte::@5 dominated by test_bytes main assert_byte::@5 main::@1 @begin @19 assert_byte
|
||||
assert_byte::@6 dominated by test_bytes main assert_byte::@5 assert_byte::@6 main::@1 @begin @19 assert_byte
|
||||
assert_byte::@3 dominated by test_bytes assert_byte::@3 main assert_byte::@5 assert_byte::@6 main::@1 @begin @19 assert_byte
|
||||
assert_byte::@2 dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@2 main::@1 @begin @19 assert_byte
|
||||
assert_byte::@return dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@2 main::@1 assert_byte::@return @begin @19 assert_byte
|
||||
assert_byte::@1 dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@1 main::@1 @begin @19 assert_byte
|
||||
print_cls dominated by main @begin @19 print_cls
|
||||
print_cls::@1 dominated by main @begin @19 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main print_cls::@return @begin @19 print_cls::@1 print_cls
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: print_str::@1 tails: print_str::@2 blocks: null
|
||||
@ -2651,17 +2744,17 @@ INITIAL ASM
|
||||
.label print_line_cursor = $a
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
b18_from_bbegin:
|
||||
jmp b18
|
||||
//SEG4 @18
|
||||
b18:
|
||||
//SEG3 [1] phi from @begin to @19 [phi:@begin->@19]
|
||||
b19_from_bbegin:
|
||||
jmp b19
|
||||
//SEG4 @19
|
||||
b19:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
main_from_b18:
|
||||
//SEG6 [4] phi from @19 to main [phi:@19->main]
|
||||
main_from_b19:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
bend_from_b18:
|
||||
//SEG7 [3] phi from @19 to @end [phi:@19->@end]
|
||||
bend_from_b19:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -3288,17 +3381,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_line_cursor = 7
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
b18_from_bbegin:
|
||||
jmp b18
|
||||
//SEG4 @18
|
||||
b18:
|
||||
//SEG3 [1] phi from @begin to @19 [phi:@begin->@19]
|
||||
b19_from_bbegin:
|
||||
jmp b19
|
||||
//SEG4 @19
|
||||
b19:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
main_from_b18:
|
||||
//SEG6 [4] phi from @19 to main [phi:@19->main]
|
||||
main_from_b19:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
bend_from_b18:
|
||||
//SEG7 [3] phi from @19 to @end [phi:@19->@end]
|
||||
bend_from_b19:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -3815,7 +3908,7 @@ print_cls: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b18
|
||||
Removing instruction jmp b19
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b2
|
||||
@ -3859,9 +3952,9 @@ Replacing label b2_from_b1 with b2
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b18_from_bbegin:
|
||||
Removing instruction main_from_b18:
|
||||
Removing instruction bend_from_b18:
|
||||
Removing instruction b19_from_bbegin:
|
||||
Removing instruction main_from_b19:
|
||||
Removing instruction bend_from_b19:
|
||||
Removing instruction b2_from_b1:
|
||||
Removing instruction test_sbytes_from_b2:
|
||||
Removing instruction b1_from_test_sbytes:
|
||||
@ -3892,7 +3985,7 @@ Removing instruction b1_from_b6:
|
||||
Removing instruction print_str_from_b1:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b18:
|
||||
Removing instruction b19:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1:
|
||||
@ -3932,7 +4025,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @18
|
||||
(label) @19
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
@ -4067,12 +4160,12 @@ Score: 1846
|
||||
.label print_char_cursor = 5
|
||||
.label print_line_cursor = 7
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
//SEG4 @18
|
||||
//SEG3 [1] phi from @begin to @19 [phi:@begin->@19]
|
||||
//SEG4 @19
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
//SEG6 [4] phi from @19 to main [phi:@19->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
//SEG7 [3] phi from @19 to @end [phi:@19->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @18
|
||||
(label) @19
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@14
|
||||
@14: scope:[] from @begin
|
||||
to:@15
|
||||
@15: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @14
|
||||
main: scope:[main] from @15
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -19,6 +19,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -33,13 +53,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -116,6 +129,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -128,6 +143,35 @@ STATEMENTS
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -156,12 +200,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -357,6 +395,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -388,6 +440,54 @@ INITIAL CONTROL FLOW GRAPH
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@1
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -410,8 +510,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -434,17 +534,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -459,8 +550,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -478,8 +569,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -497,8 +588,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -508,8 +599,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -519,8 +610,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -538,8 +629,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
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
|
||||
@ -550,8 +641,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -559,8 +650,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -578,8 +669,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -588,9 +679,9 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
@14: scope:[] from @13
|
||||
(byte[]) txt ← (string) "camelot@"
|
||||
to:@14
|
||||
to:@15
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_cls
|
||||
(byte) main::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -608,13 +699,14 @@ main::@2: scope:[main] from main::@1
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
@15: scope:[] from @14
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
@ -627,12 +719,12 @@ 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
|
||||
Creating constant string variable for inline (const string) $0 "camelot@"
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block @3
|
||||
Removing empty block @4
|
||||
Removing empty block @5
|
||||
@ -643,6 +735,7 @@ Removing empty block @9
|
||||
Removing empty block @10
|
||||
Removing empty block @11
|
||||
Removing empty block @12
|
||||
Removing empty block @13
|
||||
Removing empty block main::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies print_char_cursor
|
||||
@ -663,7 +756,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:@13
|
||||
to:@14
|
||||
print_str: scope:[print_str] from main::@1
|
||||
(byte*) print_char_cursor#27 ← phi( main::@1/(byte*) print_char_cursor#25 )
|
||||
(byte*) print_str::str#4 ← phi( main::@1/(byte*) print_str::str#1 )
|
||||
@ -734,16 +827,16 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#6 ← (byte*) print_char_cursor#16
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @begin
|
||||
@14: scope:[] from @begin
|
||||
(byte*) print_screen#6 ← phi( @begin/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#28 ← phi( @begin/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#22 ← phi( @begin/(byte*) print_line_cursor#0 )
|
||||
(byte[]) txt#0 ← (const string) $0
|
||||
to:@14
|
||||
main: scope:[main] from @14
|
||||
(byte*) print_char_cursor#24 ← phi( @14/(byte*) print_char_cursor#26 )
|
||||
(byte*) print_line_cursor#18 ← phi( @14/(byte*) print_line_cursor#20 )
|
||||
(byte*) print_screen#4 ← phi( @14/(byte*) print_screen#5 )
|
||||
to:@15
|
||||
main: scope:[main] from @15
|
||||
(byte*) print_char_cursor#24 ← phi( @15/(byte*) print_char_cursor#26 )
|
||||
(byte*) print_line_cursor#18 ← phi( @15/(byte*) print_line_cursor#20 )
|
||||
(byte*) print_screen#4 ← phi( @15/(byte*) print_screen#5 )
|
||||
call print_cls param-assignment
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main
|
||||
@ -785,25 +878,25 @@ main::@return: scope:[main] from main::@5
|
||||
(byte*) print_char_cursor#10 ← (byte*) print_char_cursor#20
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
(byte*) print_screen#5 ← phi( @13/(byte*) print_screen#6 )
|
||||
(byte*) print_char_cursor#26 ← phi( @13/(byte*) print_char_cursor#28 )
|
||||
(byte*) print_line_cursor#20 ← phi( @13/(byte*) print_line_cursor#22 )
|
||||
call main param-assignment
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
(byte*) print_char_cursor#21 ← phi( @14/(byte*) print_char_cursor#10 )
|
||||
(byte*) print_line_cursor#16 ← phi( @14/(byte*) print_line_cursor#7 )
|
||||
(byte*) print_screen#5 ← phi( @14/(byte*) print_screen#6 )
|
||||
(byte*) print_char_cursor#26 ← phi( @14/(byte*) print_char_cursor#28 )
|
||||
(byte*) print_line_cursor#20 ← phi( @14/(byte*) print_line_cursor#22 )
|
||||
call main param-assignment
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
(byte*) print_char_cursor#21 ← phi( @15/(byte*) print_char_cursor#10 )
|
||||
(byte*) print_line_cursor#16 ← phi( @15/(byte*) print_line_cursor#7 )
|
||||
(byte*) print_line_cursor#8 ← (byte*) print_line_cursor#16
|
||||
(byte*) print_char_cursor#11 ← (byte*) print_char_cursor#21
|
||||
to:@end
|
||||
@end: scope:[] from @15
|
||||
@end: scope:[] from @16
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(const string) $0 = (string) "camelot@"
|
||||
(label) @13
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @16
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
@ -1000,9 +1093,9 @@ Consolidated array index constant in *(txt#0+1)
|
||||
Succesful SSA optimization Pass2ConstantAdditionElimination
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @14
|
||||
Culled Empty Block (label) main::@3
|
||||
Culled Empty Block (label) @15
|
||||
Culled Empty Block (label) @16
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: print_char_cursor#12 print_char_cursor#25
|
||||
Not aliassing across scopes: print_line_cursor#9 print_line_cursor#19
|
||||
@ -1025,13 +1118,13 @@ Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword
|
||||
Constant inlined $0 = (const string) txt#0
|
||||
Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting main::@6(between main::@5 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@4 main::@5 main::@return main::@6 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@4 main::@5 main::@return main::@6 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@4
|
||||
@ -1060,9 +1153,9 @@ Coalesced [38] print_cls::sc#3 ← print_cls::sc#1
|
||||
Coalesced down to 5 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@4 main::@5 main::@return main::@6 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@4 main::@5 main::@return main::@6 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@4
|
||||
@ -1080,14 +1173,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@14
|
||||
@14: scope:[] from @begin
|
||||
to:@15
|
||||
@15: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @14
|
||||
main: scope:[main] from @15
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -1154,24 +1247,24 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@14 dominated by @begin @14
|
||||
@end dominated by @begin @14 @end
|
||||
main dominated by @begin @14 main
|
||||
main::@1 dominated by @begin @14 main main::@1
|
||||
main::@4 dominated by @begin @14 main main::@1 main::@4
|
||||
main::@5 dominated by @begin @14 main main::@1 main::@5 main::@4
|
||||
main::@return dominated by main::@return @begin @14 main main::@1 main::@5 main::@4
|
||||
main::@6 dominated by @begin @14 main main::@1 main::@5 main::@6 main::@4
|
||||
print_ln dominated by @begin @14 main print_ln main::@1 main::@4
|
||||
print_ln::@1 dominated by print_ln::@1 @begin @14 main print_ln main::@1 main::@4
|
||||
print_ln::@return dominated by print_ln::@1 @begin @14 main print_ln print_ln::@return main::@1 main::@4
|
||||
print_str dominated by @begin @14 main print_str main::@1
|
||||
print_str::@1 dominated by @begin @14 main print_str::@1 print_str main::@1
|
||||
print_str::@return dominated by @begin @14 print_str::@return main print_str::@1 print_str main::@1
|
||||
print_str::@2 dominated by @begin @14 main print_str::@1 print_str::@2 print_str main::@1
|
||||
print_cls dominated by @begin @14 main print_cls
|
||||
print_cls::@1 dominated by @begin @14 print_cls::@1 main print_cls
|
||||
print_cls::@return dominated by @begin @14 print_cls::@1 main print_cls print_cls::@return
|
||||
@15 dominated by @begin @15
|
||||
@end dominated by @begin @15 @end
|
||||
main dominated by @begin @15 main
|
||||
main::@1 dominated by @begin @15 main main::@1
|
||||
main::@4 dominated by @begin @15 main main::@1 main::@4
|
||||
main::@5 dominated by @begin @15 main main::@1 main::@5 main::@4
|
||||
main::@return dominated by main::@return @begin @15 main main::@1 main::@5 main::@4
|
||||
main::@6 dominated by @begin @15 main main::@1 main::@5 main::@6 main::@4
|
||||
print_ln dominated by @begin @15 main print_ln main::@1 main::@4
|
||||
print_ln::@1 dominated by print_ln::@1 @begin @15 main print_ln main::@1 main::@4
|
||||
print_ln::@return dominated by print_ln::@1 @begin @15 main print_ln print_ln::@return main::@1 main::@4
|
||||
print_str dominated by @begin @15 main print_str main::@1
|
||||
print_str::@1 dominated by @begin @15 main print_str::@1 print_str main::@1
|
||||
print_str::@return dominated by @begin @15 print_str::@return main print_str::@1 print_str main::@1
|
||||
print_str::@2 dominated by @begin @15 main print_str::@1 print_str::@2 print_str main::@1
|
||||
print_cls dominated by @begin @15 main print_cls
|
||||
print_cls::@1 dominated by @begin @15 print_cls::@1 main print_cls
|
||||
print_cls::@return dominated by @begin @15 print_cls::@1 main print_cls print_cls::@return
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@6 blocks: null
|
||||
@ -1257,17 +1350,17 @@ INITIAL ASM
|
||||
.label print_line_cursor = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
b14_from_bbegin:
|
||||
jmp b14
|
||||
//SEG4 @14
|
||||
b14:
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
b15_from_bbegin:
|
||||
jmp b15
|
||||
//SEG4 @15
|
||||
b15:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
main_from_b14:
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
main_from_b15:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
bend_from_b14:
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
bend_from_b15:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -1514,17 +1607,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_line_cursor = 2
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
b14_from_bbegin:
|
||||
jmp b14
|
||||
//SEG4 @14
|
||||
b14:
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
b15_from_bbegin:
|
||||
jmp b15
|
||||
//SEG4 @15
|
||||
b15:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
main_from_b14:
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
main_from_b15:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
bend_from_b14:
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
bend_from_b15:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -1717,7 +1810,7 @@ print_cls: {
|
||||
txt: .text "camelot@"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b14
|
||||
Removing instruction jmp b15
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b4
|
||||
@ -1737,9 +1830,9 @@ Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b14_from_bbegin:
|
||||
Removing instruction main_from_b14:
|
||||
Removing instruction bend_from_b14:
|
||||
Removing instruction b15_from_bbegin:
|
||||
Removing instruction main_from_b15:
|
||||
Removing instruction bend_from_b15:
|
||||
Removing instruction print_str_from_b1:
|
||||
Removing instruction b4_from_b1:
|
||||
Removing instruction print_ln_from_b4:
|
||||
@ -1747,7 +1840,7 @@ Removing instruction b1_from_print_ln:
|
||||
Removing instruction b1_from_b1:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b14:
|
||||
Removing instruction b15:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1_from_main:
|
||||
@ -1766,7 +1859,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
@ -1824,12 +1917,12 @@ Score: 11128
|
||||
.label print_char_cursor = 6
|
||||
.label print_line_cursor = 2
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
//SEG4 @14
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
//SEG4 @15
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@22
|
||||
@22: scope:[] from @begin
|
||||
to:@23
|
||||
@23: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @22
|
||||
@end: scope:[] from @23
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @22
|
||||
main: scope:[main] from @23
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call lin16u_gen param-assignment [ divr16u::rem#11 ] ( main:2 [ divr16u::rem#11 ] )
|
||||
to:main::@3
|
||||
|
@ -214,6 +214,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -228,13 +248,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -311,6 +324,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -532,6 +547,35 @@ endproc // div16s()
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -560,12 +604,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -1001,6 +1039,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -1322,6 +1374,54 @@ div16s::@14: scope:[div16s] from
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@8
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -1344,8 +1444,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -1368,17 +1468,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -1393,8 +1484,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -1412,8 +1503,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -1431,8 +1522,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -1442,8 +1533,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -1453,8 +1544,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -1472,8 +1563,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
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
|
||||
@ -1484,8 +1575,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -1493,8 +1584,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -1512,8 +1603,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -1522,8 +1613,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
main: scope:[main] from
|
||||
(word[20]) main::lintab1 ← { fill( 20, 0) }
|
||||
(void~) main::$0 ← call lin16u_gen (word/signed word/dword/signed dword) 557 (word/signed word/dword/signed dword) 29793 (word[20]) main::lintab1 (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
@ -1568,8 +1659,8 @@ main::@2: scope:[main] from main::@1
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
lin16u_gen: scope:[lin16u_gen] from
|
||||
(word~) lin16u_gen::$0 ← (word) lin16u_gen::max - (word) lin16u_gen::min
|
||||
(word) lin16u_gen::ampl ← (word~) lin16u_gen::$0
|
||||
@ -1599,16 +1690,17 @@ lin16u_gen::@2: scope:[lin16u_gen] from lin16u_gen::@1
|
||||
lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@2
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
@23: scope:[] from @22
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @22
|
||||
@end: scope:[] from @23
|
||||
|
||||
Removing unused procedure div32u16u
|
||||
Removing unused procedure div8s
|
||||
Removing unused procedure div16s
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
@ -1666,12 +1758,12 @@ Removing empty block @3
|
||||
Removing empty block @4
|
||||
Removing empty block @5
|
||||
Removing empty block @6
|
||||
Removing empty block @8
|
||||
Removing empty block @9
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @8
|
||||
Removing empty block @9
|
||||
Removing empty block @10
|
||||
Removing empty block @11
|
||||
Removing empty block @12
|
||||
@ -1684,6 +1776,7 @@ Removing empty block @18
|
||||
Removing empty block @19
|
||||
Removing empty block @20
|
||||
Removing empty block @21
|
||||
Removing empty block @22
|
||||
Removing empty block lin16u_gen::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
divr16u modifies rem16u
|
||||
@ -1815,7 +1908,7 @@ divr16u::@return: scope:[divr16u] from divr16u::@6
|
||||
(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:@22
|
||||
to:@23
|
||||
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 )
|
||||
@ -1946,11 +2039,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#14 ← (byte*) print_char_cursor#52
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @22
|
||||
(byte*) print_char_cursor#89 ← phi( @22/(byte*) print_char_cursor#85 )
|
||||
(byte*) print_line_cursor#35 ← phi( @22/(byte*) print_line_cursor#26 )
|
||||
(byte*) print_screen#7 ← phi( @22/(byte*) print_screen#8 )
|
||||
(word) rem16u#20 ← phi( @22/(word) rem16u#24 )
|
||||
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_screen#7 ← phi( @23/(byte*) print_screen#8 )
|
||||
(word) rem16u#20 ← phi( @23/(word) rem16u#24 )
|
||||
(word[20]) main::lintab1#0 ← { fill( 20, 0) }
|
||||
(word) lin16u_gen::min#0 ← (word/signed word/dword/signed dword) 557
|
||||
(word) lin16u_gen::max#0 ← (word/signed word/dword/signed dword) 29793
|
||||
@ -2276,27 +2369,27 @@ lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1
|
||||
(word) rem16u#9 ← (word) rem16u#18
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @7
|
||||
@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 )
|
||||
call main param-assignment
|
||||
to:@23
|
||||
@23: scope:[] from @22
|
||||
(byte*) print_char_cursor#77 ← phi( @22/(byte*) print_char_cursor#38 )
|
||||
(byte*) print_line_cursor#20 ← phi( @22/(byte*) print_line_cursor#9 )
|
||||
(word) rem16u#19 ← phi( @22/(word) rem16u#6 )
|
||||
to:@24
|
||||
@24: scope:[] from @23
|
||||
(byte*) print_char_cursor#77 ← phi( @23/(byte*) print_char_cursor#38 )
|
||||
(byte*) print_line_cursor#20 ← phi( @23/(byte*) print_line_cursor#9 )
|
||||
(word) rem16u#19 ← phi( @23/(word) rem16u#6 )
|
||||
(word) rem16u#10 ← (word) rem16u#19
|
||||
(byte*) print_line_cursor#10 ← (byte*) print_line_cursor#20
|
||||
(byte*) print_char_cursor#39 ← (byte*) print_char_cursor#77
|
||||
to:@end
|
||||
@end: scope:[] from @23
|
||||
@end: scope:[] from @24
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @2
|
||||
(label) @22
|
||||
(label) @23
|
||||
(label) @24
|
||||
(label) @7
|
||||
(label) @begin
|
||||
(label) @end
|
||||
@ -3235,7 +3328,7 @@ Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) main::@13
|
||||
Culled Empty Block (label) main::@28
|
||||
Culled Empty Block (label) @23
|
||||
Culled Empty Block (label) @24
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1
|
||||
Not aliassing across scopes: divr16u::divisor#6 divr16u::divisor#0
|
||||
@ -3473,7 +3566,7 @@ Constant inlined print_str::str#6 = (const string) main::str5
|
||||
Constant inlined lin16u_gen::lintab#0 = (const word[20]) main::lintab1#0
|
||||
Constant inlined print_str::str#5 = (const string) main::str4
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @22 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return
|
||||
Block Sequence Planned @begin @23 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return
|
||||
Added new block during phi lifting main::@29(between main::@21 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
@ -3481,9 +3574,9 @@ Added new block during phi lifting lin16u_gen::@5(between lin16u_gen::@1 and lin
|
||||
Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1)
|
||||
Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2)
|
||||
Added new block during phi lifting divr16u::@10(between divr16u::@2 and divr16u::@3)
|
||||
Block Sequence Planned @begin @22 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return main::@29 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3 lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return lin16u_gen::@5 divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9
|
||||
Block Sequence Planned @begin @23 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return main::@29 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3 lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return lin16u_gen::@5 divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @22
|
||||
Adding NOP phi() at start of @23
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -3588,9 +3681,9 @@ Culled Empty Block (label) divr16u::@6
|
||||
Culled Empty Block (label) divr16u::@8
|
||||
Culled Empty Block (label) divr16u::@10
|
||||
Culled Empty Block (label) divr16u::@9
|
||||
Block Sequence Planned @begin @22 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return
|
||||
Block Sequence Planned @begin @23 @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@1 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@2 main::@22 main::@23 main::@24 main::@25 main::@26 main::@27 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return lin16u_gen lin16u_gen::@3 lin16u_gen::@4 lin16u_gen::@1 lin16u_gen::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @22
|
||||
Adding NOP phi() at start of @23
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -3634,14 +3727,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@22
|
||||
@22: scope:[] from @begin
|
||||
to:@23
|
||||
@23: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @22
|
||||
@end: scope:[] from @23
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @22
|
||||
main: scope:[main] from @23
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call lin16u_gen param-assignment [ divr16u::rem#11 ] ( main:2 [ divr16u::rem#11 ] )
|
||||
to:main::@3
|
||||
@ -3908,66 +4001,66 @@ divr16u::@return: scope:[divr16u] from divr16u::@3
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@22 dominated by @22 @begin
|
||||
@end dominated by @22 @end @begin
|
||||
main dominated by @22 main @begin
|
||||
main::@3 dominated by @22 main main::@3 @begin
|
||||
main::@4 dominated by @22 main main::@3 main::@4 @begin
|
||||
main::@5 dominated by @22 main main::@5 main::@3 main::@4 @begin
|
||||
main::@6 dominated by @22 main main::@5 main::@6 main::@3 main::@4 @begin
|
||||
main::@7 dominated by @22 main::@7 main main::@5 main::@6 main::@3 main::@4 @begin
|
||||
main::@8 dominated by @22 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin
|
||||
main::@9 dominated by @22 main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin
|
||||
main::@10 dominated by @22 main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@10
|
||||
main::@11 dominated by @22 main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10
|
||||
main::@12 dominated by @22 main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@12
|
||||
main::@1 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@12
|
||||
main::@14 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@12 main::@14
|
||||
main::@15 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@16 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@17 main::@16 main::@12 main::@15 main::@14
|
||||
main::@18 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@17 main::@16 main::@18 main::@12 main::@15 main::@14
|
||||
main::@19 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@20 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@21 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@21 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@2 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@21 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@22 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@23 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@23 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@24 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@25 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@25 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@26 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@27 dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@27 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@return dominated by @22 main::@9 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@return main::@22 main::@21 main::@27 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
print_ln dominated by @22 main::@9 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 main::@12
|
||||
print_ln::@1 dominated by @22 main::@9 print_ln::@1 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 main::@12
|
||||
print_ln::@return dominated by @22 main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 main::@12
|
||||
print_word dominated by @22 main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin
|
||||
print_word::@1 dominated by @22 main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin print_word::@1
|
||||
print_word::@return dominated by @22 main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin print_word::@return print_word::@1
|
||||
print_byte dominated by @22 main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte
|
||||
print_byte::@1 dominated by @22 main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte::@1 print_byte
|
||||
print_byte::@return dominated by @22 main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte::@return print_byte::@1 print_byte
|
||||
print_char dominated by @22 main::@7 main print_char main::@5 main::@6 main::@3 main::@4 @begin print_byte
|
||||
print_char::@return dominated by @22 main::@7 main print_char main::@5 main::@6 main::@3 main::@4 print_char::@return @begin print_byte
|
||||
print_str dominated by @22 main main::@5 main::@6 main::@3 main::@4 @begin print_str
|
||||
print_str::@1 dominated by @22 main main::@5 main::@6 main::@3 main::@4 @begin print_str::@1 print_str
|
||||
print_str::@return dominated by @22 main main::@5 main::@6 main::@3 main::@4 @begin print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by @22 main main::@5 main::@6 main::@3 main::@4 @begin print_str::@1 print_str::@2 print_str
|
||||
print_cls dominated by @22 main main::@5 main::@3 main::@4 @begin print_cls
|
||||
print_cls::@1 dominated by @22 main main::@5 main::@3 main::@4 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by @22 main main::@5 main::@3 main::@4 @begin print_cls::@return print_cls::@1 print_cls
|
||||
lin16u_gen dominated by @22 main @begin lin16u_gen
|
||||
lin16u_gen::@3 dominated by @22 main @begin lin16u_gen::@3 lin16u_gen
|
||||
lin16u_gen::@4 dominated by @22 main @begin lin16u_gen::@3 lin16u_gen::@4 lin16u_gen
|
||||
lin16u_gen::@1 dominated by @22 main @begin lin16u_gen::@3 lin16u_gen::@1 lin16u_gen::@4 lin16u_gen
|
||||
lin16u_gen::@return dominated by @22 main @begin lin16u_gen::@3 lin16u_gen::@1 lin16u_gen::@4 lin16u_gen::@return lin16u_gen
|
||||
divr16u dominated by @22 divr16u main @begin lin16u_gen
|
||||
divr16u::@1 dominated by @22 divr16u divr16u::@1 main @begin lin16u_gen
|
||||
divr16u::@4 dominated by @22 divr16u divr16u::@1 main divr16u::@4 @begin lin16u_gen
|
||||
divr16u::@2 dominated by @22 divr16u divr16u::@2 divr16u::@1 main @begin lin16u_gen
|
||||
divr16u::@5 dominated by @22 divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @begin lin16u_gen
|
||||
divr16u::@3 dominated by @22 divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @begin lin16u_gen
|
||||
divr16u::@return dominated by @22 divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @begin lin16u_gen divr16u::@return
|
||||
@23 dominated by @23 @begin
|
||||
@end dominated by @23 @end @begin
|
||||
main dominated by @23 main @begin
|
||||
main::@3 dominated by @23 main main::@3 @begin
|
||||
main::@4 dominated by @23 main main::@3 main::@4 @begin
|
||||
main::@5 dominated by @23 main main::@5 main::@3 main::@4 @begin
|
||||
main::@6 dominated by @23 main main::@5 main::@6 main::@3 main::@4 @begin
|
||||
main::@7 dominated by @23 main::@7 main main::@5 main::@6 main::@3 main::@4 @begin
|
||||
main::@8 dominated by @23 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin
|
||||
main::@9 dominated by main::@9 @23 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin
|
||||
main::@10 dominated by main::@9 @23 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@10
|
||||
main::@11 dominated by main::@9 @23 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10
|
||||
main::@12 dominated by main::@9 @23 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@12
|
||||
main::@1 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@12
|
||||
main::@14 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@16 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@17 main::@16 main::@12 main::@15 main::@14
|
||||
main::@18 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@17 main::@16 main::@18 main::@12 main::@15 main::@14
|
||||
main::@19 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@20 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@21 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@21 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@2 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@21 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@22 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@23 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@23 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@24 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@25 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@25 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@26 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@27 dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@22 main::@21 main::@27 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 @23 main::@7 main::@8 main main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@20 main::@return main::@22 main::@21 main::@27 main::@24 main::@23 main::@26 main::@25 main::@11 main::@10 main::@17 main::@16 main::@19 main::@18 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 @23 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 main::@12
|
||||
print_ln::@1 dominated by main::@9 @23 print_ln::@1 main::@7 main::@8 main main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 main::@12
|
||||
print_ln::@return dominated by main::@9 @23 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@5 main::@6 main::@3 main::@4 @begin print_ln main::@11 main::@10 main::@12
|
||||
print_word dominated by @23 main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin
|
||||
print_word::@1 dominated by @23 main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin print_word::@1
|
||||
print_word::@return dominated by @23 main::@7 main print_word main::@5 main::@6 main::@3 main::@4 @begin print_word::@return print_word::@1
|
||||
print_byte dominated by @23 main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte
|
||||
print_byte::@1 dominated by @23 main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte::@1 print_byte
|
||||
print_byte::@return dominated by @23 main::@7 main main::@5 main::@6 main::@3 main::@4 @begin print_byte::@return print_byte::@1 print_byte
|
||||
print_char dominated by @23 main::@7 main print_char main::@5 main::@6 main::@3 main::@4 @begin print_byte
|
||||
print_char::@return dominated by @23 main::@7 main print_char main::@5 main::@6 main::@3 main::@4 print_char::@return @begin print_byte
|
||||
print_str dominated by @23 main main::@5 main::@6 main::@3 main::@4 @begin print_str
|
||||
print_str::@1 dominated by @23 main main::@5 main::@6 main::@3 main::@4 @begin print_str::@1 print_str
|
||||
print_str::@return dominated by @23 main main::@5 main::@6 main::@3 main::@4 @begin print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by @23 main main::@5 main::@6 main::@3 main::@4 @begin print_str::@1 print_str::@2 print_str
|
||||
print_cls dominated by @23 main main::@5 main::@3 main::@4 @begin print_cls
|
||||
print_cls::@1 dominated by @23 main main::@5 main::@3 main::@4 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by @23 main main::@5 main::@3 main::@4 @begin print_cls::@return print_cls::@1 print_cls
|
||||
lin16u_gen dominated by @23 main @begin lin16u_gen
|
||||
lin16u_gen::@3 dominated by @23 main @begin lin16u_gen::@3 lin16u_gen
|
||||
lin16u_gen::@4 dominated by @23 main @begin lin16u_gen::@3 lin16u_gen::@4 lin16u_gen
|
||||
lin16u_gen::@1 dominated by @23 main @begin lin16u_gen::@3 lin16u_gen::@1 lin16u_gen::@4 lin16u_gen
|
||||
lin16u_gen::@return dominated by @23 main @begin lin16u_gen::@3 lin16u_gen::@1 lin16u_gen::@4 lin16u_gen::@return lin16u_gen
|
||||
divr16u dominated by divr16u @23 main @begin lin16u_gen
|
||||
divr16u::@1 dominated by divr16u @23 divr16u::@1 main @begin lin16u_gen
|
||||
divr16u::@4 dominated by divr16u @23 divr16u::@1 main divr16u::@4 @begin lin16u_gen
|
||||
divr16u::@2 dominated by divr16u @23 divr16u::@2 divr16u::@1 main @begin lin16u_gen
|
||||
divr16u::@5 dominated by divr16u @23 divr16u::@2 divr16u::@1 main divr16u::@5 @begin lin16u_gen
|
||||
divr16u::@3 dominated by divr16u @23 divr16u::@2 divr16u::@1 main divr16u::@3 @begin lin16u_gen
|
||||
divr16u::@return dominated by divr16u @23 divr16u::@2 divr16u::@1 main divr16u::@3 @begin lin16u_gen divr16u::@return
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@21 blocks: null
|
||||
@ -4232,17 +4325,17 @@ INITIAL ASM
|
||||
.label rem16u = $1f
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @22 [phi:@begin->@22]
|
||||
b22_from_bbegin:
|
||||
jmp b22
|
||||
//SEG4 @22
|
||||
b22:
|
||||
//SEG3 [1] phi from @begin to @23 [phi:@begin->@23]
|
||||
b23_from_bbegin:
|
||||
jmp b23
|
||||
//SEG4 @23
|
||||
b23:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @22 to main [phi:@22->main]
|
||||
main_from_b22:
|
||||
//SEG6 [4] phi from @23 to main [phi:@23->main]
|
||||
main_from_b23:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @22 to @end [phi:@22->@end]
|
||||
bend_from_b22:
|
||||
//SEG7 [3] phi from @23 to @end [phi:@23->@end]
|
||||
bend_from_b23:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -5372,17 +5465,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label rem16u = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @22 [phi:@begin->@22]
|
||||
b22_from_bbegin:
|
||||
jmp b22
|
||||
//SEG4 @22
|
||||
b22:
|
||||
//SEG3 [1] phi from @begin to @23 [phi:@begin->@23]
|
||||
b23_from_bbegin:
|
||||
jmp b23
|
||||
//SEG4 @23
|
||||
b23:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @22 to main [phi:@22->main]
|
||||
main_from_b22:
|
||||
//SEG6 [4] phi from @23 to main [phi:@23->main]
|
||||
main_from_b23:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @22 to @end [phi:@22->@end]
|
||||
bend_from_b22:
|
||||
//SEG7 [3] phi from @23 to @end [phi:@23->@end]
|
||||
bend_from_b23:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -6317,7 +6410,7 @@ divr16u: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b22
|
||||
Removing instruction jmp b23
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b3
|
||||
Removing instruction jmp b4
|
||||
@ -6393,9 +6486,9 @@ Replacing label b3_from_b2 with b3
|
||||
Replacing label b3_from_b2 with b3
|
||||
Replacing label b1_from_b3 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b22_from_bbegin:
|
||||
Removing instruction main_from_b22:
|
||||
Removing instruction bend_from_b22:
|
||||
Removing instruction b23_from_bbegin:
|
||||
Removing instruction main_from_b23:
|
||||
Removing instruction bend_from_b23:
|
||||
Removing instruction b3_from_main:
|
||||
Removing instruction lin16u_gen_from_b3:
|
||||
Removing instruction b4_from_b3:
|
||||
@ -6449,7 +6542,7 @@ Removing instruction b2_from_b4:
|
||||
Removing instruction b3_from_b2:
|
||||
Removing instruction b3_from_b5:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b22:
|
||||
Removing instruction b23:
|
||||
Removing instruction bend:
|
||||
Removing instruction lin16u_gen_from_main:
|
||||
Removing instruction b3:
|
||||
@ -6515,7 +6608,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @22
|
||||
(label) @23
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
||||
@ -6725,12 +6818,12 @@ Score: 13624
|
||||
.label print_line_cursor = 3
|
||||
.label rem16u = 3
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @22 [phi:@begin->@22]
|
||||
//SEG4 @22
|
||||
//SEG3 [1] phi from @begin to @23 [phi:@begin->@23]
|
||||
//SEG4 @23
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @22 to main [phi:@22->main]
|
||||
//SEG6 [4] phi from @23 to main [phi:@23->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @22 to @end [phi:@22->@end]
|
||||
//SEG7 [3] phi from @23 to @end [phi:@23->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @22
|
||||
(label) @23
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@14
|
||||
@14: scope:[] from @begin
|
||||
to:@15
|
||||
@15: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @14
|
||||
main: scope:[main] from @15
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_str param-assignment [ print_char_cursor#13 ] ( main:2 [ print_char_cursor#13 ] )
|
||||
to:main::@1
|
||||
|
@ -21,6 +21,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -35,13 +55,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -118,6 +131,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -129,6 +144,35 @@ STATEMENTS
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -157,12 +201,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -360,6 +398,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -390,6 +442,54 @@ INITIAL CONTROL FLOW GRAPH
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@1
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -412,8 +512,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -436,17 +536,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -461,8 +552,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -480,8 +571,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -499,8 +590,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -510,8 +601,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -521,8 +612,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -540,8 +631,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
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
|
||||
@ -552,8 +643,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -561,8 +652,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -580,8 +671,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -590,11 +681,11 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
@14: scope:[] from @13
|
||||
(byte[]) msg ← (string) "hello world! @"
|
||||
(byte[]) msg2 ← (string) "hello c64! @"
|
||||
(byte[]) msg3 ← (string) "hello 2017! @"
|
||||
to:@14
|
||||
to:@15
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_str (byte[]) msg
|
||||
(void~) main::$1 ← call print_ln
|
||||
@ -606,13 +697,14 @@ main: scope:[main] from
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
@15: scope:[] from @14
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
@ -631,12 +723,12 @@ Eliminating unused variable - keeping the call (void~) main::$5
|
||||
Creating constant string variable for inline (const string) $0 "hello world! @"
|
||||
Creating constant string variable for inline (const string) $1 "hello c64! @"
|
||||
Creating constant string variable for inline (const string) $2 "hello 2017! @"
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block @3
|
||||
Removing empty block @4
|
||||
Removing empty block @5
|
||||
@ -647,6 +739,7 @@ Removing empty block @9
|
||||
Removing empty block @10
|
||||
Removing empty block @11
|
||||
Removing empty block @12
|
||||
Removing empty block @13
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies print_char_cursor
|
||||
print_ln modifies print_line_cursor
|
||||
@ -663,7 +756,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:@13
|
||||
to:@14
|
||||
print_str: scope:[print_str] from main main::@2 main::@4
|
||||
(byte*) print_char_cursor#29 ← phi( main/(byte*) print_char_cursor#27 main::@2/(byte*) print_char_cursor#6 main::@4/(byte*) print_char_cursor#8 )
|
||||
(byte*) print_str::str#6 ← phi( main/(byte*) print_str::str#1 main::@2/(byte*) print_str::str#2 main::@4/(byte*) print_str::str#3 )
|
||||
@ -709,16 +802,16 @@ print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
(byte*) print_char_cursor#4 ← (byte*) print_char_cursor#16
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @begin
|
||||
@14: scope:[] from @begin
|
||||
(byte*) print_line_cursor#22 ← phi( @begin/(byte*) print_line_cursor#0 )
|
||||
(byte*) print_char_cursor#30 ← phi( @begin/(byte*) print_char_cursor#0 )
|
||||
(byte[]) msg#0 ← (const string) $0
|
||||
(byte[]) msg2#0 ← (const string) $1
|
||||
(byte[]) msg3#0 ← (const string) $2
|
||||
to:@14
|
||||
main: scope:[main] from @14
|
||||
(byte*) print_line_cursor#21 ← phi( @14/(byte*) print_line_cursor#20 )
|
||||
(byte*) print_char_cursor#27 ← phi( @14/(byte*) print_char_cursor#28 )
|
||||
to:@15
|
||||
main: scope:[main] from @15
|
||||
(byte*) print_line_cursor#21 ← phi( @15/(byte*) print_line_cursor#20 )
|
||||
(byte*) print_char_cursor#27 ← phi( @15/(byte*) print_char_cursor#28 )
|
||||
(byte*) print_str::str#1 ← (byte[]) msg#0
|
||||
call print_str param-assignment
|
||||
to:main::@1
|
||||
@ -769,26 +862,26 @@ main::@return: scope:[main] from main::@6
|
||||
(byte*) print_line_cursor#6 ← (byte*) print_line_cursor#14
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
(byte*) print_line_cursor#20 ← phi( @13/(byte*) print_line_cursor#22 )
|
||||
(byte*) print_char_cursor#28 ← phi( @13/(byte*) print_char_cursor#30 )
|
||||
call main param-assignment
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
(byte*) print_line_cursor#15 ← phi( @14/(byte*) print_line_cursor#6 )
|
||||
(byte*) print_char_cursor#24 ← phi( @14/(byte*) print_char_cursor#11 )
|
||||
(byte*) print_line_cursor#20 ← phi( @14/(byte*) print_line_cursor#22 )
|
||||
(byte*) print_char_cursor#28 ← phi( @14/(byte*) print_char_cursor#30 )
|
||||
call main param-assignment
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
(byte*) print_line_cursor#15 ← phi( @15/(byte*) print_line_cursor#6 )
|
||||
(byte*) print_char_cursor#24 ← phi( @15/(byte*) print_char_cursor#11 )
|
||||
(byte*) print_char_cursor#12 ← (byte*) print_char_cursor#24
|
||||
(byte*) print_line_cursor#7 ← (byte*) print_line_cursor#15
|
||||
to:@end
|
||||
@end: scope:[] from @15
|
||||
@end: scope:[] from @16
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(const string) $0 = (string) "hello world! @"
|
||||
(const string) $1 = (string) "hello c64! @"
|
||||
(const string) $2 = (string) "hello 2017! @"
|
||||
(label) @13
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @16
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
@ -973,9 +1066,9 @@ Constant (const string) print_str::str#2 = msg2#0
|
||||
Constant (const string) print_str::str#3 = msg3#0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @14
|
||||
Culled Empty Block (label) main::@6
|
||||
Culled Empty Block (label) @15
|
||||
Culled Empty Block (label) @16
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
OPTIMIZING CONTROL FLOW GRAPH
|
||||
Inlining constant with var siblings (const string) print_str::str#1
|
||||
@ -998,11 +1091,11 @@ Constant inlined $0 = (const string) msg#0
|
||||
Constant inlined $1 = (const string) msg2#0
|
||||
Constant inlined $2 = (const string) msg3#0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -1031,9 +1124,9 @@ Coalesced [33] print_str::str#8 ← print_str::str#0
|
||||
Coalesced [34] print_char_cursor#34 ← print_char_cursor#1
|
||||
Coalesced down to 3 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -1050,14 +1143,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@14
|
||||
@14: scope:[] from @begin
|
||||
to:@15
|
||||
@15: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @14
|
||||
main: scope:[main] from @15
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_str param-assignment [ print_char_cursor#13 ] ( main:2 [ print_char_cursor#13 ] )
|
||||
to:main::@1
|
||||
@ -1115,22 +1208,22 @@ print_str::@2: scope:[print_str] from print_str::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@14 dominated by @begin @14
|
||||
@end dominated by @begin @14 @end
|
||||
main dominated by @begin @14 main
|
||||
main::@1 dominated by @begin @14 main main::@1
|
||||
main::@2 dominated by @begin @14 main main::@1 main::@2
|
||||
main::@3 dominated by @begin @14 main main::@1 main::@2 main::@3
|
||||
main::@4 dominated by @begin @14 main main::@1 main::@2 main::@3 main::@4
|
||||
main::@5 dominated by @begin @14 main main::@1 main::@2 main::@5 main::@3 main::@4
|
||||
main::@return dominated by main::@return @begin @14 main main::@1 main::@2 main::@5 main::@3 main::@4
|
||||
print_ln dominated by @begin @14 main print_ln main::@1
|
||||
print_ln::@1 dominated by print_ln::@1 @begin @14 main print_ln main::@1
|
||||
print_ln::@return dominated by print_ln::@1 @begin @14 main print_ln print_ln::@return main::@1
|
||||
print_str dominated by @begin @14 main print_str
|
||||
print_str::@1 dominated by @begin @14 main print_str::@1 print_str
|
||||
print_str::@return dominated by @begin @14 print_str::@return main print_str::@1 print_str
|
||||
print_str::@2 dominated by @begin @14 main print_str::@1 print_str::@2 print_str
|
||||
@15 dominated by @begin @15
|
||||
@end dominated by @begin @15 @end
|
||||
main dominated by @begin @15 main
|
||||
main::@1 dominated by @begin @15 main main::@1
|
||||
main::@2 dominated by @begin @15 main main::@1 main::@2
|
||||
main::@3 dominated by @begin @15 main main::@1 main::@2 main::@3
|
||||
main::@4 dominated by @begin @15 main main::@1 main::@2 main::@3 main::@4
|
||||
main::@5 dominated by @begin @15 main main::@1 main::@2 main::@5 main::@3 main::@4
|
||||
main::@return dominated by main::@return @begin @15 main main::@1 main::@2 main::@5 main::@3 main::@4
|
||||
print_ln dominated by @begin @15 main print_ln main::@1
|
||||
print_ln::@1 dominated by print_ln::@1 @begin @15 main print_ln main::@1
|
||||
print_ln::@return dominated by print_ln::@1 @begin @15 main print_ln print_ln::@return main::@1
|
||||
print_str dominated by @begin @15 main print_str
|
||||
print_str::@1 dominated by @begin @15 main print_str::@1 print_str
|
||||
print_str::@return dominated by @begin @15 print_str::@return main print_str::@1 print_str
|
||||
print_str::@2 dominated by @begin @15 main print_str::@1 print_str::@2 print_str
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: print_ln::@1 tails: print_ln::@1 blocks: null
|
||||
@ -1196,17 +1289,17 @@ INITIAL ASM
|
||||
.label print_line_cursor = 2
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
b14_from_bbegin:
|
||||
jmp b14
|
||||
//SEG4 @14
|
||||
b14:
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
b15_from_bbegin:
|
||||
jmp b15
|
||||
//SEG4 @15
|
||||
b15:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
main_from_b14:
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
main_from_b15:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
bend_from_b14:
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
bend_from_b15:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -1410,17 +1503,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_line_cursor = 2
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
b14_from_bbegin:
|
||||
jmp b14
|
||||
//SEG4 @14
|
||||
b14:
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
b15_from_bbegin:
|
||||
jmp b15
|
||||
//SEG4 @15
|
||||
b15:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
main_from_b14:
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
main_from_b15:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
bend_from_b14:
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
bend_from_b15:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -1593,7 +1686,7 @@ print_str: {
|
||||
msg3: .text "hello 2017! @"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b14
|
||||
Removing instruction jmp b15
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b2
|
||||
@ -1612,9 +1705,9 @@ Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b2 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b14_from_bbegin:
|
||||
Removing instruction main_from_b14:
|
||||
Removing instruction bend_from_b14:
|
||||
Removing instruction b15_from_bbegin:
|
||||
Removing instruction main_from_b15:
|
||||
Removing instruction bend_from_b15:
|
||||
Removing instruction b1_from_main:
|
||||
Removing instruction print_ln_from_b1:
|
||||
Removing instruction b3_from_b2:
|
||||
@ -1626,7 +1719,7 @@ Removing instruction b1_from_b1:
|
||||
Removing instruction b1_from_print_str:
|
||||
Removing instruction b1_from_b2:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b14:
|
||||
Removing instruction b15:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_str_from_main:
|
||||
Removing instruction b1:
|
||||
@ -1642,7 +1735,7 @@ Removing instruction breturn:
|
||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
@ -1697,12 +1790,12 @@ Score: 1039
|
||||
.label print_char_cursor = 6
|
||||
.label print_line_cursor = 2
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
//SEG4 @14
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
//SEG4 @15
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@41
|
||||
@41: scope:[] from @begin
|
||||
to:@42
|
||||
@42: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @41
|
||||
@end: scope:[] from @42
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @41
|
||||
main: scope:[main] from @42
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call setFAC param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@3
|
||||
|
@ -30,6 +30,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -44,13 +64,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -127,6 +140,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -417,6 +432,35 @@ STATEMENTS
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -445,12 +489,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -867,6 +905,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -941,6 +993,54 @@ INITIAL CONTROL FLOW GRAPH
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@1
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -963,8 +1063,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -987,17 +1087,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -1012,8 +1103,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -1031,8 +1122,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -1050,8 +1141,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -1061,8 +1152,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -1072,8 +1163,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -1091,8 +1182,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
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
|
||||
@ -1103,8 +1194,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -1112,8 +1203,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -1131,8 +1222,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -1141,10 +1232,10 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
@14: scope:[] from @13
|
||||
(byte*) memLo ← ((byte*)) (byte/word/signed word/dword/signed dword) 254
|
||||
(byte*) memHi ← ((byte*)) (byte/word/signed word/dword/signed dword) 255
|
||||
to:@14
|
||||
to:@15
|
||||
prepareMEM: scope:[prepareMEM] from
|
||||
(byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem
|
||||
*((byte*) memLo) ← (byte~) prepareMEM::$0
|
||||
@ -1154,8 +1245,8 @@ prepareMEM: scope:[prepareMEM] from
|
||||
prepareMEM::@return: scope:[prepareMEM] from prepareMEM
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
setFAC: scope:[setFAC] from
|
||||
(byte*~) setFAC::$0 ← ((byte*)) (word) setFAC::w
|
||||
(void~) setFAC::$1 ← call prepareMEM (byte*~) setFAC::$0
|
||||
@ -1164,8 +1255,8 @@ setFAC: scope:[setFAC] from
|
||||
setFAC::@return: scope:[setFAC] from setFAC
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
getFAC: scope:[getFAC] from
|
||||
asm { jsr$b1aa sty$fe sta$ff }
|
||||
(word) getFAC::w ← { *((byte*) memHi), *((byte*) memLo) }
|
||||
@ -1177,24 +1268,24 @@ getFAC::@return: scope:[getFAC] from getFAC getFAC::@1
|
||||
to:@return
|
||||
getFAC::@1: scope:[getFAC] from
|
||||
to:getFAC::@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
setARGtoFAC: scope:[setARGtoFAC] from
|
||||
asm { jsr$bc0f }
|
||||
to:setARGtoFAC::@return
|
||||
setARGtoFAC::@return: scope:[setARGtoFAC] from setARGtoFAC
|
||||
return
|
||||
to:@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
setFACtoARG: scope:[setFACtoARG] from
|
||||
asm { jsr$bbfc }
|
||||
to:setFACtoARG::@return
|
||||
setFACtoARG::@return: scope:[setFACtoARG] from setFACtoARG
|
||||
return
|
||||
to:@return
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
setMEMtoFAC: scope:[setMEMtoFAC] from
|
||||
(void~) setMEMtoFAC::$0 ← call prepareMEM (byte*) setMEMtoFAC::mem
|
||||
asm { ldx$fe ldy$ff jsr$bbd4 }
|
||||
@ -1202,8 +1293,8 @@ setMEMtoFAC: scope:[setMEMtoFAC] from
|
||||
setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
setFACtoMEM: scope:[setFACtoMEM] from
|
||||
(void~) setFACtoMEM::$0 ← call prepareMEM (byte*) setFACtoMEM::mem
|
||||
asm { lda$fe ldy$ff jsr$bba2 }
|
||||
@ -1211,24 +1302,24 @@ setFACtoMEM: scope:[setFACtoMEM] from
|
||||
setFACtoMEM::@return: scope:[setFACtoMEM] from setFACtoMEM
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
setFACtoPIhalf: scope:[setFACtoPIhalf] from
|
||||
asm { lda#$e0 ldy#$e2 jsr$bba2 }
|
||||
to:setFACtoPIhalf::@return
|
||||
setFACtoPIhalf::@return: scope:[setFACtoPIhalf] from setFACtoPIhalf
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
setFACto2PI: scope:[setFACto2PI] from
|
||||
asm { lda#$e5 ldy#$e2 jsr$bba2 }
|
||||
to:setFACto2PI::@return
|
||||
setFACto2PI::@return: scope:[setFACto2PI] from setFACto2PI
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
setARGtoMEM: scope:[setARGtoMEM] from
|
||||
(void~) setARGtoMEM::$0 ← call prepareMEM (byte*) setARGtoMEM::mem
|
||||
asm { lda$fe ldy$ff jsr$ba8c }
|
||||
@ -1236,8 +1327,8 @@ setARGtoMEM: scope:[setARGtoMEM] from
|
||||
setARGtoMEM::@return: scope:[setARGtoMEM] from setARGtoMEM
|
||||
return
|
||||
to:@return
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
addMEMtoFAC: scope:[addMEMtoFAC] from
|
||||
(void~) addMEMtoFAC::$0 ← call prepareMEM (byte*) addMEMtoFAC::mem
|
||||
asm { lda$fe ldy$ff jsr$b867 }
|
||||
@ -1245,16 +1336,16 @@ addMEMtoFAC: scope:[addMEMtoFAC] from
|
||||
addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC
|
||||
return
|
||||
to:@return
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
addARGtoFAC: scope:[addARGtoFAC] from
|
||||
asm { jsr$b86a }
|
||||
to:addARGtoFAC::@return
|
||||
addARGtoFAC::@return: scope:[addARGtoFAC] from addARGtoFAC
|
||||
return
|
||||
to:@return
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
subFACfromMEM: scope:[subFACfromMEM] from
|
||||
(void~) subFACfromMEM::$0 ← call prepareMEM (byte*) subFACfromMEM::mem
|
||||
asm { lda$fe ldy$ff jsr$b850 }
|
||||
@ -1262,16 +1353,16 @@ subFACfromMEM: scope:[subFACfromMEM] from
|
||||
subFACfromMEM::@return: scope:[subFACfromMEM] from subFACfromMEM
|
||||
return
|
||||
to:@return
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
subFACfromARG: scope:[subFACfromARG] from
|
||||
asm { jsr$b853 }
|
||||
to:subFACfromARG::@return
|
||||
subFACfromARG::@return: scope:[subFACfromARG] from subFACfromARG
|
||||
return
|
||||
to:@return
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
divMEMbyFAC: scope:[divMEMbyFAC] from
|
||||
(void~) divMEMbyFAC::$0 ← call prepareMEM (byte*) divMEMbyFAC::mem
|
||||
asm { lda$fe ldy$ff jsr$bb0f }
|
||||
@ -1279,8 +1370,8 @@ divMEMbyFAC: scope:[divMEMbyFAC] from
|
||||
divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
mulFACbyMEM: scope:[mulFACbyMEM] from
|
||||
(void~) mulFACbyMEM::$0 ← call prepareMEM (byte*) mulFACbyMEM::mem
|
||||
asm { lda$fe ldy$ff jsr$ba28 }
|
||||
@ -1288,8 +1379,8 @@ mulFACbyMEM: scope:[mulFACbyMEM] from
|
||||
mulFACbyMEM::@return: scope:[mulFACbyMEM] from mulFACbyMEM
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
pwrMEMbyFAC: scope:[pwrMEMbyFAC] from
|
||||
(void~) pwrMEMbyFAC::$0 ← call prepareMEM (byte*) pwrMEMbyFAC::mem
|
||||
asm { lda$fe ldy$ff jsr$bf78 }
|
||||
@ -1297,88 +1388,88 @@ pwrMEMbyFAC: scope:[pwrMEMbyFAC] from
|
||||
pwrMEMbyFAC::@return: scope:[pwrMEMbyFAC] from pwrMEMbyFAC
|
||||
return
|
||||
to:@return
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
intFAC: scope:[intFAC] from
|
||||
asm { jsr$bccc }
|
||||
to:intFAC::@return
|
||||
intFAC::@return: scope:[intFAC] from intFAC
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
sinFAC: scope:[sinFAC] from
|
||||
asm { jsr$e26b }
|
||||
to:sinFAC::@return
|
||||
sinFAC::@return: scope:[sinFAC] from sinFAC
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
cosFAC: scope:[cosFAC] from
|
||||
asm { jsr$e264 }
|
||||
to:cosFAC::@return
|
||||
cosFAC::@return: scope:[cosFAC] from cosFAC
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
tanFAC: scope:[tanFAC] from
|
||||
asm { jsr$e2b4 }
|
||||
to:tanFAC::@return
|
||||
tanFAC::@return: scope:[tanFAC] from tanFAC
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
atnFAC: scope:[atnFAC] from
|
||||
asm { jsr$e303 }
|
||||
to:atnFAC::@return
|
||||
atnFAC::@return: scope:[atnFAC] from atnFAC
|
||||
return
|
||||
to:@return
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
@36: scope:[] from @35
|
||||
to:@37
|
||||
sqrFAC: scope:[sqrFAC] from
|
||||
asm { jsr$bf71 }
|
||||
to:sqrFAC::@return
|
||||
sqrFAC::@return: scope:[sqrFAC] from sqrFAC
|
||||
return
|
||||
to:@return
|
||||
@36: scope:[] from @35
|
||||
to:@37
|
||||
@37: scope:[] from @36
|
||||
to:@38
|
||||
expFAC: scope:[expFAC] from
|
||||
asm { jsr$bfed }
|
||||
to:expFAC::@return
|
||||
expFAC::@return: scope:[expFAC] from expFAC
|
||||
return
|
||||
to:@return
|
||||
@37: scope:[] from @36
|
||||
to:@38
|
||||
@38: scope:[] from @37
|
||||
to:@39
|
||||
logFAC: scope:[logFAC] from
|
||||
asm { jsr$b9ea }
|
||||
to:logFAC::@return
|
||||
logFAC::@return: scope:[logFAC] from logFAC
|
||||
return
|
||||
to:@return
|
||||
@38: scope:[] from @37
|
||||
to:@39
|
||||
@39: scope:[] from @38
|
||||
to:@40
|
||||
divFACby10: scope:[divFACby10] from
|
||||
asm { jsr$bafe }
|
||||
to:divFACby10::@return
|
||||
divFACby10::@return: scope:[divFACby10] from divFACby10
|
||||
return
|
||||
to:@return
|
||||
@39: scope:[] from @38
|
||||
to:@40
|
||||
@40: scope:[] from @39
|
||||
to:@41
|
||||
mulFACby10: scope:[mulFACby10] from
|
||||
asm { jsr$bae2 }
|
||||
to:mulFACby10::@return
|
||||
mulFACby10::@return: scope:[mulFACby10] from mulFACby10
|
||||
return
|
||||
to:@return
|
||||
@40: scope:[] from @39
|
||||
to:@41
|
||||
@41: scope:[] from @40
|
||||
to:@42
|
||||
main: scope:[main] from
|
||||
(byte[]) main::f_i ← { (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 ← { (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 }
|
||||
@ -1410,13 +1501,14 @@ main::@2: scope:[main] from main::@1
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
@41: scope:[] from @40
|
||||
@42: scope:[] from @41
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @41
|
||||
@end: scope:[] from @42
|
||||
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
@ -1477,10 +1569,10 @@ Removing empty block @9
|
||||
Removing empty block @10
|
||||
Removing empty block @11
|
||||
Removing empty block @12
|
||||
Removing empty block @14
|
||||
Removing empty block @13
|
||||
Removing empty block @15
|
||||
Removing empty block getFAC::@1
|
||||
Removing empty block @16
|
||||
Removing empty block getFAC::@1
|
||||
Removing empty block @17
|
||||
Removing empty block @18
|
||||
Removing empty block @19
|
||||
@ -1505,6 +1597,7 @@ Removing empty block @37
|
||||
Removing empty block @38
|
||||
Removing empty block @39
|
||||
Removing empty block @40
|
||||
Removing empty block @41
|
||||
Removing empty block main::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_ln modifies print_line_cursor
|
||||
@ -1537,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:@13
|
||||
to:@14
|
||||
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 )
|
||||
@ -1621,12 +1714,12 @@ print_char::@return: scope:[print_char] from print_char
|
||||
(byte*) print_char_cursor#10 ← (byte*) print_char_cursor#24
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @begin
|
||||
@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 )
|
||||
(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:@41
|
||||
to:@42
|
||||
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC
|
||||
(byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(byte*) prepareMEM::mem#2 divMEMbyFAC/(byte*) prepareMEM::mem#3 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 )
|
||||
(byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5
|
||||
@ -1715,9 +1808,9 @@ divFACby10: scope:[divFACby10] from main::@3
|
||||
divFACby10::@return: scope:[divFACby10] from divFACby10
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @41
|
||||
(byte*) print_line_cursor#29 ← phi( @41/(byte*) print_line_cursor#14 )
|
||||
(byte*) print_char_cursor#47 ← phi( @41/(byte*) print_char_cursor#33 )
|
||||
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[]) 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
|
||||
@ -1836,23 +1929,23 @@ main::@return: scope:[main] from main::@16
|
||||
(byte*) print_line_cursor#4 ← (byte*) print_line_cursor#10
|
||||
return
|
||||
to:@return
|
||||
@41: scope:[] from @13
|
||||
(byte*) print_line_cursor#14 ← phi( @13/(byte*) print_line_cursor#16 )
|
||||
(byte*) print_char_cursor#33 ← phi( @13/(byte*) print_char_cursor#35 )
|
||||
@42: scope:[] from @14
|
||||
(byte*) print_line_cursor#14 ← phi( @14/(byte*) print_line_cursor#16 )
|
||||
(byte*) print_char_cursor#33 ← phi( @14/(byte*) print_char_cursor#35 )
|
||||
call main param-assignment
|
||||
to:@42
|
||||
@42: scope:[] from @41
|
||||
(byte*) print_line_cursor#11 ← phi( @41/(byte*) print_line_cursor#4 )
|
||||
(byte*) print_char_cursor#28 ← phi( @41/(byte*) print_char_cursor#13 )
|
||||
to:@43
|
||||
@43: scope:[] from @42
|
||||
(byte*) print_line_cursor#11 ← phi( @42/(byte*) print_line_cursor#4 )
|
||||
(byte*) print_char_cursor#28 ← phi( @42/(byte*) print_char_cursor#13 )
|
||||
(byte*) print_char_cursor#14 ← (byte*) print_char_cursor#28
|
||||
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#11
|
||||
to:@end
|
||||
@end: scope:[] from @42
|
||||
@end: scope:[] from @43
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @13
|
||||
(label) @41
|
||||
(label) @14
|
||||
(label) @42
|
||||
(label) @43
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) addMEMtoFAC((byte*) addMEMtoFAC::mem)
|
||||
@ -2233,9 +2326,9 @@ Succesful SSA optimization Pass2NopCastElimination
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) print_word::@2
|
||||
Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @14
|
||||
Culled Empty Block (label) main::@5
|
||||
Culled Empty Block (label) @42
|
||||
Culled Empty Block (label) @43
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: print_line_cursor#6 print_line_cursor#13
|
||||
Not aliassing across scopes: print_byte::b#2 print_byte::b#0
|
||||
@ -2309,12 +2402,12 @@ 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
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @41 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Block Sequence Planned @begin @42 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Added new block during phi lifting main::@17(between main::@16 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Block Sequence Planned @begin @41 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return main::@17 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Block Sequence Planned @begin @42 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return main::@17 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @41
|
||||
Adding NOP phi() at start of @42
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -2385,9 +2478,9 @@ Coalesced [87] prepareMEM::mem#6 ← prepareMEM::mem#4
|
||||
Coalesced [104] prepareMEM::mem#8 ← prepareMEM::mem#1
|
||||
Coalesced down to 9 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Block Sequence Planned @begin @41 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return main::@17 print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Block Sequence Planned @begin @42 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return main::@17 print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @41
|
||||
Adding NOP phi() at start of @42
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -2433,14 +2526,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@41
|
||||
@41: scope:[] from @begin
|
||||
to:@42
|
||||
@42: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @41
|
||||
@end: scope:[] from @42
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @41
|
||||
main: scope:[main] from @42
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call setFAC param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@3
|
||||
@ -2641,59 +2734,59 @@ divFACby10::@return: scope:[divFACby10] from divFACby10
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@41 dominated by @begin @41
|
||||
@end dominated by @end @begin @41
|
||||
main dominated by main @begin @41
|
||||
main::@3 dominated by main main::@3 @begin @41
|
||||
main::@4 dominated by main main::@3 main::@4 @begin @41
|
||||
main::@1 dominated by main main::@1 main::@3 main::@4 @begin @41
|
||||
main::@6 dominated by main main::@1 main::@6 main::@3 main::@4 @begin @41
|
||||
main::@7 dominated by main::@7 main main::@1 main::@6 main::@3 main::@4 @begin @41
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@10
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 main::@12
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 main::@13 main::@12
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@return main::@11 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 main::@17 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin print_ln @41 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln::@1 dominated by main::@9 print_ln::@1 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin print_ln @41 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln::@return dominated by main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@1 main::@6 main::@3 main::@4 @begin print_ln @41 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_word dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_word::@1 dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @41 print_word::@1 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_word::@return dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin print_word::@return @41 print_word::@1 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_byte dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_byte::@1 dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @41 print_byte::@1 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_byte::@return dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin print_byte::@return @41 print_byte::@1 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_char dominated by main::@9 main::@7 main::@8 main print_word print_char main::@1 main::@6 main::@3 main::@4 @begin @41 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_char::@return dominated by main::@9 main::@7 main::@8 main print_word print_char main::@1 main::@6 main::@3 main::@4 print_char::@return @begin @41 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
getFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 getFAC main::@11 main::@10 main::@13 main::@12
|
||||
getFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 getFAC main::@11 main::@10 main::@13 main::@12 getFAC::@return
|
||||
addMEMtoFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 addMEMtoFAC main::@11 main::@10 main::@12
|
||||
addMEMtoFAC::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin addMEMtoFAC::@1 @41 addMEMtoFAC main::@11 main::@10 main::@12
|
||||
addMEMtoFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin addMEMtoFAC::@1 @41 addMEMtoFAC main::@11 main::@10 addMEMtoFAC::@return main::@12
|
||||
prepareMEM dominated by main @begin @41 prepareMEM
|
||||
prepareMEM::@return dominated by main @begin @41 prepareMEM::@return prepareMEM
|
||||
mulFACbyMEM dominated by main mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @41
|
||||
mulFACbyMEM::@1 dominated by main mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @41 mulFACbyMEM::@1
|
||||
mulFACbyMEM::@return dominated by main mulFACbyMEM::@return mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @41 mulFACbyMEM::@1
|
||||
sinFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin sinFAC @41 main::@10
|
||||
sinFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin sinFAC sinFAC::@return @41 main::@10
|
||||
divMEMbyFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 divMEMbyFAC
|
||||
divMEMbyFAC::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 divMEMbyFAC::@1 divMEMbyFAC
|
||||
divMEMbyFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @41 divMEMbyFAC::@1 divMEMbyFAC divMEMbyFAC::@return
|
||||
setFAC dominated by main @begin @41 setFAC
|
||||
setFAC::@1 dominated by main @begin @41 setFAC setFAC::@1
|
||||
setFAC::@return dominated by setFAC::@return main @begin @41 setFAC setFAC::@1
|
||||
setMEMtoFAC dominated by main main::@3 main::@4 @begin setMEMtoFAC @41
|
||||
setMEMtoFAC::@1 dominated by main main::@3 main::@4 @begin setMEMtoFAC @41 setMEMtoFAC::@1
|
||||
setMEMtoFAC::@return dominated by main main::@3 main::@4 @begin setMEMtoFAC @41 setMEMtoFAC::@1 setMEMtoFAC::@return
|
||||
divFACby10 dominated by main main::@3 @begin divFACby10 @41
|
||||
divFACby10::@return dominated by divFACby10::@return main main::@3 @begin divFACby10 @41
|
||||
@42 dominated by @begin @42
|
||||
@end dominated by @end @begin @42
|
||||
main dominated by main @begin @42
|
||||
main::@3 dominated by main main::@3 @begin @42
|
||||
main::@4 dominated by main main::@3 main::@4 @begin @42
|
||||
main::@1 dominated by main main::@1 main::@3 main::@4 @begin @42
|
||||
main::@6 dominated by main main::@1 main::@6 main::@3 main::@4 @begin @42
|
||||
main::@7 dominated by main::@7 main main::@1 main::@6 main::@3 main::@4 @begin @42
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@10
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 main::@12
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 main::@13 main::@12
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@return main::@11 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 main::@17 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin print_ln @42 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln::@1 dominated by main::@9 print_ln::@1 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin print_ln @42 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln::@return dominated by main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@1 main::@6 main::@3 main::@4 @begin print_ln @42 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_word dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_word::@1 dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @42 print_word::@1 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_word::@return dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin print_word::@return @42 print_word::@1 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_byte dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_byte::@1 dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @42 print_byte::@1 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_byte::@return dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin print_byte::@return @42 print_byte::@1 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_char dominated by main::@9 main::@7 main::@8 main print_word print_char main::@1 main::@6 main::@3 main::@4 @begin @42 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_char::@return dominated by main::@9 main::@7 main::@8 main print_word print_char main::@1 main::@6 main::@3 main::@4 print_char::@return @begin @42 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
getFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 getFAC main::@11 main::@10 main::@13 main::@12
|
||||
getFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 getFAC main::@11 main::@10 main::@13 main::@12 getFAC::@return
|
||||
addMEMtoFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 addMEMtoFAC main::@11 main::@10 main::@12
|
||||
addMEMtoFAC::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin addMEMtoFAC::@1 @42 addMEMtoFAC main::@11 main::@10 main::@12
|
||||
addMEMtoFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin addMEMtoFAC::@1 @42 addMEMtoFAC main::@11 main::@10 addMEMtoFAC::@return main::@12
|
||||
prepareMEM dominated by main @begin @42 prepareMEM
|
||||
prepareMEM::@return dominated by main @begin @42 prepareMEM::@return prepareMEM
|
||||
mulFACbyMEM dominated by main mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @42
|
||||
mulFACbyMEM::@1 dominated by main mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @42 mulFACbyMEM::@1
|
||||
mulFACbyMEM::@return dominated by main mulFACbyMEM::@return mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @42 mulFACbyMEM::@1
|
||||
sinFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin sinFAC @42 main::@10
|
||||
sinFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin sinFAC sinFAC::@return @42 main::@10
|
||||
divMEMbyFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 divMEMbyFAC
|
||||
divMEMbyFAC::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 divMEMbyFAC::@1 divMEMbyFAC
|
||||
divMEMbyFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @42 divMEMbyFAC::@1 divMEMbyFAC divMEMbyFAC::@return
|
||||
setFAC dominated by main @begin @42 setFAC
|
||||
setFAC::@1 dominated by main @begin @42 setFAC setFAC::@1
|
||||
setFAC::@return dominated by setFAC::@return main @begin @42 setFAC setFAC::@1
|
||||
setMEMtoFAC dominated by main main::@3 main::@4 @begin setMEMtoFAC @42
|
||||
setMEMtoFAC::@1 dominated by main main::@3 main::@4 @begin setMEMtoFAC @42 setMEMtoFAC::@1
|
||||
setMEMtoFAC::@return dominated by main main::@3 main::@4 @begin setMEMtoFAC @42 setMEMtoFAC::@1 setMEMtoFAC::@return
|
||||
divFACby10 dominated by main main::@3 @begin divFACby10 @42
|
||||
divFACby10::@return dominated by divFACby10::@return main main::@3 @begin divFACby10 @42
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@17 blocks: null
|
||||
@ -2856,17 +2949,17 @@ INITIAL ASM
|
||||
.label print_char_cursor = 7
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @41 [phi:@begin->@41]
|
||||
b41_from_bbegin:
|
||||
jmp b41
|
||||
//SEG4 @41
|
||||
b41:
|
||||
//SEG3 [1] phi from @begin to @42 [phi:@begin->@42]
|
||||
b42_from_bbegin:
|
||||
jmp b42
|
||||
//SEG4 @42
|
||||
b42:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @41 to main [phi:@41->main]
|
||||
main_from_b41:
|
||||
//SEG6 [4] phi from @42 to main [phi:@42->main]
|
||||
main_from_b42:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @41 to @end [phi:@41->@end]
|
||||
bend_from_b41:
|
||||
//SEG7 [3] phi from @42 to @end [phi:@42->@end]
|
||||
bend_from_b42:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -3505,17 +3598,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_char_cursor = 5
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @41 [phi:@begin->@41]
|
||||
b41_from_bbegin:
|
||||
jmp b41
|
||||
//SEG4 @41
|
||||
b41:
|
||||
//SEG3 [1] phi from @begin to @42 [phi:@begin->@42]
|
||||
b42_from_bbegin:
|
||||
jmp b42
|
||||
//SEG4 @42
|
||||
b42:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @41 to main [phi:@41->main]
|
||||
main_from_b41:
|
||||
//SEG6 [4] phi from @42 to main [phi:@42->main]
|
||||
main_from_b42:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @41 to @end [phi:@41->@end]
|
||||
bend_from_b41:
|
||||
//SEG7 [3] phi from @42 to @end [phi:@42->@end]
|
||||
bend_from_b42:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -4008,7 +4101,7 @@ divFACby10: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b41
|
||||
Removing instruction jmp b42
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b3
|
||||
Removing instruction jmp b4
|
||||
@ -4050,9 +4143,9 @@ Succesful ASM optimization Pass5NextJumpElimination
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b41_from_bbegin:
|
||||
Removing instruction main_from_b41:
|
||||
Removing instruction bend_from_b41:
|
||||
Removing instruction b42_from_bbegin:
|
||||
Removing instruction main_from_b42:
|
||||
Removing instruction bend_from_b42:
|
||||
Removing instruction b3_from_main:
|
||||
Removing instruction b4_from_b3:
|
||||
Removing instruction setMEMtoFAC_from_b4:
|
||||
@ -4075,7 +4168,7 @@ Removing instruction print_ln_from_b15:
|
||||
Removing instruction b1_from_print_ln:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b41:
|
||||
Removing instruction b42:
|
||||
Removing instruction bend:
|
||||
Removing instruction setFAC_from_main:
|
||||
Removing instruction b3:
|
||||
@ -4127,7 +4220,7 @@ Removing instruction breturn:
|
||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @41
|
||||
(label) @42
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) addMEMtoFAC((byte*) addMEMtoFAC::mem)
|
||||
@ -4265,12 +4358,12 @@ Score: 4973
|
||||
.label print_line_cursor = 3
|
||||
.label print_char_cursor = 5
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @41 [phi:@begin->@41]
|
||||
//SEG4 @41
|
||||
//SEG3 [1] phi from @begin to @42 [phi:@begin->@42]
|
||||
//SEG4 @42
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @41 to main [phi:@41->main]
|
||||
//SEG6 [4] phi from @42 to main [phi:@42->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @41 to @end [phi:@41->@end]
|
||||
//SEG7 [3] phi from @42 to @end [phi:@42->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @41
|
||||
(label) @42
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) addMEMtoFAC((byte*) addMEMtoFAC::mem)
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@50
|
||||
@50: scope:[] from @begin
|
||||
to:@51
|
||||
@51: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @50
|
||||
@end: scope:[] from @51
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @50
|
||||
main: scope:[main] from @51
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call init param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@2
|
||||
|
@ -578,6 +578,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -592,13 +612,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -675,6 +688,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -909,6 +924,35 @@ endproc // mulFACby10()
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -937,12 +981,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -1640,6 +1678,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -2059,6 +2111,54 @@ mulFACby10::@return: scope:[mulFACby10] from mulFACby10
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@28
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -2081,8 +2181,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -2105,17 +2205,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -2130,8 +2221,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -2149,8 +2240,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -2168,8 +2259,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -2179,8 +2270,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -2190,8 +2281,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
@36: scope:[] from @35
|
||||
to:@37
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -2209,8 +2300,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@36: scope:[] from @35
|
||||
to:@37
|
||||
@37: scope:[] from @36
|
||||
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
|
||||
@ -2221,8 +2312,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@37: scope:[] from @36
|
||||
to:@38
|
||||
@38: scope:[] from @37
|
||||
to:@39
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -2230,8 +2321,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@38: scope:[] from @37
|
||||
to:@39
|
||||
@39: scope:[] from @38
|
||||
to:@40
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -2249,8 +2340,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@39: scope:[] from @38
|
||||
to:@40
|
||||
@40: scope:[] from @39
|
||||
to:@41
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -2259,14 +2350,14 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@40: scope:[] from @39
|
||||
@41: scope:[] from @40
|
||||
(byte) sinlen_x ← (byte/word/signed word/dword/signed dword) 221
|
||||
(byte[221]) sintab_x ← { fill( 221, 0) }
|
||||
(byte) sinlen_y ← (byte/word/signed word/dword/signed dword) 197
|
||||
(byte[197]) sintab_y ← { fill( 197, 0) }
|
||||
(byte*) sprites ← ((byte*)) (word/signed word/dword/signed dword) 8192
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
to:@41
|
||||
to:@42
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call init
|
||||
to:main::@1
|
||||
@ -2285,8 +2376,8 @@ main::@4: scope:[main] from main::@3
|
||||
main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
@41: scope:[] from @40
|
||||
to:@42
|
||||
@42: scope:[] from @41
|
||||
to:@43
|
||||
init: scope:[init] from
|
||||
(void~) init::$0 ← call clear_screen
|
||||
(byte) init::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -2312,8 +2403,8 @@ init::@2: scope:[init] from init::@1
|
||||
init::@return: scope:[init] from init::@2
|
||||
return
|
||||
to:@return
|
||||
@42: scope:[] from @41
|
||||
to:@43
|
||||
@43: scope:[] from @42
|
||||
to:@44
|
||||
clear_screen: scope:[clear_screen] from
|
||||
(byte*) clear_screen::sc ← (byte*) SCREEN
|
||||
to:clear_screen::@1
|
||||
@ -2329,10 +2420,10 @@ clear_screen::@2: scope:[clear_screen] from clear_screen::@1
|
||||
clear_screen::@return: scope:[clear_screen] from clear_screen::@2
|
||||
return
|
||||
to:@return
|
||||
@43: scope:[] from @42
|
||||
@44: scope:[] from @43
|
||||
(byte*) progress_cursor ← (byte*) SCREEN
|
||||
(byte) progress_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@44
|
||||
to:@45
|
||||
progress_init: scope:[progress_init] from
|
||||
(byte*) progress_cursor ← (byte*) progress_init::line
|
||||
(byte) progress_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -2340,8 +2431,8 @@ progress_init: scope:[progress_init] from
|
||||
progress_init::@return: scope:[progress_init] from progress_init
|
||||
return
|
||||
to:@return
|
||||
@44: scope:[] from @43
|
||||
to:@45
|
||||
@45: scope:[] from @44
|
||||
to:@46
|
||||
progress_inc: scope:[progress_inc] from
|
||||
(byte[]) progress_inc::progress_chars ← { (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 117, (byte/signed byte/word/signed word/dword/signed dword) 97, (byte/word/signed word/dword/signed dword) 246, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 234, (byte/word/signed word/dword/signed dword) 224 }
|
||||
(byte) progress_idx ← ++ (byte) progress_idx
|
||||
@ -2360,10 +2451,10 @@ progress_inc::@2: scope:[progress_inc] from progress_inc
|
||||
progress_inc::@return: scope:[progress_inc] from progress_inc::@1
|
||||
return
|
||||
to:@return
|
||||
@45: scope:[] from @44
|
||||
@46: scope:[] from @45
|
||||
(byte) sin_idx_x ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) sin_idx_y ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@46
|
||||
to:@47
|
||||
anim: scope:[anim] from
|
||||
*((byte*) BORDERCOL) ← ++ *((byte*) BORDERCOL)
|
||||
(byte) anim::xidx ← (byte) sin_idx_x
|
||||
@ -2436,8 +2527,8 @@ anim::@10: scope:[anim] from anim::@4
|
||||
anim::@return: scope:[anim] from anim::@5
|
||||
return
|
||||
to:@return
|
||||
@46: scope:[] from @45
|
||||
to:@47
|
||||
@47: scope:[] from @46
|
||||
to:@48
|
||||
place_sprites: scope:[place_sprites] from
|
||||
*((byte*) SPRITES_ENABLE) ← (byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
*((byte*) SPRITES_EXPAND_X) ← (byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
@ -2474,8 +2565,8 @@ place_sprites::@2: scope:[place_sprites] from place_sprites::@1
|
||||
place_sprites::@return: scope:[place_sprites] from place_sprites::@2
|
||||
return
|
||||
to:@return
|
||||
@47: scope:[] from @46
|
||||
to:@48
|
||||
@48: scope:[] from @47
|
||||
to:@49
|
||||
gen_sprites: scope:[gen_sprites] from
|
||||
(byte[]) gen_sprites::cml ← (string) "camelot"
|
||||
(byte*) gen_sprites::spr ← (byte*) sprites
|
||||
@ -2494,8 +2585,8 @@ gen_sprites::@2: scope:[gen_sprites] from gen_sprites::@1
|
||||
gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@2
|
||||
return
|
||||
to:@return
|
||||
@48: scope:[] from @47
|
||||
to:@49
|
||||
@49: scope:[] from @48
|
||||
to:@50
|
||||
gen_chargen_sprite: scope:[gen_chargen_sprite] from
|
||||
(word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch
|
||||
(word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
@ -2567,8 +2658,8 @@ gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9
|
||||
gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10
|
||||
return
|
||||
to:@return
|
||||
@49: scope:[] from @48
|
||||
to:@50
|
||||
@50: scope:[] from @49
|
||||
to:@51
|
||||
gen_sintab: scope:[gen_sintab] from
|
||||
(byte[]) gen_sintab::f_i ← { (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[]) gen_sintab::f_min ← { (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 }
|
||||
@ -2614,10 +2705,10 @@ gen_sintab::@2: scope:[gen_sintab] from gen_sintab::@1
|
||||
gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@2
|
||||
return
|
||||
to:@return
|
||||
@50: scope:[] from @49
|
||||
@51: scope:[] from @50
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @50
|
||||
@end: scope:[] from @51
|
||||
|
||||
Removing unused procedure setFACtoARG
|
||||
Removing unused procedure setFACtoMEM
|
||||
@ -2636,8 +2727,9 @@ Removing unused procedure expFAC
|
||||
Removing unused procedure logFAC
|
||||
Removing unused procedure divFACby10
|
||||
Removing unused procedure mulFACby10
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
@ -2773,17 +2865,18 @@ Removing empty block @36
|
||||
Removing empty block @37
|
||||
Removing empty block @38
|
||||
Removing empty block @39
|
||||
Removing empty block @40
|
||||
Removing empty block main::@4
|
||||
Removing empty block @41
|
||||
Removing empty block @42
|
||||
Removing empty block @43
|
||||
Removing empty block clear_screen::@2
|
||||
Removing empty block @44
|
||||
Removing empty block @46
|
||||
Removing empty block place_sprites::@2
|
||||
Removing empty block @45
|
||||
Removing empty block @47
|
||||
Removing empty block gen_sprites::@2
|
||||
Removing empty block place_sprites::@2
|
||||
Removing empty block @48
|
||||
Removing empty block gen_sprites::@2
|
||||
Removing empty block @49
|
||||
Removing empty block @50
|
||||
Removing empty block gen_sintab::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
main modifies progress_cursor
|
||||
@ -2841,7 +2934,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) COLS#0 ← ((byte*)) (word/dword/signed dword) 55296
|
||||
(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:@40
|
||||
to:@41
|
||||
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC
|
||||
(byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(byte*) prepareMEM::mem#2 divMEMbyFAC/(byte*) prepareMEM::mem#3 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 )
|
||||
(byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5
|
||||
@ -2936,19 +3029,19 @@ sinFAC: scope:[sinFAC] from gen_sintab::@18
|
||||
sinFAC::@return: scope:[sinFAC] from sinFAC
|
||||
return
|
||||
to:@return
|
||||
@40: scope:[] from @begin
|
||||
@41: scope:[] from @begin
|
||||
(byte) sinlen_x#0 ← (byte/word/signed word/dword/signed dword) 221
|
||||
(byte[221]) sintab_x#0 ← { fill( 221, 0) }
|
||||
(byte) sinlen_y#0 ← (byte/word/signed word/dword/signed dword) 197
|
||||
(byte[197]) sintab_y#0 ← { fill( 197, 0) }
|
||||
(byte*) sprites#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
to:@43
|
||||
main: scope:[main] from @50
|
||||
(byte) sin_idx_y#24 ← phi( @50/(byte) sin_idx_y#17 )
|
||||
(byte) sin_idx_x#26 ← phi( @50/(byte) sin_idx_x#16 )
|
||||
(byte) progress_idx#30 ← phi( @50/(byte) progress_idx#35 )
|
||||
(byte*) progress_cursor#29 ← phi( @50/(byte*) progress_cursor#35 )
|
||||
to:@44
|
||||
main: scope:[main] from @51
|
||||
(byte) sin_idx_y#24 ← phi( @51/(byte) sin_idx_y#17 )
|
||||
(byte) sin_idx_x#26 ← phi( @51/(byte) sin_idx_x#16 )
|
||||
(byte) progress_idx#30 ← phi( @51/(byte) progress_idx#35 )
|
||||
(byte*) progress_cursor#29 ← phi( @51/(byte*) progress_cursor#35 )
|
||||
call init param-assignment
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main
|
||||
@ -3100,10 +3193,10 @@ clear_screen::@1: scope:[clear_screen] from clear_screen clear_screen::@1
|
||||
clear_screen::@return: scope:[clear_screen] from clear_screen::@1
|
||||
return
|
||||
to:@return
|
||||
@43: scope:[] from @40
|
||||
@44: scope:[] from @41
|
||||
(byte*) progress_cursor#7 ← (byte*) SCREEN#0
|
||||
(byte) progress_idx#7 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@45
|
||||
to:@46
|
||||
progress_init: scope:[progress_init] from init::@5 init::@7
|
||||
(byte*) progress_init::line#2 ← phi( init::@5/(byte*) progress_init::line#0 init::@7/(byte*) progress_init::line#1 )
|
||||
(byte*) progress_cursor#8 ← (byte*) progress_init::line#2
|
||||
@ -3143,12 +3236,12 @@ progress_inc::@return: scope:[progress_inc] from progress_inc::@1
|
||||
(byte*) progress_cursor#11 ← (byte*) progress_cursor#25
|
||||
return
|
||||
to:@return
|
||||
@45: scope:[] from @43
|
||||
(byte) progress_idx#39 ← phi( @43/(byte) progress_idx#7 )
|
||||
(byte*) progress_cursor#39 ← phi( @43/(byte*) progress_cursor#7 )
|
||||
@46: scope:[] from @44
|
||||
(byte) progress_idx#39 ← phi( @44/(byte) progress_idx#7 )
|
||||
(byte*) progress_cursor#39 ← phi( @44/(byte*) progress_cursor#7 )
|
||||
(byte) sin_idx_x#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) sin_idx_y#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@50
|
||||
to:@51
|
||||
anim: scope:[anim] from main::@3
|
||||
(byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 )
|
||||
(byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 )
|
||||
@ -3708,31 +3801,31 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@23
|
||||
(byte*) progress_cursor#13 ← (byte*) progress_cursor#27
|
||||
return
|
||||
to:@return
|
||||
@50: scope:[] from @45
|
||||
(byte) sin_idx_y#17 ← phi( @45/(byte) sin_idx_y#2 )
|
||||
(byte) sin_idx_x#16 ← phi( @45/(byte) sin_idx_x#2 )
|
||||
(byte) progress_idx#35 ← phi( @45/(byte) progress_idx#39 )
|
||||
(byte*) progress_cursor#35 ← phi( @45/(byte*) progress_cursor#39 )
|
||||
@51: scope:[] from @46
|
||||
(byte) sin_idx_y#17 ← phi( @46/(byte) sin_idx_y#2 )
|
||||
(byte) sin_idx_x#16 ← phi( @46/(byte) sin_idx_x#2 )
|
||||
(byte) progress_idx#35 ← phi( @46/(byte) progress_idx#39 )
|
||||
(byte*) progress_cursor#35 ← phi( @46/(byte*) progress_cursor#39 )
|
||||
call main param-assignment
|
||||
to:@51
|
||||
@51: scope:[] from @50
|
||||
(byte) sin_idx_y#12 ← phi( @50/(byte) sin_idx_y#1 )
|
||||
(byte) sin_idx_x#12 ← phi( @50/(byte) sin_idx_x#1 )
|
||||
(byte) progress_idx#29 ← phi( @50/(byte) progress_idx#1 )
|
||||
(byte*) progress_cursor#28 ← phi( @50/(byte*) progress_cursor#1 )
|
||||
to:@52
|
||||
@52: scope:[] from @51
|
||||
(byte) sin_idx_y#12 ← phi( @51/(byte) sin_idx_y#1 )
|
||||
(byte) sin_idx_x#12 ← phi( @51/(byte) sin_idx_x#1 )
|
||||
(byte) progress_idx#29 ← phi( @51/(byte) progress_idx#1 )
|
||||
(byte*) progress_cursor#28 ← phi( @51/(byte*) progress_cursor#1 )
|
||||
(byte*) progress_cursor#14 ← (byte*) progress_cursor#28
|
||||
(byte) progress_idx#15 ← (byte) progress_idx#29
|
||||
(byte) sin_idx_x#6 ← (byte) sin_idx_x#12
|
||||
(byte) sin_idx_y#6 ← (byte) sin_idx_y#12
|
||||
to:@end
|
||||
@end: scope:[] from @51
|
||||
@end: scope:[] from @52
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @40
|
||||
(label) @43
|
||||
(label) @45
|
||||
(label) @50
|
||||
(label) @41
|
||||
(label) @44
|
||||
(label) @46
|
||||
(label) @51
|
||||
(label) @52
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BORDERCOL
|
||||
@ -5032,18 +5125,18 @@ Eliminating unused constant (const byte) progress_idx#35
|
||||
Succesful SSA optimization PassNEliminateUnusedVars
|
||||
Eliminating Noop Cast (byte*) prepareMEM::mem#0 ← ((byte*)) (word) setFAC::w#5
|
||||
Succesful SSA optimization Pass2NopCastElimination
|
||||
Culled Empty Block (label) @40
|
||||
Culled Empty Block (label) @41
|
||||
Culled Empty Block (label) main::@5
|
||||
Culled Empty Block (label) main::@1
|
||||
Culled Empty Block (label) init::@3
|
||||
Culled Empty Block (label) init::@10
|
||||
Culled Empty Block (label) @43
|
||||
Culled Empty Block (label) @45
|
||||
Culled Empty Block (label) @44
|
||||
Culled Empty Block (label) @46
|
||||
Not culling empty block because it shares successor with its predecessor. (label) anim::@9
|
||||
Not culling empty block because it shares successor with its predecessor. (label) anim::@10
|
||||
Not culling empty block because it shares successor with its predecessor. (label) gen_chargen_sprite::@6
|
||||
Culled Empty Block (label) gen_sintab::@13
|
||||
Culled Empty Block (label) @51
|
||||
Culled Empty Block (label) @52
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not culling empty block because it shares successor with its predecessor. (label) anim::@9
|
||||
Not culling empty block because it shares successor with its predecessor. (label) anim::@10
|
||||
@ -5303,7 +5396,7 @@ Constant inlined progress_idx#11 = (byte/signed byte/word/signed word/dword/sign
|
||||
Constant inlined gen_sprites::$3 = (const string) gen_sprites::cml#0
|
||||
Constant inlined anim::j2#0 = (byte/signed byte/word/signed word/dword/signed dword) 12
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @50 @end main main::@2 main::@3 main::@6 main::@return anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@9 anim::@4 anim::@10 anim::@5 anim::@return init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return clear_screen clear_screen::@1 clear_screen::@return gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return place_sprites place_sprites::@1 place_sprites::@return
|
||||
Block Sequence Planned @begin @51 @end main main::@2 main::@3 main::@6 main::@return anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@9 anim::@4 anim::@10 anim::@5 anim::@return init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return clear_screen clear_screen::@1 clear_screen::@return gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return place_sprites place_sprites::@1 place_sprites::@return
|
||||
Added new block during phi lifting main::@7(between main::@6 and main::@2)
|
||||
Added new block during phi lifting anim::@11(between anim::@3 and anim::@1)
|
||||
Added new block during phi lifting anim::@12(between anim::@1 and anim::@2)
|
||||
@ -5320,9 +5413,9 @@ Added new block during phi lifting gen_chargen_sprite::@12(between gen_chargen_s
|
||||
Added new block during phi lifting gen_chargen_sprite::@13(between gen_chargen_sprite::@5 and gen_chargen_sprite::@4)
|
||||
Added new block during phi lifting gen_chargen_sprite::@14(between gen_chargen_sprite::@4 and gen_chargen_sprite::@5)
|
||||
Added new block during phi lifting place_sprites::@3(between place_sprites::@1 and place_sprites::@1)
|
||||
Block Sequence Planned @begin @50 @end main main::@2 main::@3 main::@6 main::@return main::@7 anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@9 anim::@4 anim::@10 anim::@5 anim::@return anim::@15 anim::@14 anim::@11 anim::@13 anim::@12 init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return init::@11 clear_screen clear_screen::@1 clear_screen::@return clear_screen::@3 gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return gen_sintab::@24 progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return progress_inc::@3 getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_sprites::@4 gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return gen_chargen_sprite::@11 gen_chargen_sprite::@12 gen_chargen_sprite::@13 gen_chargen_sprite::@14 place_sprites place_sprites::@1 place_sprites::@return place_sprites::@3
|
||||
Block Sequence Planned @begin @51 @end main main::@2 main::@3 main::@6 main::@return main::@7 anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@9 anim::@4 anim::@10 anim::@5 anim::@return anim::@15 anim::@14 anim::@11 anim::@13 anim::@12 init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return init::@11 clear_screen clear_screen::@1 clear_screen::@return clear_screen::@3 gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return gen_sintab::@24 progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return progress_inc::@3 getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_sprites::@4 gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return gen_chargen_sprite::@11 gen_chargen_sprite::@12 gen_chargen_sprite::@13 gen_chargen_sprite::@14 place_sprites place_sprites::@1 place_sprites::@return place_sprites::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @50
|
||||
Adding NOP phi() at start of @51
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -5501,9 +5594,9 @@ Culled Empty Block (label) gen_chargen_sprite::@12
|
||||
Culled Empty Block (label) gen_chargen_sprite::@13
|
||||
Culled Empty Block (label) gen_chargen_sprite::@14
|
||||
Culled Empty Block (label) place_sprites::@3
|
||||
Block Sequence Planned @begin @50 @end main main::@2 main::@3 main::@6 main::@return anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@4 anim::@5 anim::@return anim::@15 anim::@14 init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return clear_screen clear_screen::@1 clear_screen::@return gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return place_sprites place_sprites::@1 place_sprites::@return
|
||||
Block Sequence Planned @begin @51 @end main main::@2 main::@3 main::@6 main::@return anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@4 anim::@5 anim::@return anim::@15 anim::@14 init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return clear_screen clear_screen::@1 clear_screen::@return gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return place_sprites place_sprites::@1 place_sprites::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @50
|
||||
Adding NOP phi() at start of @51
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -5587,14 +5680,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@50
|
||||
@50: scope:[] from @begin
|
||||
to:@51
|
||||
@51: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @50
|
||||
@end: scope:[] from @51
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @50
|
||||
main: scope:[main] from @51
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call init param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@2
|
||||
@ -6056,111 +6149,111 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@50 dominated by @begin @50
|
||||
@end dominated by @end @begin @50
|
||||
main dominated by main @begin @50
|
||||
main::@2 dominated by main::@2 main @begin @50
|
||||
main::@3 dominated by main::@2 main::@3 main @begin @50
|
||||
main::@6 dominated by main::@2 main::@6 main::@3 main @begin @50
|
||||
main::@return dominated by main::@2 main::@6 main::@3 main::@return main @begin @50
|
||||
anim dominated by main::@2 main::@3 anim main @begin @50
|
||||
anim::@1 dominated by main::@2 main::@3 anim anim::@1 main @begin @50
|
||||
anim::@6 dominated by main::@2 main::@3 anim anim::@6 anim::@1 main @begin @50
|
||||
anim::@2 dominated by main::@2 main::@3 anim anim::@2 anim::@1 main @begin @50
|
||||
anim::@7 dominated by main::@2 main::@3 anim anim::@2 anim::@1 anim::@7 main @begin @50
|
||||
anim::@3 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 main @begin @50
|
||||
anim::@8 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 anim::@8 main @begin @50
|
||||
anim::@4 dominated by main::@2 main::@3 anim anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @50
|
||||
anim::@5 dominated by main::@2 main::@3 anim anim::@5 anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @50
|
||||
anim::@return dominated by main::@2 main::@3 anim anim::@5 anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 anim::@return main @begin @50
|
||||
anim::@15 dominated by main::@2 main::@3 anim anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin anim::@15 @50
|
||||
anim::@14 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 anim::@8 main @begin anim::@14 @50
|
||||
init dominated by init main @begin @50
|
||||
init::@1 dominated by init main @begin init::@1 @50
|
||||
init::@2 dominated by init main @begin init::@2 init::@1 @50
|
||||
init::@4 dominated by init main @begin init::@2 init::@1 init::@4 @50
|
||||
init::@5 dominated by init main @begin init::@2 init::@1 init::@5 init::@4 @50
|
||||
init::@6 dominated by init main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50
|
||||
init::@7 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 @50
|
||||
init::@8 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@8 @50
|
||||
init::@9 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@9 init::@8 @50
|
||||
init::@return dominated by init main @begin init::@return init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@9 init::@8 @50
|
||||
clear_screen dominated by init clear_screen main @begin @50
|
||||
clear_screen::@1 dominated by init clear_screen main @begin @50 clear_screen::@1
|
||||
clear_screen::@return dominated by init clear_screen main @begin @50 clear_screen::@1 clear_screen::@return
|
||||
gen_sintab dominated by init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50
|
||||
gen_sintab::@3 dominated by init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@4 dominated by init gen_sintab main gen_sintab::@4 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@5 dominated by init gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@6 dominated by init gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@7 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@8 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@9 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@10 dominated by gen_sintab::@10 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@11 dominated by gen_sintab::@10 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@12 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
gen_sintab::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@14 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@15 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@15 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@16 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@17 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@17 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@18 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@19 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@20 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@20 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@21 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@22 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@23 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@23 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@23 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 gen_sintab::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@2 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@2 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 progress_inc::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
getFAC dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 getFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
getFAC::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 getFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1 getFAC::@return
|
||||
addMEMtoFAC dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
addMEMtoFAC::@1 dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC::@1 addMEMtoFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
addMEMtoFAC::@return dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC::@1 addMEMtoFAC addMEMtoFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
prepareMEM dominated by init prepareMEM gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50
|
||||
prepareMEM::@return dominated by init prepareMEM gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 prepareMEM::@return
|
||||
mulFACbyMEM dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
mulFACbyMEM::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 mulFACbyMEM::@1 gen_sintab::@3 gen_sintab::@1
|
||||
mulFACbyMEM::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM::@return mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 mulFACbyMEM::@1 gen_sintab::@3 gen_sintab::@1
|
||||
sinFAC dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init sinFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
sinFAC::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init sinFAC sinFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3 gen_sintab::@1
|
||||
divMEMbyFAC dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 divMEMbyFAC gen_sintab::@3
|
||||
divMEMbyFAC::@1 dominated by init divMEMbyFAC::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 divMEMbyFAC gen_sintab::@3
|
||||
divMEMbyFAC::@return dominated by init divMEMbyFAC::@1 divMEMbyFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 divMEMbyFAC gen_sintab::@3
|
||||
setFAC dominated by init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50
|
||||
setFAC::@1 dominated by init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 setFAC::@1 @50
|
||||
setFAC::@return dominated by setFAC::@return init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 setFAC::@1 @50
|
||||
setMEMtoFAC dominated by init setMEMtoFAC gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
setMEMtoFAC::@1 dominated by init setMEMtoFAC setMEMtoFAC::@1 gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
setMEMtoFAC::@return dominated by init setMEMtoFAC setMEMtoFAC::@1 gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 setMEMtoFAC::@return gen_sintab::@3
|
||||
subFACfromARG dominated by init subFACfromARG gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
subFACfromARG::@return dominated by init subFACfromARG gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 subFACfromARG::@return gen_sintab::@3
|
||||
setARGtoFAC dominated by setARGtoFAC init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
setARGtoFAC::@return dominated by setARGtoFAC init gen_sintab main setARGtoFAC::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @50 gen_sintab::@3
|
||||
progress_init dominated by init progress_init main @begin init::@2 init::@1 init::@5 init::@4 @50
|
||||
progress_init::@return dominated by init progress_init main @begin init::@2 init::@1 init::@5 init::@4 progress_init::@return @50
|
||||
gen_sprites dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 @50
|
||||
gen_sprites::@1 dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_sprites::@3 dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 gen_sprites::@3 @50
|
||||
gen_sprites::@return dominated by init main gen_sprites::@return @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 gen_sprites::@3 @50
|
||||
gen_chargen_sprite dominated by init gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@1 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@2 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@6 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@3 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@4 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@7 dominated by init gen_chargen_sprite::@7 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@5 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@8 dominated by init gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@9 dominated by init gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@10 dominated by init gen_chargen_sprite::@10 gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
gen_chargen_sprite::@return dominated by init gen_chargen_sprite::@10 gen_chargen_sprite::@return gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @50
|
||||
place_sprites dominated by init main @begin init::@2 init::@1 @50 place_sprites
|
||||
place_sprites::@1 dominated by init place_sprites::@1 main @begin init::@2 init::@1 @50 place_sprites
|
||||
place_sprites::@return dominated by init place_sprites::@return place_sprites::@1 main @begin init::@2 init::@1 @50 place_sprites
|
||||
@51 dominated by @begin @51
|
||||
@end dominated by @end @begin @51
|
||||
main dominated by main @begin @51
|
||||
main::@2 dominated by main::@2 main @begin @51
|
||||
main::@3 dominated by main::@2 main::@3 main @begin @51
|
||||
main::@6 dominated by main::@2 main::@6 main::@3 main @begin @51
|
||||
main::@return dominated by main::@2 main::@6 main::@3 main::@return main @begin @51
|
||||
anim dominated by main::@2 main::@3 anim main @begin @51
|
||||
anim::@1 dominated by main::@2 main::@3 anim anim::@1 main @begin @51
|
||||
anim::@6 dominated by main::@2 main::@3 anim anim::@6 anim::@1 main @begin @51
|
||||
anim::@2 dominated by main::@2 main::@3 anim anim::@2 anim::@1 main @begin @51
|
||||
anim::@7 dominated by main::@2 main::@3 anim anim::@2 anim::@1 anim::@7 main @begin @51
|
||||
anim::@3 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 main @begin @51
|
||||
anim::@8 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 anim::@8 main @begin @51
|
||||
anim::@4 dominated by main::@2 main::@3 anim anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @51
|
||||
anim::@5 dominated by main::@2 main::@3 anim anim::@5 anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @51
|
||||
anim::@return dominated by main::@2 main::@3 anim anim::@5 anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 anim::@return main @begin @51
|
||||
anim::@15 dominated by main::@2 main::@3 anim anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin anim::@15 @51
|
||||
anim::@14 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 anim::@8 main @begin anim::@14 @51
|
||||
init dominated by init main @begin @51
|
||||
init::@1 dominated by init main @begin init::@1 @51
|
||||
init::@2 dominated by init main @begin init::@2 init::@1 @51
|
||||
init::@4 dominated by init main @begin init::@2 init::@1 init::@4 @51
|
||||
init::@5 dominated by init main @begin init::@2 init::@1 init::@5 init::@4 @51
|
||||
init::@6 dominated by init main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51
|
||||
init::@7 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 @51
|
||||
init::@8 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@8 @51
|
||||
init::@9 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@9 init::@8 @51
|
||||
init::@return dominated by init main @begin init::@return init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@9 init::@8 @51
|
||||
clear_screen dominated by init clear_screen main @begin @51
|
||||
clear_screen::@1 dominated by init clear_screen main @begin @51 clear_screen::@1
|
||||
clear_screen::@return dominated by init clear_screen main @begin @51 clear_screen::@1 clear_screen::@return
|
||||
gen_sintab dominated by init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51
|
||||
gen_sintab::@3 dominated by init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@4 dominated by init gen_sintab main gen_sintab::@4 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@5 dominated by init gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@6 dominated by init gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@7 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@8 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@9 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@10 dominated by gen_sintab::@10 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@11 dominated by gen_sintab::@10 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@12 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
gen_sintab::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@14 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@15 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@15 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@16 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@17 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@17 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@18 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@19 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@20 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@20 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@21 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@22 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@23 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@23 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@23 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 gen_sintab::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@2 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@2 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 progress_inc::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
getFAC dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 getFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
getFAC::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 getFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1 getFAC::@return
|
||||
addMEMtoFAC dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
addMEMtoFAC::@1 dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC::@1 addMEMtoFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
addMEMtoFAC::@return dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC::@1 addMEMtoFAC addMEMtoFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
prepareMEM dominated by init prepareMEM gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51
|
||||
prepareMEM::@return dominated by init prepareMEM gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 prepareMEM::@return
|
||||
mulFACbyMEM dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
mulFACbyMEM::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 mulFACbyMEM::@1 gen_sintab::@3 gen_sintab::@1
|
||||
mulFACbyMEM::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM::@return mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 mulFACbyMEM::@1 gen_sintab::@3 gen_sintab::@1
|
||||
sinFAC dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init sinFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
sinFAC::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init sinFAC sinFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3 gen_sintab::@1
|
||||
divMEMbyFAC dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 divMEMbyFAC gen_sintab::@3
|
||||
divMEMbyFAC::@1 dominated by init divMEMbyFAC::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 divMEMbyFAC gen_sintab::@3
|
||||
divMEMbyFAC::@return dominated by init divMEMbyFAC::@1 divMEMbyFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 divMEMbyFAC gen_sintab::@3
|
||||
setFAC dominated by init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51
|
||||
setFAC::@1 dominated by init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 setFAC::@1 @51
|
||||
setFAC::@return dominated by setFAC::@return init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 setFAC::@1 @51
|
||||
setMEMtoFAC dominated by init setMEMtoFAC gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
setMEMtoFAC::@1 dominated by init setMEMtoFAC setMEMtoFAC::@1 gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
setMEMtoFAC::@return dominated by init setMEMtoFAC setMEMtoFAC::@1 gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 setMEMtoFAC::@return gen_sintab::@3
|
||||
subFACfromARG dominated by init subFACfromARG gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
subFACfromARG::@return dominated by init subFACfromARG gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 subFACfromARG::@return gen_sintab::@3
|
||||
setARGtoFAC dominated by setARGtoFAC init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
setARGtoFAC::@return dominated by setARGtoFAC init gen_sintab main setARGtoFAC::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @51 gen_sintab::@3
|
||||
progress_init dominated by init progress_init main @begin init::@2 init::@1 init::@5 init::@4 @51
|
||||
progress_init::@return dominated by init progress_init main @begin init::@2 init::@1 init::@5 init::@4 progress_init::@return @51
|
||||
gen_sprites dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 @51
|
||||
gen_sprites::@1 dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_sprites::@3 dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 gen_sprites::@3 @51
|
||||
gen_sprites::@return dominated by init main gen_sprites::@return @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 gen_sprites::@3 @51
|
||||
gen_chargen_sprite dominated by init gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@1 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@2 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@6 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@3 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@4 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@7 dominated by init gen_chargen_sprite::@7 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@5 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@8 dominated by init gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@9 dominated by init gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@10 dominated by init gen_chargen_sprite::@10 gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
gen_chargen_sprite::@return dominated by init gen_chargen_sprite::@10 gen_chargen_sprite::@return gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @51
|
||||
place_sprites dominated by init main @begin init::@2 init::@1 @51 place_sprites
|
||||
place_sprites::@1 dominated by init place_sprites::@1 main @begin init::@2 init::@1 @51 place_sprites
|
||||
place_sprites::@return dominated by init place_sprites::@return place_sprites::@1 main @begin init::@2 init::@1 @51 place_sprites
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@2 tails: main::@2 blocks: null
|
||||
@ -6640,17 +6733,17 @@ INITIAL ASM
|
||||
.label sin_idx_y = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @50 [phi:@begin->@50]
|
||||
b50_from_bbegin:
|
||||
jmp b50
|
||||
//SEG4 @50
|
||||
b50:
|
||||
//SEG3 [1] phi from @begin to @51 [phi:@begin->@51]
|
||||
b51_from_bbegin:
|
||||
jmp b51
|
||||
//SEG4 @51
|
||||
b51:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @50 to main [phi:@50->main]
|
||||
main_from_b50:
|
||||
//SEG6 [4] phi from @51 to main [phi:@51->main]
|
||||
main_from_b51:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @50 to @end [phi:@50->@end]
|
||||
bend_from_b50:
|
||||
//SEG7 [3] phi from @51 to @end [phi:@51->@end]
|
||||
bend_from_b51:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -8393,17 +8486,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label sin_idx_y = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @50 [phi:@begin->@50]
|
||||
b50_from_bbegin:
|
||||
jmp b50
|
||||
//SEG4 @50
|
||||
b50:
|
||||
//SEG3 [1] phi from @begin to @51 [phi:@begin->@51]
|
||||
b51_from_bbegin:
|
||||
jmp b51
|
||||
//SEG4 @51
|
||||
b51:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @50 to main [phi:@50->main]
|
||||
main_from_b50:
|
||||
//SEG6 [4] phi from @51 to main [phi:@51->main]
|
||||
main_from_b51:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @50 to @end [phi:@50->@end]
|
||||
bend_from_b50:
|
||||
//SEG7 [3] phi from @51 to @end [phi:@51->@end]
|
||||
bend_from_b51:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -9700,7 +9793,7 @@ place_sprites: {
|
||||
sintab_y: .fill $c5, 0
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b50
|
||||
Removing instruction jmp b51
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b2
|
||||
Removing instruction jmp b3
|
||||
@ -9820,9 +9913,9 @@ Replacing label b2_from_b8 with b2
|
||||
Replacing label b1_from_b9 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b50_from_bbegin:
|
||||
Removing instruction main_from_b50:
|
||||
Removing instruction bend_from_b50:
|
||||
Removing instruction b51_from_bbegin:
|
||||
Removing instruction main_from_b51:
|
||||
Removing instruction bend_from_b51:
|
||||
Removing instruction b2_from_b6:
|
||||
Removing instruction b3_from_b2:
|
||||
Removing instruction b1_from_b3:
|
||||
@ -9889,7 +9982,7 @@ Removing instruction b4_from_b5:
|
||||
Removing instruction b5_from_b4:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b50:
|
||||
Removing instruction b51:
|
||||
Removing instruction bend:
|
||||
Removing instruction init_from_main:
|
||||
Removing instruction b2_from_main:
|
||||
@ -10018,7 +10111,7 @@ Removing instruction jmp b2
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @50
|
||||
(label) @51
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BORDERCOL
|
||||
@ -10391,12 +10484,12 @@ Score: 767890
|
||||
.label sin_idx_x = 2
|
||||
.label sin_idx_y = 3
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @50 [phi:@begin->@50]
|
||||
//SEG4 @50
|
||||
//SEG3 [1] phi from @begin to @51 [phi:@begin->@51]
|
||||
//SEG4 @51
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @50 to main [phi:@50->main]
|
||||
//SEG6 [4] phi from @51 to main [phi:@51->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @50 to @end [phi:@50->@end]
|
||||
//SEG7 [3] phi from @51 to @end [phi:@51->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @50
|
||||
(label) @51
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BORDERCOL
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@32
|
||||
@32: scope:[] from @begin
|
||||
to:@33
|
||||
@33: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @32
|
||||
@end: scope:[] from @33
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @32
|
||||
main: scope:[main] from @33
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin16s_gen param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
|
@ -378,6 +378,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -392,13 +412,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -475,6 +488,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -996,6 +1011,35 @@ endproc // mulu8_sel()
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -1024,12 +1068,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -1510,6 +1548,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -2354,6 +2406,54 @@ mulu8_sel::@1: scope:[mulu8_sel] from
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@19
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -2376,8 +2476,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -2400,17 +2500,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -2425,8 +2516,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -2444,8 +2535,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -2463,8 +2554,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -2474,8 +2565,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -2485,8 +2576,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -2504,8 +2595,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
@28: scope:[] from @27
|
||||
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
|
||||
@ -2516,8 +2607,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -2525,8 +2616,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -2544,8 +2635,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -2554,8 +2645,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
main: scope:[main] from
|
||||
(word) main::wavelength ← (byte/signed byte/word/signed word/dword/signed dword) 120
|
||||
(signed word[120]) main::sintab1 ← { fill( 120, 0) }
|
||||
@ -2587,10 +2678,10 @@ main::@4: scope:[main] from main::@2
|
||||
main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
@33: scope:[] from @32
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @32
|
||||
@end: scope:[] from @33
|
||||
|
||||
Removing unused procedure div8s
|
||||
Removing unused procedure div16s
|
||||
@ -2598,8 +2689,9 @@ Removing unused procedure mul8s
|
||||
Removing unused procedure mul8su
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin8s_gen
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
Removing unused procedure print_set_screen
|
||||
@ -2655,12 +2747,12 @@ Removing empty block @15
|
||||
Removing empty block @16
|
||||
Removing empty block mulu16_sel::@1
|
||||
Removing empty block @17
|
||||
Removing empty block @19
|
||||
Removing empty block @20
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @19
|
||||
Removing empty block @20
|
||||
Removing empty block @21
|
||||
Removing empty block @22
|
||||
Removing empty block @23
|
||||
@ -2672,6 +2764,7 @@ Removing empty block @28
|
||||
Removing empty block @29
|
||||
Removing empty block @30
|
||||
Removing empty block @31
|
||||
Removing empty block @32
|
||||
Removing empty block main::@4
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
divr16u modifies rem16u
|
||||
@ -3078,7 +3171,7 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2
|
||||
(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:@32
|
||||
to:@33
|
||||
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 )
|
||||
@ -3222,11 +3315,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#35
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @32
|
||||
(byte*) print_char_cursor#53 ← phi( @32/(byte*) print_char_cursor#50 )
|
||||
(byte*) print_line_cursor#13 ← phi( @32/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#5 ← phi( @32/(byte*) print_screen#6 )
|
||||
(word) rem16u#23 ← phi( @32/(word) rem16u#25 )
|
||||
main: scope:[main] from @33
|
||||
(byte*) print_char_cursor#53 ← phi( @33/(byte*) print_char_cursor#50 )
|
||||
(byte*) print_line_cursor#13 ← phi( @33/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#5 ← phi( @33/(byte*) print_screen#6 )
|
||||
(word) rem16u#23 ← phi( @33/(word) rem16u#25 )
|
||||
(word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) 120
|
||||
(signed word[120]) main::sintab1#0 ← { fill( 120, 0) }
|
||||
(signed word*) sin16s_gen::sintab#1 ← (signed word[120]) main::sintab1#0
|
||||
@ -3324,29 +3417,29 @@ main::@return: scope:[main] from main::@8
|
||||
(byte*) print_char_cursor#20 ← (byte*) print_char_cursor#40
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @18
|
||||
@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 )
|
||||
call main param-assignment
|
||||
to:@33
|
||||
@33: scope:[] from @32
|
||||
(byte*) print_char_cursor#41 ← phi( @32/(byte*) print_char_cursor#20 )
|
||||
(byte*) print_line_cursor#9 ← phi( @32/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#19 ← phi( @32/(word) rem16u#9 )
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
(byte*) print_char_cursor#41 ← phi( @33/(byte*) print_char_cursor#20 )
|
||||
(byte*) print_line_cursor#9 ← phi( @33/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#19 ← phi( @33/(word) rem16u#9 )
|
||||
(word) rem16u#10 ← (word) rem16u#19
|
||||
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#9
|
||||
(byte*) print_char_cursor#21 ← (byte*) print_char_cursor#41
|
||||
to:@end
|
||||
@end: scope:[] from @33
|
||||
@end: scope:[] from @34
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @12
|
||||
(label) @18
|
||||
(label) @2
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @34
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
@ -4454,7 +4547,7 @@ Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) main::@6
|
||||
Culled Empty Block (label) main::@9
|
||||
Culled Empty Block (label) @33
|
||||
Culled Empty Block (label) @34
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: rem16u#1 divr16u::rem#11
|
||||
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
|
||||
@ -4699,7 +4792,7 @@ 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
|
||||
Block Sequence Planned @begin @32 @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_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_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
|
||||
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_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_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
|
||||
Added new block during phi lifting main::@10(between main::@8 and main::@1)
|
||||
Added new block during phi lifting main::@11(between main::@1 and main::@2)
|
||||
Added new block during phi lifting print_sword::@5(between print_sword and print_sword::@1)
|
||||
@ -4713,9 +4806,9 @@ Added new block during phi lifting mul16u::@10(between mul16u::@2 and mul16u::@4
|
||||
Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1)
|
||||
Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2)
|
||||
Added new block during phi lifting divr16u::@10(between divr16u::@2 and divr16u::@3)
|
||||
Block Sequence Planned @begin @32 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return main::@10 main::@11 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_sword::@5 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 print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 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 sin16s::@15 sin16s::@14 sin16s::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9
|
||||
Block Sequence Planned @begin @33 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return main::@10 main::@11 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_sword::@5 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 print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 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 sin16s::@15 sin16s::@14 sin16s::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @32
|
||||
Adding NOP phi() at start of @33
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -4849,9 +4942,9 @@ Culled Empty Block (label) mul16u::@10
|
||||
Culled Empty Block (label) divr16u::@8
|
||||
Culled Empty Block (label) divr16u::@10
|
||||
Culled Empty Block (label) divr16u::@9
|
||||
Block Sequence Planned @begin @32 @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_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_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 sin16s::@15 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
|
||||
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_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_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 sin16s::@15 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
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @32
|
||||
Adding NOP phi() at start of @33
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -4898,14 +4991,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@32
|
||||
@32: scope:[] from @begin
|
||||
to:@33
|
||||
@33: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @32
|
||||
@end: scope:[] from @33
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @32
|
||||
main: scope:[main] from @33
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin16s_gen param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
@ -5219,76 +5312,76 @@ divr16u::@return: scope:[divr16u] from divr16u::@6
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@32 dominated by @32 @begin
|
||||
@end dominated by @end @32 @begin
|
||||
main dominated by main @32 @begin
|
||||
main::@5 dominated by main main::@5 @32 @begin
|
||||
main::@1 dominated by main main::@1 main::@5 @32 @begin
|
||||
main::@3 dominated by main main::@1 main::@5 main::@3 @32 @begin
|
||||
main::@2 dominated by main main::@1 main::@2 main::@5 @32 @begin
|
||||
main::@7 dominated by main::@7 main main::@1 main::@2 main::@5 @32 @begin
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@2 main::@5 @32 @begin
|
||||
main::@return dominated by main::@7 main::@8 main main::@1 main::@2 main::@5 @32 @begin main::@return
|
||||
print_str dominated by main main::@1 main::@5 @32 @begin print_str
|
||||
print_str::@1 dominated by main main::@1 main::@5 @32 @begin print_str::@1 print_str
|
||||
print_str::@return dominated by main main::@1 main::@5 @32 @begin print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by main main::@1 main::@5 @32 @begin print_str::@1 print_str::@2 print_str
|
||||
print_sword dominated by main main::@1 main::@2 main::@5 @32 @begin print_sword
|
||||
print_sword::@2 dominated by print_sword::@2 main main::@1 main::@2 main::@5 @32 @begin print_sword
|
||||
print_sword::@4 dominated by print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 @32 @begin print_sword
|
||||
print_sword::@1 dominated by print_sword::@1 main main::@1 main::@2 main::@5 @32 @begin print_sword
|
||||
print_sword::@return dominated by print_sword::@1 main main::@1 main::@2 main::@5 @32 @begin print_sword::@return print_sword
|
||||
print_word dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @32 @begin print_sword
|
||||
print_word::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @32 @begin print_word::@1 print_sword
|
||||
print_word::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @32 @begin print_word::@return print_word::@1 print_sword
|
||||
print_byte dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @32 @begin print_byte print_sword
|
||||
print_byte::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @32 @begin print_byte::@1 print_byte print_sword
|
||||
print_byte::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @32 @begin print_byte::@return print_byte::@1 print_byte print_sword
|
||||
print_char dominated by main print_char main::@1 main::@2 main::@5 @32 @begin print_sword
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 main::@5 @32 print_char::@return @begin print_sword
|
||||
print_cls dominated by main main::@5 @32 @begin print_cls
|
||||
print_cls::@1 dominated by main main::@5 @32 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 @32 @begin print_cls::@return print_cls::@1 print_cls
|
||||
sin16s_gen dominated by main @32 @begin sin16s_gen
|
||||
sin16s_gen::@3 dominated by main @32 @begin sin16s_gen sin16s_gen::@3
|
||||
sin16s_gen::@1 dominated by main @32 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s_gen::@4 dominated by main @32 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s_gen::@return dominated by main @32 sin16s_gen::@return @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s::@4 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4
|
||||
sin16s::@1 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1
|
||||
sin16s::@5 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5
|
||||
sin16s::@2 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2
|
||||
sin16s::@8 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2
|
||||
sin16s::@9 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2
|
||||
sin16s::@10 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2
|
||||
sin16s::@11 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@12 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@6 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@3 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
|
||||
sin16s::@return dominated by main @32 sin16s @begin sin16s::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
|
||||
sin16s::@15 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
mulu16_sel dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mulu16_sel::@2 dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@return mulu16_sel::@2
|
||||
mul16u dominated by main mul16u @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@1 dominated by main mul16u mul16u::@1 @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@return dominated by main mul16u mul16u::@1 @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mul16u::@return
|
||||
mul16u::@2 dominated by main mul16u mul16u::@1 mul16u::@2 @32 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@7 dominated by main mul16u mul16u::@1 mul16u::@2 @32 sin16s @begin mul16u::@7 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@4 dominated by main mul16u mul16u::@1 mul16u::@2 @32 sin16s @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
div32u16u dominated by main @32 @begin sin16s_gen div32u16u
|
||||
div32u16u::@2 dominated by main div32u16u::@2 @32 @begin sin16s_gen div32u16u
|
||||
div32u16u::@3 dominated by main div32u16u::@2 @32 div32u16u::@3 @begin sin16s_gen div32u16u
|
||||
div32u16u::@return dominated by main div32u16u::@2 @32 div32u16u::@3 @begin sin16s_gen div32u16u div32u16u::@return
|
||||
divr16u dominated by divr16u main @32 @begin sin16s_gen div32u16u
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @32 @begin sin16s_gen div32u16u
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @32 @begin sin16s_gen div32u16u
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @32 @begin sin16s_gen div32u16u
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @32 @begin sin16s_gen div32u16u
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @32 @begin sin16s_gen div32u16u
|
||||
divr16u::@6 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @32 @begin sin16s_gen div32u16u
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @32 @begin sin16s_gen div32u16u divr16u::@return
|
||||
@33 dominated by @33 @begin
|
||||
@end dominated by @end @33 @begin
|
||||
main dominated by main @33 @begin
|
||||
main::@5 dominated by main main::@5 @33 @begin
|
||||
main::@1 dominated by main main::@1 main::@5 @33 @begin
|
||||
main::@3 dominated by main main::@1 main::@5 main::@3 @33 @begin
|
||||
main::@2 dominated by main main::@1 main::@2 main::@5 @33 @begin
|
||||
main::@7 dominated by main::@7 main main::@1 main::@2 main::@5 @33 @begin
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@2 main::@5 @33 @begin
|
||||
main::@return dominated by main::@7 main::@8 main main::@1 main::@2 main::@5 @33 @begin main::@return
|
||||
print_str dominated by main main::@1 main::@5 @33 @begin print_str
|
||||
print_str::@1 dominated by main main::@1 main::@5 @33 @begin print_str::@1 print_str
|
||||
print_str::@return dominated by main main::@1 main::@5 @33 @begin print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by main main::@1 main::@5 @33 @begin print_str::@1 print_str::@2 print_str
|
||||
print_sword dominated by main main::@1 main::@2 main::@5 @33 @begin print_sword
|
||||
print_sword::@2 dominated by print_sword::@2 main main::@1 main::@2 main::@5 @33 @begin print_sword
|
||||
print_sword::@4 dominated by print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 @33 @begin print_sword
|
||||
print_sword::@1 dominated by print_sword::@1 main main::@1 main::@2 main::@5 @33 @begin print_sword
|
||||
print_sword::@return dominated by print_sword::@1 main main::@1 main::@2 main::@5 @33 @begin print_sword::@return print_sword
|
||||
print_word dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @33 @begin print_sword
|
||||
print_word::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @33 @begin print_word::@1 print_sword
|
||||
print_word::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @33 @begin print_word::@return print_word::@1 print_sword
|
||||
print_byte dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @33 @begin print_byte print_sword
|
||||
print_byte::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @33 @begin print_byte::@1 print_byte print_sword
|
||||
print_byte::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @33 @begin print_byte::@return print_byte::@1 print_byte print_sword
|
||||
print_char dominated by main print_char main::@1 main::@2 main::@5 @33 @begin print_sword
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 main::@5 @33 print_char::@return @begin print_sword
|
||||
print_cls dominated by main main::@5 @33 @begin print_cls
|
||||
print_cls::@1 dominated by main main::@5 @33 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 @33 @begin print_cls::@return print_cls::@1 print_cls
|
||||
sin16s_gen dominated by main @33 @begin sin16s_gen
|
||||
sin16s_gen::@3 dominated by main @33 @begin sin16s_gen sin16s_gen::@3
|
||||
sin16s_gen::@1 dominated by main @33 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s_gen::@4 dominated by main @33 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s_gen::@return dominated by main sin16s_gen::@return @33 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s::@4 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4
|
||||
sin16s::@1 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1
|
||||
sin16s::@5 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5
|
||||
sin16s::@2 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2
|
||||
sin16s::@8 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2
|
||||
sin16s::@9 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2
|
||||
sin16s::@10 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2
|
||||
sin16s::@11 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@12 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@6 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@3 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
|
||||
sin16s::@return dominated by main @33 sin16s @begin sin16s::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
|
||||
sin16s::@15 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
mulu16_sel dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mulu16_sel::@2 dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@return mulu16_sel::@2
|
||||
mul16u dominated by main mul16u @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@1 dominated by main mul16u mul16u::@1 @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@return dominated by main mul16u mul16u::@1 @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mul16u::@return
|
||||
mul16u::@2 dominated by main mul16u mul16u::@1 mul16u::@2 @33 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@7 dominated by main mul16u mul16u::@1 mul16u::@2 @33 sin16s @begin mul16u::@7 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@4 dominated by main mul16u mul16u::@1 mul16u::@2 @33 sin16s @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
div32u16u dominated by main @33 @begin sin16s_gen div32u16u
|
||||
div32u16u::@2 dominated by main div32u16u::@2 @33 @begin sin16s_gen div32u16u
|
||||
div32u16u::@3 dominated by main div32u16u::@2 div32u16u::@3 @33 @begin sin16s_gen div32u16u
|
||||
div32u16u::@return dominated by main div32u16u::@2 div32u16u::@3 @33 @begin sin16s_gen div32u16u div32u16u::@return
|
||||
divr16u dominated by divr16u main @33 @begin sin16s_gen div32u16u
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @33 @begin sin16s_gen div32u16u
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @33 @begin sin16s_gen div32u16u
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @33 @begin sin16s_gen div32u16u
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @33 @begin sin16s_gen div32u16u
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @33 @begin sin16s_gen div32u16u
|
||||
divr16u::@6 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @33 @begin sin16s_gen div32u16u
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @33 @begin sin16s_gen div32u16u divr16u::@return
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@8 blocks: null
|
||||
@ -5722,17 +5815,17 @@ INITIAL ASM
|
||||
.label print_char_cursor = $a
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @32 [phi:@begin->@32]
|
||||
b32_from_bbegin:
|
||||
jmp b32
|
||||
//SEG4 @32
|
||||
b32:
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
b33_from_bbegin:
|
||||
jmp b33
|
||||
//SEG4 @33
|
||||
b33:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @32 to main [phi:@32->main]
|
||||
main_from_b32:
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
main_from_b33:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @32 to @end [phi:@32->@end]
|
||||
bend_from_b32:
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
bend_from_b33:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -7250,17 +7343,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_char_cursor = 8
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @32 [phi:@begin->@32]
|
||||
b32_from_bbegin:
|
||||
jmp b32
|
||||
//SEG4 @32
|
||||
b32:
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
b33_from_bbegin:
|
||||
jmp b33
|
||||
//SEG4 @33
|
||||
b33:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @32 to main [phi:@32->main]
|
||||
main_from_b32:
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
main_from_b33:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @32 to @end [phi:@32->@end]
|
||||
bend_from_b32:
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
bend_from_b33:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -8319,7 +8412,7 @@ divr16u: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b32
|
||||
Removing instruction jmp b33
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b5
|
||||
Removing instruction jmp b1
|
||||
@ -8404,9 +8497,9 @@ Replacing label b3_from_b2 with b3
|
||||
Replacing label b3_from_b2 with b3
|
||||
Replacing label b1_from_b3 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b32_from_bbegin:
|
||||
Removing instruction main_from_b32:
|
||||
Removing instruction bend_from_b32:
|
||||
Removing instruction b33_from_bbegin:
|
||||
Removing instruction main_from_b33:
|
||||
Removing instruction bend_from_b33:
|
||||
Removing instruction b5_from_main:
|
||||
Removing instruction print_cls_from_b5:
|
||||
Removing instruction b1_from_b8:
|
||||
@ -8437,7 +8530,7 @@ Removing instruction b2_from_b4:
|
||||
Removing instruction b3_from_b2:
|
||||
Removing instruction b3_from_b5:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b32:
|
||||
Removing instruction b33:
|
||||
Removing instruction bend:
|
||||
Removing instruction sin16s_gen_from_main:
|
||||
Removing instruction b5:
|
||||
@ -8514,7 +8607,7 @@ Removing unreachable instruction jmp b3
|
||||
Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
@ -8804,12 +8897,12 @@ Score: 20907
|
||||
.label rem16u = 4
|
||||
.label print_char_cursor = 8
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @32 [phi:@begin->@32]
|
||||
//SEG4 @32
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
//SEG4 @33
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @32 to main [phi:@32->main]
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @32 to @end [phi:@32->@end]
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@34
|
||||
@34: scope:[] from @begin
|
||||
to:@35
|
||||
@35: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @34
|
||||
@end: scope:[] from @35
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @34
|
||||
main: scope:[main] from @35
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin16s_gen param-assignment [ divr16u::rem#11 ] ( main:2 [ divr16u::rem#11 ] )
|
||||
to:main::@5
|
||||
|
@ -442,6 +442,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -456,13 +476,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -539,6 +552,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -1128,6 +1143,35 @@ endproc // sin16sb()
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -1156,12 +1200,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -1652,6 +1690,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -2635,6 +2687,54 @@ sin16sb::@7: scope:[sin16sb] from
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@21
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -2657,8 +2757,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -2681,17 +2781,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -2706,8 +2797,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -2725,8 +2816,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -2744,8 +2835,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -2755,8 +2846,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -2766,8 +2857,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -2785,8 +2876,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
@30: scope:[] from @29
|
||||
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
|
||||
@ -2797,8 +2888,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -2806,8 +2897,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -2825,8 +2916,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -2835,8 +2926,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
main: scope:[main] from
|
||||
(word) main::wavelength ← (byte/signed byte/word/signed word/dword/signed dword) 120
|
||||
(signed word[120]) main::sintab1 ← { fill( 120, 0) }
|
||||
@ -2874,10 +2965,10 @@ main::@4: scope:[main] from main::@2
|
||||
main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @33
|
||||
@35: scope:[] from @34
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @34
|
||||
@end: scope:[] from @35
|
||||
|
||||
Removing unused procedure div8s
|
||||
Removing unused procedure div16s
|
||||
@ -2885,8 +2976,9 @@ Removing unused procedure mul8s
|
||||
Removing unused procedure mul8su
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin8s_gen
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
Removing unused procedure print_set_screen
|
||||
@ -2945,12 +3037,12 @@ Removing empty block @18
|
||||
Removing empty block sin16s_genb::@2
|
||||
Removing empty block @19
|
||||
Removing empty block sin16sb::@7
|
||||
Removing empty block @21
|
||||
Removing empty block @22
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @21
|
||||
Removing empty block @22
|
||||
Removing empty block @23
|
||||
Removing empty block @24
|
||||
Removing empty block @25
|
||||
@ -2962,6 +3054,7 @@ Removing empty block @30
|
||||
Removing empty block @31
|
||||
Removing empty block @32
|
||||
Removing empty block @33
|
||||
Removing empty block @34
|
||||
Removing empty block main::@4
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
divr16u modifies rem16u
|
||||
@ -3547,7 +3640,7 @@ sin16sb::@return: scope:[sin16sb] from sin16sb::@3
|
||||
(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:@35
|
||||
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 )
|
||||
@ -3691,11 +3784,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#35
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @34
|
||||
(byte*) print_char_cursor#55 ← phi( @34/(byte*) print_char_cursor#50 )
|
||||
(byte*) print_line_cursor#15 ← phi( @34/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#6 ← phi( @34/(byte*) print_screen#7 )
|
||||
(word) rem16u#31 ← phi( @34/(word) rem16u#33 )
|
||||
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_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
|
||||
(signed word[120]) main::sintab1#0 ← { fill( 120, 0) }
|
||||
(signed word[120]) main::sintab2#0 ← { fill( 120, 0) }
|
||||
@ -3813,29 +3906,29 @@ main::@return: scope:[main] from main::@9
|
||||
(byte*) print_char_cursor#20 ← (byte*) print_char_cursor#40
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @20
|
||||
@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 )
|
||||
call main param-assignment
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
(byte*) print_char_cursor#41 ← phi( @34/(byte*) print_char_cursor#20 )
|
||||
(byte*) print_line_cursor#9 ← phi( @34/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#25 ← phi( @34/(word) rem16u#12 )
|
||||
to:@36
|
||||
@36: scope:[] from @35
|
||||
(byte*) print_char_cursor#41 ← phi( @35/(byte*) print_char_cursor#20 )
|
||||
(byte*) print_line_cursor#9 ← phi( @35/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#25 ← phi( @35/(word) rem16u#12 )
|
||||
(word) rem16u#13 ← (word) rem16u#25
|
||||
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#9
|
||||
(byte*) print_char_cursor#21 ← (byte*) print_char_cursor#41
|
||||
to:@end
|
||||
@end: scope:[] from @35
|
||||
@end: scope:[] from @36
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @12
|
||||
(label) @2
|
||||
(label) @20
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @36
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
@ -5300,7 +5393,7 @@ Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) main::@7
|
||||
Culled Empty Block (label) main::@10
|
||||
Culled Empty Block (label) @35
|
||||
Culled Empty Block (label) @36
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1
|
||||
Not aliassing across scopes: divr16u::divisor#6 divr16u::divisor#0
|
||||
@ -5705,7 +5798,7 @@ 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 @34 @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
|
||||
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)
|
||||
Added new block during phi lifting main::@12(between main::@1 and main::@2)
|
||||
Added new block during phi lifting print_sword::@5(between print_sword and print_sword::@1)
|
||||
@ -5724,9 +5817,9 @@ Added new block during phi lifting sin16s::@13(between sin16s and sin16s::@1)
|
||||
Fixing phi predecessor for sin16s::isUpper#2 to new block ( sin16s -> sin16s::@13 ) during phi lifting.
|
||||
Added new block during phi lifting sin16s::@14(between sin16s::@1 and sin16s::@2)
|
||||
Added new block during phi lifting sin16s::@15(between sin16s::@12 and sin16s::@3)
|
||||
Block Sequence Planned @begin @34 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return main::@11 main::@12 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_sword::@5 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 print_cls::@3 sin16s_genb sin16s_genb::@3 sin16s_genb::@1 sin16s_genb::@4 sin16s_genb::@return sin16s_genb::@5 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 sin16sb::@15 sin16sb::@14 sin16sb::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 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 sin16s::@15 sin16s::@14 sin16s::@13
|
||||
Block Sequence Planned @begin @35 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return main::@11 main::@12 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_sword::@5 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 print_cls::@3 sin16s_genb sin16s_genb::@3 sin16s_genb::@1 sin16s_genb::@4 sin16s_genb::@return sin16s_genb::@5 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 sin16sb::@15 sin16sb::@14 sin16sb::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 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 sin16s::@15 sin16s::@14 sin16s::@13
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @34
|
||||
Adding NOP phi() at start of @35
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -5891,9 +5984,9 @@ Culled Empty Block (label) divr16u::@9
|
||||
Culled Empty Block (label) sin16s_gen::@5
|
||||
Culled Empty Block (label) sin16s::@14
|
||||
Culled Empty Block (label) sin16s::@13
|
||||
Block Sequence Planned @begin @34 @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 sin16sb::@15 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::@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 sin16s::@15
|
||||
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 sin16sb::@15 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::@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 sin16s::@15
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @34
|
||||
Adding NOP phi() at start of @35
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -5941,14 +6034,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@34
|
||||
@34: scope:[] from @begin
|
||||
to:@35
|
||||
@35: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @34
|
||||
@end: scope:[] from @35
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @34
|
||||
main: scope:[main] from @35
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin16s_gen param-assignment [ divr16u::rem#11 ] ( main:2 [ divr16u::rem#11 ] )
|
||||
to:main::@5
|
||||
@ -6368,95 +6461,95 @@ sin16s::@15: scope:[sin16s] from sin16s::@12
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@34 dominated by @34 @begin
|
||||
@end dominated by @end @34 @begin
|
||||
main dominated by main @34 @begin
|
||||
main::@5 dominated by main main::@5 @34 @begin
|
||||
main::@6 dominated by main main::@5 main::@6 @34 @begin
|
||||
main::@1 dominated by main main::@1 main::@5 main::@6 @34 @begin
|
||||
main::@3 dominated by main main::@1 main::@5 main::@6 main::@3 @34 @begin
|
||||
main::@2 dominated by main main::@1 main::@2 main::@5 main::@6 @34 @begin
|
||||
main::@8 dominated by main::@8 main main::@1 main::@2 main::@5 main::@6 @34 @begin
|
||||
main::@9 dominated by main::@9 main::@8 main main::@1 main::@2 main::@5 main::@6 @34 @begin
|
||||
main::@return dominated by main::@9 main::@8 main main::@1 main::@2 main::@5 main::@6 @34 @begin main::@return
|
||||
print_str dominated by main main::@1 main::@5 main::@6 @34 @begin print_str
|
||||
print_str::@1 dominated by main main::@1 main::@5 main::@6 @34 @begin print_str::@1 print_str
|
||||
print_str::@return dominated by main main::@1 main::@5 main::@6 @34 @begin print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by main main::@1 main::@5 main::@6 @34 @begin print_str::@1 print_str::@2 print_str
|
||||
print_sword dominated by main main::@1 main::@2 main::@5 main::@6 @34 @begin print_sword
|
||||
print_sword::@2 dominated by print_sword::@2 main main::@1 main::@2 main::@5 main::@6 @34 @begin print_sword
|
||||
print_sword::@4 dominated by print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 main::@6 @34 @begin print_sword
|
||||
print_sword::@1 dominated by print_sword::@1 main main::@1 main::@2 main::@5 main::@6 @34 @begin print_sword
|
||||
print_sword::@return dominated by print_sword::@1 main main::@1 main::@2 main::@5 main::@6 @34 @begin print_sword::@return print_sword
|
||||
print_word dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @34 @begin print_sword
|
||||
print_word::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @34 @begin print_word::@1 print_sword
|
||||
print_word::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @34 @begin print_word::@return print_word::@1 print_sword
|
||||
print_byte dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @34 @begin print_byte print_sword
|
||||
print_byte::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @34 @begin print_byte::@1 print_byte print_sword
|
||||
print_byte::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @34 @begin print_byte::@return print_byte::@1 print_byte print_sword
|
||||
print_char dominated by main print_char main::@1 main::@2 main::@5 main::@6 @34 @begin print_sword
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 main::@5 main::@6 @34 print_char::@return @begin print_sword
|
||||
print_cls dominated by main main::@5 main::@6 @34 @begin print_cls
|
||||
print_cls::@1 dominated by main main::@5 main::@6 @34 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 main::@6 @34 @begin print_cls::@return print_cls::@1 print_cls
|
||||
sin16s_genb dominated by main sin16s_genb main::@5 @34 @begin
|
||||
sin16s_genb::@3 dominated by main sin16s_genb main::@5 @34 @begin sin16s_genb::@3
|
||||
sin16s_genb::@1 dominated by main sin16s_genb main::@5 @34 @begin sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16s_genb::@4 dominated by main sin16s_genb main::@5 @34 @begin sin16s_genb::@3 sin16s_genb::@4 sin16s_genb::@1
|
||||
sin16s_genb::@return dominated by sin16s_genb::@return main sin16s_genb main::@5 @34 @begin sin16s_genb::@3 sin16s_genb::@4 sin16s_genb::@1
|
||||
sin16sb dominated by main sin16s_genb main::@5 @34 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@4 dominated by main sin16s_genb main::@5 @34 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@4
|
||||
sin16sb::@1 dominated by main sin16s_genb sin16sb::@1 main::@5 @34 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@5 dominated by main sin16s_genb sin16sb::@1 main::@5 @34 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@5
|
||||
sin16sb::@2 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @34 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@8 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @34 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@8
|
||||
sin16sb::@9 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @34 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@10 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @34 @begin sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@11 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @34 sin16sb::@11 @begin sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@12 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @34 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@6 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @34 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@6 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@3 dominated by main sin16s_genb sin16sb::@3 sin16sb::@2 sin16sb::@1 main::@5 @34 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@return dominated by main sin16s_genb sin16sb::@3 sin16sb::@2 sin16sb::@1 main::@5 @34 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb sin16sb::@return sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@15 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @34 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb::@15 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
mulu16_sel dominated by main @34 @begin mulu16_sel
|
||||
mulu16_sel::@2 dominated by main @34 @begin mulu16_sel mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main @34 @begin mulu16_sel mulu16_sel::@return mulu16_sel::@2
|
||||
mul16u dominated by main mul16u @34 @begin mulu16_sel
|
||||
mul16u::@1 dominated by main mul16u mul16u::@1 @34 @begin mulu16_sel
|
||||
mul16u::@return dominated by main mul16u mul16u::@1 @34 @begin mulu16_sel mul16u::@return
|
||||
mul16u::@2 dominated by main mul16u mul16u::@1 mul16u::@2 @34 @begin mulu16_sel
|
||||
mul16u::@7 dominated by main mul16u mul16u::@1 mul16u::@2 @34 @begin mul16u::@7 mulu16_sel
|
||||
mul16u::@4 dominated by main mul16u mul16u::@1 mul16u::@2 @34 @begin mul16u::@4 mulu16_sel
|
||||
div32u16u dominated by main @34 @begin div32u16u
|
||||
div32u16u::@2 dominated by main div32u16u::@2 @34 @begin div32u16u
|
||||
div32u16u::@3 dominated by main div32u16u::@2 div32u16u::@3 @34 @begin div32u16u
|
||||
div32u16u::@return dominated by main div32u16u::@2 div32u16u::@3 @34 @begin div32u16u div32u16u::@return
|
||||
divr16u dominated by divr16u main @34 @begin div32u16u
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @34 @begin div32u16u
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @34 @begin div32u16u
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @34 @begin div32u16u
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @34 @begin div32u16u
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @34 @begin div32u16u
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @34 @begin div32u16u divr16u::@return
|
||||
sin16s_gen dominated by main @34 @begin sin16s_gen
|
||||
sin16s_gen::@3 dominated by main @34 @begin sin16s_gen sin16s_gen::@3
|
||||
sin16s_gen::@1 dominated by main @34 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s_gen::@4 dominated by main @34 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s_gen::@return dominated by main sin16s_gen::@return @34 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s::@4 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4
|
||||
sin16s::@1 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1
|
||||
sin16s::@5 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5
|
||||
sin16s::@2 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2
|
||||
sin16s::@8 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2
|
||||
sin16s::@9 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2
|
||||
sin16s::@10 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2
|
||||
sin16s::@11 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@12 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@6 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@3 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
|
||||
sin16s::@return dominated by main @34 sin16s @begin sin16s::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
|
||||
sin16s::@15 dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
@35 dominated by @35 @begin
|
||||
@end dominated by @end @35 @begin
|
||||
main dominated by main @35 @begin
|
||||
main::@5 dominated by main main::@5 @35 @begin
|
||||
main::@6 dominated by main main::@5 main::@6 @35 @begin
|
||||
main::@1 dominated by main main::@1 main::@5 main::@6 @35 @begin
|
||||
main::@3 dominated by main main::@1 main::@5 main::@6 main::@3 @35 @begin
|
||||
main::@2 dominated by main main::@1 main::@2 main::@5 main::@6 @35 @begin
|
||||
main::@8 dominated by main::@8 main main::@1 main::@2 main::@5 main::@6 @35 @begin
|
||||
main::@9 dominated by main::@9 main::@8 main main::@1 main::@2 main::@5 main::@6 @35 @begin
|
||||
main::@return dominated by main::@9 main::@8 main main::@1 main::@2 main::@5 main::@6 @35 @begin main::@return
|
||||
print_str dominated by main main::@1 main::@5 main::@6 @35 @begin print_str
|
||||
print_str::@1 dominated by main main::@1 main::@5 main::@6 @35 @begin print_str::@1 print_str
|
||||
print_str::@return dominated by main main::@1 main::@5 main::@6 @35 @begin print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by main main::@1 main::@5 main::@6 @35 @begin print_str::@1 print_str::@2 print_str
|
||||
print_sword dominated by main main::@1 main::@2 main::@5 main::@6 @35 @begin print_sword
|
||||
print_sword::@2 dominated by print_sword::@2 main main::@1 main::@2 main::@5 main::@6 @35 @begin print_sword
|
||||
print_sword::@4 dominated by print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 main::@6 @35 @begin print_sword
|
||||
print_sword::@1 dominated by print_sword::@1 main main::@1 main::@2 main::@5 main::@6 @35 @begin print_sword
|
||||
print_sword::@return dominated by print_sword::@1 main main::@1 main::@2 main::@5 main::@6 @35 @begin print_sword::@return print_sword
|
||||
print_word dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @35 @begin print_sword
|
||||
print_word::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @35 @begin print_word::@1 print_sword
|
||||
print_word::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @35 @begin print_word::@return print_word::@1 print_sword
|
||||
print_byte dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @35 @begin print_byte print_sword
|
||||
print_byte::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @35 @begin print_byte::@1 print_byte print_sword
|
||||
print_byte::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @35 @begin print_byte::@return print_byte::@1 print_byte print_sword
|
||||
print_char dominated by main print_char main::@1 main::@2 main::@5 main::@6 @35 @begin print_sword
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 main::@5 main::@6 print_char::@return @35 @begin print_sword
|
||||
print_cls dominated by main main::@5 main::@6 @35 @begin print_cls
|
||||
print_cls::@1 dominated by main main::@5 main::@6 @35 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 main::@6 @35 @begin print_cls::@return print_cls::@1 print_cls
|
||||
sin16s_genb dominated by main sin16s_genb main::@5 @35 @begin
|
||||
sin16s_genb::@3 dominated by main sin16s_genb main::@5 @35 @begin sin16s_genb::@3
|
||||
sin16s_genb::@1 dominated by main sin16s_genb main::@5 @35 @begin sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16s_genb::@4 dominated by main sin16s_genb main::@5 @35 @begin sin16s_genb::@3 sin16s_genb::@4 sin16s_genb::@1
|
||||
sin16s_genb::@return dominated by sin16s_genb::@return main sin16s_genb main::@5 @35 @begin sin16s_genb::@3 sin16s_genb::@4 sin16s_genb::@1
|
||||
sin16sb dominated by main sin16s_genb main::@5 @35 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@4 dominated by main sin16s_genb main::@5 @35 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@4
|
||||
sin16sb::@1 dominated by main sin16s_genb sin16sb::@1 main::@5 @35 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@5 dominated by main sin16s_genb sin16sb::@1 main::@5 @35 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@5
|
||||
sin16sb::@2 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @35 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@8 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @35 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@8
|
||||
sin16sb::@9 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @35 @begin sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@10 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @35 @begin sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@11 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @35 sin16sb::@11 @begin sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@12 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @35 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@6 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @35 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@6 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@3 dominated by main sin16s_genb sin16sb::@3 sin16sb::@2 sin16sb::@1 main::@5 @35 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@return dominated by main sin16s_genb sin16sb::@3 sin16sb::@2 sin16sb::@1 main::@5 @35 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb sin16sb::@return sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@15 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @35 sin16sb::@11 @begin sin16sb::@12 sin16sb::@10 sin16sb::@15 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
mulu16_sel dominated by main @35 @begin mulu16_sel
|
||||
mulu16_sel::@2 dominated by main @35 @begin mulu16_sel mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main @35 @begin mulu16_sel mulu16_sel::@return mulu16_sel::@2
|
||||
mul16u dominated by main mul16u @35 @begin mulu16_sel
|
||||
mul16u::@1 dominated by main mul16u mul16u::@1 @35 @begin mulu16_sel
|
||||
mul16u::@return dominated by main mul16u mul16u::@1 @35 @begin mulu16_sel mul16u::@return
|
||||
mul16u::@2 dominated by main mul16u mul16u::@1 mul16u::@2 @35 @begin mulu16_sel
|
||||
mul16u::@7 dominated by main mul16u mul16u::@1 mul16u::@2 @35 @begin mul16u::@7 mulu16_sel
|
||||
mul16u::@4 dominated by main mul16u mul16u::@1 mul16u::@2 @35 @begin mul16u::@4 mulu16_sel
|
||||
div32u16u dominated by main @35 @begin div32u16u
|
||||
div32u16u::@2 dominated by main div32u16u::@2 @35 @begin div32u16u
|
||||
div32u16u::@3 dominated by main div32u16u::@2 div32u16u::@3 @35 @begin div32u16u
|
||||
div32u16u::@return dominated by main div32u16u::@2 div32u16u::@3 @35 @begin div32u16u div32u16u::@return
|
||||
divr16u dominated by divr16u main @35 @begin div32u16u
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @35 @begin div32u16u
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @35 @begin div32u16u
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @35 @begin div32u16u
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @35 @begin div32u16u
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @35 @begin div32u16u
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @35 @begin div32u16u divr16u::@return
|
||||
sin16s_gen dominated by main @35 @begin sin16s_gen
|
||||
sin16s_gen::@3 dominated by main @35 @begin sin16s_gen sin16s_gen::@3
|
||||
sin16s_gen::@1 dominated by main @35 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s_gen::@4 dominated by main @35 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s_gen::@return dominated by main sin16s_gen::@return @35 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s::@4 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4
|
||||
sin16s::@1 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1
|
||||
sin16s::@5 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5
|
||||
sin16s::@2 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2
|
||||
sin16s::@8 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2
|
||||
sin16s::@9 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2
|
||||
sin16s::@10 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2
|
||||
sin16s::@11 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@12 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@6 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
sin16s::@3 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
|
||||
sin16s::@return dominated by main sin16s @35 @begin sin16s::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
|
||||
sin16s::@15 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@9 blocks: null
|
||||
@ -7056,17 +7149,17 @@ INITIAL ASM
|
||||
.label rem16u = $35
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @34 [phi:@begin->@34]
|
||||
b34_from_bbegin:
|
||||
jmp b34
|
||||
//SEG4 @34
|
||||
b34:
|
||||
//SEG3 [1] phi from @begin to @35 [phi:@begin->@35]
|
||||
b35_from_bbegin:
|
||||
jmp b35
|
||||
//SEG4 @35
|
||||
b35:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @34 to main [phi:@34->main]
|
||||
main_from_b34:
|
||||
//SEG6 [4] phi from @35 to main [phi:@35->main]
|
||||
main_from_b35:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @34 to @end [phi:@34->@end]
|
||||
bend_from_b34:
|
||||
//SEG7 [3] phi from @35 to @end [phi:@35->@end]
|
||||
bend_from_b35:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -9241,17 +9334,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label rem16u = 4
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @34 [phi:@begin->@34]
|
||||
b34_from_bbegin:
|
||||
jmp b34
|
||||
//SEG4 @34
|
||||
b34:
|
||||
//SEG3 [1] phi from @begin to @35 [phi:@begin->@35]
|
||||
b35_from_bbegin:
|
||||
jmp b35
|
||||
//SEG4 @35
|
||||
b35:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @34 to main [phi:@34->main]
|
||||
main_from_b34:
|
||||
//SEG6 [4] phi from @35 to main [phi:@35->main]
|
||||
main_from_b35:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @34 to @end [phi:@34->@end]
|
||||
bend_from_b34:
|
||||
//SEG7 [3] phi from @35 to @end [phi:@35->@end]
|
||||
bend_from_b35:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -10742,7 +10835,7 @@ sin16s: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b34
|
||||
Removing instruction jmp b35
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b5
|
||||
Removing instruction jmp b6
|
||||
@ -10849,9 +10942,9 @@ Replacing label b2_from_b1 with b2
|
||||
Replacing label b2_from_b1 with b2
|
||||
Replacing label b3_from_b15 with b3
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b34_from_bbegin:
|
||||
Removing instruction main_from_b34:
|
||||
Removing instruction bend_from_b34:
|
||||
Removing instruction b35_from_bbegin:
|
||||
Removing instruction main_from_b35:
|
||||
Removing instruction bend_from_b35:
|
||||
Removing instruction b5_from_main:
|
||||
Removing instruction sin16s_genb_from_b5:
|
||||
Removing instruction b6_from_b5:
|
||||
@ -10890,7 +10983,7 @@ Removing instruction b3_from_b15:
|
||||
Removing instruction b3_from_b6:
|
||||
Removing instruction breturn:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b34:
|
||||
Removing instruction b35:
|
||||
Removing instruction bend:
|
||||
Removing instruction sin16s_gen_from_main:
|
||||
Removing instruction b5:
|
||||
@ -10991,7 +11084,7 @@ Removing unreachable instruction jmp b3
|
||||
Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
@ -11380,12 +11473,12 @@ Score: 23259
|
||||
.label print_char_cursor = $b
|
||||
.label rem16u = 4
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @34 [phi:@begin->@34]
|
||||
//SEG4 @34
|
||||
//SEG3 [1] phi from @begin to @35 [phi:@begin->@35]
|
||||
//SEG4 @35
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @34 to main [phi:@34->main]
|
||||
//SEG6 [4] phi from @35 to main [phi:@35->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @34 to @end [phi:@34->@end]
|
||||
//SEG7 [3] phi from @35 to @end [phi:@35->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@32
|
||||
@32: scope:[] from @begin
|
||||
to:@33
|
||||
@33: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @32
|
||||
@end: scope:[] from @33
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @32
|
||||
main: scope:[main] from @33
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin8s_gen param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@32
|
||||
@32: scope:[] from @begin
|
||||
to:@33
|
||||
@33: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @32
|
||||
@end: scope:[] from @33
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @32
|
||||
main: scope:[main] from @33
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin8s_gen param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
|
@ -381,6 +381,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -395,13 +415,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -478,6 +491,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -999,6 +1014,35 @@ endproc // mulu8_sel()
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -1027,12 +1071,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -1527,6 +1565,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -2371,6 +2423,54 @@ mulu8_sel::@1: scope:[mulu8_sel] from
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@19
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -2393,8 +2493,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -2417,17 +2517,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -2442,8 +2533,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -2461,8 +2552,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -2480,8 +2571,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -2491,8 +2582,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -2502,8 +2593,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -2521,8 +2612,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
@28: scope:[] from @27
|
||||
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
|
||||
@ -2533,8 +2624,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -2542,8 +2633,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -2561,8 +2652,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -2571,8 +2662,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
main: scope:[main] from
|
||||
(word) main::wavelength ← (byte/word/signed word/dword/signed dword) 192
|
||||
(signed byte[192]) main::sintabb ← { fill( 192, 0) }
|
||||
@ -2611,18 +2702,19 @@ main::@4: scope:[main] from main::@2
|
||||
main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
@33: scope:[] from @32
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @32
|
||||
@end: scope:[] from @33
|
||||
|
||||
Removing unused procedure div8s
|
||||
Removing unused procedure div16s
|
||||
Removing unused procedure mul8s
|
||||
Removing unused procedure mul8su
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sdword
|
||||
Removing unused procedure print_set_screen
|
||||
@ -2679,12 +2771,12 @@ Removing empty block @16
|
||||
Removing empty block mulu16_sel::@1
|
||||
Removing empty block @17
|
||||
Removing empty block mulu8_sel::@1
|
||||
Removing empty block @19
|
||||
Removing empty block @20
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @19
|
||||
Removing empty block @20
|
||||
Removing empty block @21
|
||||
Removing empty block @22
|
||||
Removing empty block @23
|
||||
@ -2696,6 +2788,7 @@ Removing empty block @28
|
||||
Removing empty block @29
|
||||
Removing empty block @30
|
||||
Removing empty block @31
|
||||
Removing empty block @32
|
||||
Removing empty block main::@4
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
divr16u modifies rem16u
|
||||
@ -3387,7 +3480,7 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2
|
||||
(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:@32
|
||||
to:@33
|
||||
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 )
|
||||
@ -3507,11 +3600,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#12 ← (byte*) print_char_cursor#29
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @32
|
||||
(byte*) print_char_cursor#48 ← phi( @32/(byte*) print_char_cursor#43 )
|
||||
(byte*) print_line_cursor#15 ← phi( @32/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#6 ← phi( @32/(byte*) print_screen#7 )
|
||||
(word) rem16u#36 ← phi( @32/(word) rem16u#38 )
|
||||
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_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
|
||||
(signed byte[192]) main::sintabb#0 ← { fill( 192, 0) }
|
||||
(signed byte*) sin8s_gen::sintab#1 ← (signed byte[192]) main::sintabb#0
|
||||
@ -3618,29 +3711,29 @@ main::@return: scope:[main] from main::@9
|
||||
(byte*) print_char_cursor#17 ← (byte*) print_char_cursor#34
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @18
|
||||
@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 )
|
||||
call main param-assignment
|
||||
to:@33
|
||||
@33: scope:[] from @32
|
||||
(byte*) print_char_cursor#35 ← phi( @32/(byte*) print_char_cursor#17 )
|
||||
(byte*) print_line_cursor#9 ← phi( @32/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#29 ← phi( @32/(word) rem16u#14 )
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
(byte*) print_char_cursor#35 ← phi( @33/(byte*) print_char_cursor#17 )
|
||||
(byte*) print_line_cursor#9 ← phi( @33/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#29 ← phi( @33/(word) rem16u#14 )
|
||||
(word) rem16u#15 ← (word) rem16u#29
|
||||
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#9
|
||||
(byte*) print_char_cursor#18 ← (byte*) print_char_cursor#35
|
||||
to:@end
|
||||
@end: scope:[] from @33
|
||||
@end: scope:[] from @34
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @12
|
||||
(label) @18
|
||||
(label) @2
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @34
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
@ -5239,7 +5332,7 @@ Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) main::@7
|
||||
Culled Empty Block (label) main::@10
|
||||
Culled Empty Block (label) @33
|
||||
Culled Empty Block (label) @34
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: rem16u#1 divr16u::rem#10
|
||||
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
|
||||
@ -5648,7 +5741,7 @@ 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 @32 @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
|
||||
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
|
||||
Added new block during phi lifting main::@11(between main::@9 and main::@1)
|
||||
Added new block during phi lifting main::@12(between main::@1 and main::@2)
|
||||
Added new block during phi lifting print_sbyte::@5(between print_sbyte and print_sbyte::@1)
|
||||
@ -5669,9 +5762,9 @@ Added new block during phi lifting sin8s::@16(between sin8s::@1 and sin8s::@2)
|
||||
Added new block during phi lifting sin8s::@17(between sin8s::@14 and sin8s::@3)
|
||||
Added new block during phi lifting sin8s::@18(between sin8s::@3 and sin8s::@4)
|
||||
Added new block during phi lifting mul8u::@10(between mul8u::@2 and mul8u::@4)
|
||||
Block Sequence Planned @begin @32 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return main::@11 main::@12 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_sbyte::@5 print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 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 sin16s::@15 sin16s::@14 sin16s::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s_gen::@5 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 sin8s::@18 sin8s::@17 sin8s::@16 sin8s::@15 mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 div16u div16u::@2 div16u::@return
|
||||
Block Sequence Planned @begin @33 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return main::@11 main::@12 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_sbyte::@5 print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 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 sin16s::@15 sin16s::@14 sin16s::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s_gen::@5 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 sin8s::@18 sin8s::@17 sin8s::@16 sin8s::@15 mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 div16u div16u::@2 div16u::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @32
|
||||
Adding NOP phi() at start of @33
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -5840,9 +5933,9 @@ Culled Empty Block (label) sin8s::@17
|
||||
Culled Empty Block (label) sin8s::@16
|
||||
Culled Empty Block (label) sin8s::@15
|
||||
Culled Empty Block (label) mul8u::@10
|
||||
Block Sequence Planned @begin @32 @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 sin16s::@15 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 sin8s::@18 mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 div16u div16u::@2 div16u::@return
|
||||
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 sin16s::@15 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 sin8s::@18 mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 div16u div16u::@2 div16u::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @32
|
||||
Adding NOP phi() at start of @33
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -5894,14 +5987,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@32
|
||||
@32: scope:[] from @begin
|
||||
to:@33
|
||||
@33: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @32
|
||||
@end: scope:[] from @33
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @32
|
||||
main: scope:[main] from @33
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin8s_gen param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
@ -6367,107 +6460,107 @@ div16u::@return: scope:[div16u] from div16u::@2
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@32 dominated by @32 @begin
|
||||
@end dominated by @end @32 @begin
|
||||
main dominated by main @32 @begin
|
||||
main::@5 dominated by main::@5 main @32 @begin
|
||||
main::@6 dominated by main::@5 main::@6 main @32 @begin
|
||||
main::@1 dominated by main::@1 main::@5 main::@6 main @32 @begin
|
||||
main::@3 dominated by main::@1 main::@5 main::@6 main::@3 main @32 @begin
|
||||
main::@2 dominated by main::@1 main::@2 main::@5 main::@6 main @32 @begin
|
||||
main::@8 dominated by main::@8 main::@1 main::@2 main::@5 main::@6 main @32 @begin
|
||||
main::@9 dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main @32 @begin
|
||||
main::@return dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main::@return main @32 @begin
|
||||
print_str dominated by main::@1 main::@5 main::@6 print_str main @32 @begin
|
||||
print_str::@1 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str main @32 @begin
|
||||
print_str::@return dominated by main::@1 main::@5 main::@6 print_str::@return print_str::@1 print_str main @32 @begin
|
||||
print_str::@2 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str::@2 print_str main @32 @begin
|
||||
print_sbyte dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main @32 @begin
|
||||
print_sbyte::@2 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@2 @32 @begin
|
||||
print_sbyte::@4 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@4 print_sbyte::@2 @32 @begin
|
||||
print_sbyte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@1 @32 @begin
|
||||
print_sbyte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@1 @32 @begin print_sbyte::@return
|
||||
print_byte dominated by main::@1 main::@2 main::@5 main::@6 print_byte print_sbyte main print_sbyte::@1 @32 @begin
|
||||
print_byte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_byte::@1 print_byte print_sbyte main print_sbyte::@1 @32 @begin
|
||||
print_byte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_byte::@1 print_byte print_sbyte main print_sbyte::@1 @32 @begin print_byte::@return
|
||||
print_char dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_char @32 @begin
|
||||
print_char::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_char @32 print_char::@return @begin
|
||||
print_cls dominated by main::@5 main::@6 print_cls main @32 @begin
|
||||
print_cls::@1 dominated by main::@5 main::@6 print_cls main @32 @begin print_cls::@1
|
||||
print_cls::@return dominated by main::@5 main::@6 print_cls main @32 @begin print_cls::@return print_cls::@1
|
||||
sin16s_gen dominated by main::@5 sin16s_gen main @32 @begin
|
||||
sin16s_gen::@3 dominated by main::@5 sin16s_gen sin16s_gen::@3 main @32 @begin
|
||||
sin16s_gen::@1 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 main @32 @begin
|
||||
sin16s_gen::@4 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 main @32 @begin
|
||||
sin16s_gen::@return dominated by main::@5 sin16s_gen::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 main @32 @begin
|
||||
sin16s dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 main @32 @begin
|
||||
sin16s::@4 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4 main @32 @begin
|
||||
sin16s::@1 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 main @32 @begin
|
||||
sin16s::@5 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5 main @32 @begin
|
||||
sin16s::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 main @32 @begin
|
||||
sin16s::@8 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2 main @32 @begin
|
||||
sin16s::@9 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @32 @begin
|
||||
sin16s::@10 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @32 @begin sin16s::@10
|
||||
sin16s::@11 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @32 @begin sin16s::@11 sin16s::@10
|
||||
sin16s::@12 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @32 @begin sin16s::@12 sin16s::@11 sin16s::@10
|
||||
sin16s::@6 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@2 main @32 @begin sin16s::@12 sin16s::@11 sin16s::@10
|
||||
sin16s::@3 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@3 sin16s::@2 main @32 @begin sin16s::@12 sin16s::@11 sin16s::@10
|
||||
sin16s::@return dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@3 sin16s::@2 main @32 @begin sin16s::@return sin16s::@12 sin16s::@11 sin16s::@10
|
||||
sin16s::@15 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @32 @begin sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10
|
||||
mulu16_sel dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @32 @begin
|
||||
mulu16_sel::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @32 @begin mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @32 @begin mulu16_sel::@return mulu16_sel::@2
|
||||
mul16u dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @32 @begin
|
||||
mul16u::@1 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main mul16u::@1 @32 @begin
|
||||
mul16u::@return dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mul16u::@return main mul16u::@1 @32 @begin
|
||||
mul16u::@2 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main mul16u::@1 mul16u::@2 @32 @begin
|
||||
mul16u::@7 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main mul16u::@1 mul16u::@2 @32 @begin mul16u::@7
|
||||
mul16u::@4 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main mul16u::@1 mul16u::@2 @32 @begin mul16u::@4
|
||||
div32u16u dominated by main::@5 sin16s_gen div32u16u main @32 @begin
|
||||
div32u16u::@2 dominated by main::@5 sin16s_gen div32u16u main div32u16u::@2 @32 @begin
|
||||
div32u16u::@3 dominated by main::@5 sin16s_gen div32u16u main div32u16u::@2 @32 div32u16u::@3 @begin
|
||||
div32u16u::@return dominated by main::@5 sin16s_gen div32u16u div32u16u::@return main div32u16u::@2 @32 div32u16u::@3 @begin
|
||||
divr16u dominated by divr16u main @32 @begin
|
||||
divr16u::@1 dominated by divr16u::@1 divr16u main @32 @begin
|
||||
divr16u::@4 dominated by divr16u::@1 divr16u::@4 divr16u main @32 @begin
|
||||
divr16u::@2 dominated by divr16u::@2 divr16u::@1 divr16u main @32 @begin
|
||||
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 divr16u main @32 @begin
|
||||
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u main @32 @begin
|
||||
divr16u::@6 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u main @32 @begin
|
||||
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u::@return divr16u main @32 @begin
|
||||
sin8s_gen dominated by sin8s_gen main @32 @begin
|
||||
sin8s_gen::@3 dominated by sin8s_gen main @32 @begin sin8s_gen::@3
|
||||
sin8s_gen::@1 dominated by sin8s_gen main @32 @begin sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s_gen::@4 dominated by sin8s_gen main @32 @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
|
||||
sin8s_gen::@return dominated by sin8s_gen sin8s_gen::@return main @32 @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
|
||||
sin8s dominated by sin8s_gen main sin8s @32 @begin sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@5 dominated by sin8s_gen main sin8s @32 @begin sin8s::@5 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@1 dominated by sin8s_gen main sin8s @32 @begin sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@6 dominated by sin8s_gen main sin8s @32 @begin sin8s::@1 sin8s::@6 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@2 dominated by sin8s_gen main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@10 dominated by sin8s_gen sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@11 dominated by sin8s_gen sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@12 dominated by sin8s_gen sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@13 dominated by sin8s_gen sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@14 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@7 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s::@7 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@3 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@8 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s::@8 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@4 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s::@4 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@return dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 sin8s::@return main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s::@4 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@18 dominated by sin8s_gen sin8s::@18 sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
mulu8_sel dominated by sin8s_gen mulu8_sel main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mulu8_sel::@2 dominated by mulu8_sel::@2 sin8s_gen mulu8_sel main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mulu8_sel::@return dominated by mulu8_sel::@2 sin8s_gen mulu8_sel::@return mulu8_sel main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mul8u dominated by sin8s_gen mul8u mulu8_sel main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mul8u::@1 dominated by sin8s_gen mul8u mulu8_sel main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
|
||||
mul8u::@return dominated by sin8s_gen mul8u mulu8_sel mul8u::@return main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
|
||||
mul8u::@2 dominated by sin8s_gen mul8u mulu8_sel main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1
|
||||
mul8u::@7 dominated by sin8s_gen mul8u mulu8_sel main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@7 mul8u::@2 mul8u::@1
|
||||
mul8u::@4 dominated by sin8s_gen mul8u mulu8_sel main sin8s @32 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1 mul8u::@4
|
||||
div16u dominated by div16u sin8s_gen main @32 @begin
|
||||
div16u::@2 dominated by div16u sin8s_gen div16u::@2 main @32 @begin
|
||||
div16u::@return dominated by div16u::@return div16u sin8s_gen div16u::@2 main @32 @begin
|
||||
@33 dominated by @33 @begin
|
||||
@end dominated by @end @33 @begin
|
||||
main dominated by main @33 @begin
|
||||
main::@5 dominated by main::@5 main @33 @begin
|
||||
main::@6 dominated by main::@5 main::@6 main @33 @begin
|
||||
main::@1 dominated by main::@1 main::@5 main::@6 main @33 @begin
|
||||
main::@3 dominated by main::@1 main::@5 main::@6 main::@3 main @33 @begin
|
||||
main::@2 dominated by main::@1 main::@2 main::@5 main::@6 main @33 @begin
|
||||
main::@8 dominated by main::@8 main::@1 main::@2 main::@5 main::@6 main @33 @begin
|
||||
main::@9 dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main @33 @begin
|
||||
main::@return dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main::@return main @33 @begin
|
||||
print_str dominated by main::@1 main::@5 main::@6 print_str main @33 @begin
|
||||
print_str::@1 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str main @33 @begin
|
||||
print_str::@return dominated by main::@1 main::@5 main::@6 print_str::@return print_str::@1 print_str main @33 @begin
|
||||
print_str::@2 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str::@2 print_str main @33 @begin
|
||||
print_sbyte dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main @33 @begin
|
||||
print_sbyte::@2 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@2 @33 @begin
|
||||
print_sbyte::@4 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@4 print_sbyte::@2 @33 @begin
|
||||
print_sbyte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@1 @33 @begin
|
||||
print_sbyte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@1 @33 @begin print_sbyte::@return
|
||||
print_byte dominated by main::@1 main::@2 main::@5 main::@6 print_byte print_sbyte main print_sbyte::@1 @33 @begin
|
||||
print_byte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_byte::@1 print_byte print_sbyte main print_sbyte::@1 @33 @begin
|
||||
print_byte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_byte::@1 print_byte print_sbyte main print_sbyte::@1 @33 @begin print_byte::@return
|
||||
print_char dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_char @33 @begin
|
||||
print_char::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_char @33 print_char::@return @begin
|
||||
print_cls dominated by main::@5 main::@6 print_cls main @33 @begin
|
||||
print_cls::@1 dominated by main::@5 main::@6 print_cls main @33 @begin print_cls::@1
|
||||
print_cls::@return dominated by main::@5 main::@6 print_cls main @33 @begin print_cls::@return print_cls::@1
|
||||
sin16s_gen dominated by main::@5 sin16s_gen main @33 @begin
|
||||
sin16s_gen::@3 dominated by main::@5 sin16s_gen sin16s_gen::@3 main @33 @begin
|
||||
sin16s_gen::@1 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 main @33 @begin
|
||||
sin16s_gen::@4 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 main @33 @begin
|
||||
sin16s_gen::@return dominated by main::@5 sin16s_gen::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 main @33 @begin
|
||||
sin16s dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 main @33 @begin
|
||||
sin16s::@4 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4 main @33 @begin
|
||||
sin16s::@1 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 main @33 @begin
|
||||
sin16s::@5 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5 main @33 @begin
|
||||
sin16s::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 main @33 @begin
|
||||
sin16s::@8 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2 main @33 @begin
|
||||
sin16s::@9 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @33 @begin
|
||||
sin16s::@10 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @33 @begin sin16s::@10
|
||||
sin16s::@11 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @33 @begin sin16s::@11 sin16s::@10
|
||||
sin16s::@12 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @33 @begin sin16s::@12 sin16s::@11 sin16s::@10
|
||||
sin16s::@6 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@2 main @33 @begin sin16s::@12 sin16s::@11 sin16s::@10
|
||||
sin16s::@3 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@3 sin16s::@2 main @33 @begin sin16s::@12 sin16s::@11 sin16s::@10
|
||||
sin16s::@return dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@3 sin16s::@2 main @33 @begin sin16s::@return sin16s::@12 sin16s::@11 sin16s::@10
|
||||
sin16s::@15 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 main @33 @begin sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10
|
||||
mulu16_sel dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @33 @begin
|
||||
mulu16_sel::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @33 @begin mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @33 @begin mulu16_sel::@return mulu16_sel::@2
|
||||
mul16u dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @33 @begin
|
||||
mul16u::@1 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main mul16u::@1 @33 @begin
|
||||
mul16u::@return dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mul16u::@return main mul16u::@1 @33 @begin
|
||||
mul16u::@2 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main mul16u::@1 mul16u::@2 @33 @begin
|
||||
mul16u::@7 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main mul16u::@1 mul16u::@2 @33 @begin mul16u::@7
|
||||
mul16u::@4 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main mul16u::@1 mul16u::@2 @33 @begin mul16u::@4
|
||||
div32u16u dominated by main::@5 sin16s_gen div32u16u main @33 @begin
|
||||
div32u16u::@2 dominated by main::@5 sin16s_gen div32u16u main div32u16u::@2 @33 @begin
|
||||
div32u16u::@3 dominated by main::@5 sin16s_gen div32u16u main div32u16u::@2 div32u16u::@3 @33 @begin
|
||||
div32u16u::@return dominated by main::@5 sin16s_gen div32u16u div32u16u::@return main div32u16u::@2 div32u16u::@3 @33 @begin
|
||||
divr16u dominated by divr16u main @33 @begin
|
||||
divr16u::@1 dominated by divr16u::@1 divr16u main @33 @begin
|
||||
divr16u::@4 dominated by divr16u::@1 divr16u::@4 divr16u main @33 @begin
|
||||
divr16u::@2 dominated by divr16u::@2 divr16u::@1 divr16u main @33 @begin
|
||||
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 divr16u main @33 @begin
|
||||
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u main @33 @begin
|
||||
divr16u::@6 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u main @33 @begin
|
||||
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u::@return divr16u main @33 @begin
|
||||
sin8s_gen dominated by sin8s_gen main @33 @begin
|
||||
sin8s_gen::@3 dominated by sin8s_gen main @33 @begin sin8s_gen::@3
|
||||
sin8s_gen::@1 dominated by sin8s_gen main @33 @begin sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s_gen::@4 dominated by sin8s_gen main @33 @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
|
||||
sin8s_gen::@return dominated by sin8s_gen sin8s_gen::@return main @33 @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
|
||||
sin8s dominated by sin8s_gen main sin8s @33 @begin sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@5 dominated by sin8s_gen main sin8s @33 @begin sin8s::@5 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@1 dominated by sin8s_gen main sin8s @33 @begin sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@6 dominated by sin8s_gen main sin8s @33 @begin sin8s::@1 sin8s::@6 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@2 dominated by sin8s_gen main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@10 dominated by sin8s_gen sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@11 dominated by sin8s_gen sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@12 dominated by sin8s_gen sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@13 dominated by sin8s_gen sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@14 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@7 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s::@7 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@3 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@8 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s::@8 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@4 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s::@4 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@return dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 sin8s::@return main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s::@4 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@18 dominated by sin8s_gen sin8s::@18 sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
mulu8_sel dominated by sin8s_gen mulu8_sel main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mulu8_sel::@2 dominated by mulu8_sel::@2 sin8s_gen mulu8_sel main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mulu8_sel::@return dominated by mulu8_sel::@2 sin8s_gen mulu8_sel::@return mulu8_sel main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mul8u dominated by sin8s_gen mul8u mulu8_sel main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mul8u::@1 dominated by sin8s_gen mul8u mulu8_sel main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
|
||||
mul8u::@return dominated by sin8s_gen mul8u mulu8_sel mul8u::@return main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
|
||||
mul8u::@2 dominated by sin8s_gen mul8u mulu8_sel main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1
|
||||
mul8u::@7 dominated by sin8s_gen mul8u mulu8_sel main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@7 mul8u::@2 mul8u::@1
|
||||
mul8u::@4 dominated by sin8s_gen mul8u mulu8_sel main sin8s @33 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1 mul8u::@4
|
||||
div16u dominated by div16u sin8s_gen main @33 @begin
|
||||
div16u::@2 dominated by div16u sin8s_gen div16u::@2 main @33 @begin
|
||||
div16u::@return dominated by div16u::@return div16u sin8s_gen div16u::@2 main @33 @begin
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@9 blocks: null
|
||||
@ -7156,17 +7249,17 @@ INITIAL ASM
|
||||
.label print_char_cursor = 7
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @32 [phi:@begin->@32]
|
||||
b32_from_bbegin:
|
||||
jmp b32
|
||||
//SEG4 @32
|
||||
b32:
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
b33_from_bbegin:
|
||||
jmp b33
|
||||
//SEG4 @33
|
||||
b33:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @32 to main [phi:@32->main]
|
||||
main_from_b32:
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
main_from_b33:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @32 to @end [phi:@32->@end]
|
||||
bend_from_b32:
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
bend_from_b33:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -9400,17 +9493,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_char_cursor = 5
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @32 [phi:@begin->@32]
|
||||
b32_from_bbegin:
|
||||
jmp b32
|
||||
//SEG4 @32
|
||||
b32:
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
b33_from_bbegin:
|
||||
jmp b33
|
||||
//SEG4 @33
|
||||
b33:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @32 to main [phi:@32->main]
|
||||
main_from_b32:
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
main_from_b33:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @32 to @end [phi:@32->@end]
|
||||
bend_from_b32:
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
bend_from_b33:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -10933,7 +11026,7 @@ div16u: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b32
|
||||
Removing instruction jmp b33
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b5
|
||||
Removing instruction jmp b6
|
||||
@ -11056,9 +11149,9 @@ Replacing label b3_from_b14 with b3
|
||||
Replacing label b4_from_b18 with b4
|
||||
Replacing label b4_from_b2 with b4
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b32_from_bbegin:
|
||||
Removing instruction main_from_b32:
|
||||
Removing instruction bend_from_b32:
|
||||
Removing instruction b33_from_bbegin:
|
||||
Removing instruction main_from_b33:
|
||||
Removing instruction bend_from_b33:
|
||||
Removing instruction b5_from_main:
|
||||
Removing instruction sin16s_gen_from_b5:
|
||||
Removing instruction b6_from_b5:
|
||||
@ -11101,7 +11194,7 @@ Removing instruction breturn:
|
||||
Removing instruction b4_from_b2:
|
||||
Removing instruction b4_from_b7:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b32:
|
||||
Removing instruction b33:
|
||||
Removing instruction bend:
|
||||
Removing instruction sin8s_gen_from_main:
|
||||
Removing instruction b5:
|
||||
@ -11207,7 +11300,7 @@ Removing unreachable instruction jmp b3
|
||||
Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
@ -11663,12 +11756,12 @@ Score: 28398
|
||||
.label rem16u = 5
|
||||
.label print_char_cursor = 5
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @32 [phi:@begin->@32]
|
||||
//SEG4 @32
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
//SEG4 @33
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @32 to main [phi:@32->main]
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @32 to @end [phi:@32->@end]
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@33
|
||||
@33: scope:[] from @begin
|
||||
to:@34
|
||||
@34: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @33
|
||||
@end: scope:[] from @34
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @33
|
||||
main: scope:[main] from @34
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -426,6 +426,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -440,13 +460,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -523,6 +536,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -1046,6 +1061,35 @@ endproc // mulu8_sel()
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -1074,12 +1118,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -1584,6 +1622,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -2478,6 +2530,54 @@ mulu8_sel::@1: scope:[mulu8_sel] from
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@19
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -2500,8 +2600,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -2524,17 +2624,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -2549,8 +2640,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -2568,8 +2659,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -2587,8 +2678,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -2598,8 +2689,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -2609,8 +2700,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -2628,8 +2719,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
@28: scope:[] from @27
|
||||
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
|
||||
@ -2640,8 +2731,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -2649,8 +2740,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -2668,8 +2759,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -2678,8 +2769,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
main: scope:[main] from
|
||||
(word) main::tabsize ← (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
(byte[20]) main::sintab ← { fill( 20, 0) }
|
||||
@ -2689,8 +2780,8 @@ main: scope:[main] from
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
sin8u_table: scope:[sin8u_table] from
|
||||
(byte~) sin8u_table::$0 ← (byte) sin8u_table::max - (byte) sin8u_table::min
|
||||
(byte) sin8u_table::amplitude ← (byte~) sin8u_table::$0
|
||||
@ -2748,10 +2839,10 @@ sin8u_table::@2: scope:[sin8u_table] from sin8u_table::@1
|
||||
sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@2
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @32
|
||||
@34: scope:[] from @33
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @33
|
||||
@end: scope:[] from @34
|
||||
|
||||
Removing unused procedure div8s
|
||||
Removing unused procedure div16s
|
||||
@ -2759,8 +2850,9 @@ Removing unused procedure mul8s
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin16s_gen
|
||||
Removing unused procedure sin8s_gen
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sdword
|
||||
Removing unused procedure print_set_screen
|
||||
Removing unused procedure div8u
|
||||
@ -2841,12 +2933,12 @@ Removing empty block sin8s::@9
|
||||
Removing empty block @16
|
||||
Removing empty block @17
|
||||
Removing empty block mulu8_sel::@1
|
||||
Removing empty block @19
|
||||
Removing empty block @20
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @19
|
||||
Removing empty block @20
|
||||
Removing empty block @21
|
||||
Removing empty block @22
|
||||
Removing empty block @23
|
||||
@ -2859,6 +2951,7 @@ Removing empty block @29
|
||||
Removing empty block @30
|
||||
Removing empty block @31
|
||||
Removing empty block @32
|
||||
Removing empty block @33
|
||||
Removing empty block sin8u_table::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
divr16u modifies rem16u
|
||||
@ -3265,7 +3358,7 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2
|
||||
(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:@34
|
||||
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 )
|
||||
@ -3468,11 +3561,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#20 ← (byte*) print_char_cursor#64
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @33
|
||||
(word) rem16u#23 ← phi( @33/(word) rem16u#22 )
|
||||
(byte*) print_char_cursor#98 ← phi( @33/(byte*) print_char_cursor#101 )
|
||||
(byte*) print_line_cursor#24 ← phi( @33/(byte*) print_line_cursor#27 )
|
||||
(byte*) print_screen#4 ← phi( @33/(byte*) print_screen#5 )
|
||||
main: scope:[main] from @34
|
||||
(word) rem16u#23 ← phi( @34/(word) rem16u#22 )
|
||||
(byte*) print_char_cursor#98 ← phi( @34/(byte*) print_char_cursor#101 )
|
||||
(byte*) print_line_cursor#24 ← phi( @34/(byte*) print_line_cursor#27 )
|
||||
(byte*) print_screen#4 ← phi( @34/(byte*) print_screen#5 )
|
||||
(word) main::tabsize#0 ← (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
(byte[20]) main::sintab#0 ← { fill( 20, 0) }
|
||||
call print_cls param-assignment
|
||||
@ -3917,29 +4010,29 @@ sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@25
|
||||
(byte*) print_line_cursor#10 ← (byte*) print_line_cursor#21
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @18
|
||||
@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 )
|
||||
call main param-assignment
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
(word) rem16u#17 ← phi( @33/(word) rem16u#6 )
|
||||
(byte*) print_char_cursor#89 ← phi( @33/(byte*) print_char_cursor#23 )
|
||||
(byte*) print_line_cursor#22 ← phi( @33/(byte*) print_line_cursor#7 )
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
(word) rem16u#17 ← phi( @34/(word) rem16u#6 )
|
||||
(byte*) print_char_cursor#89 ← phi( @34/(byte*) print_char_cursor#23 )
|
||||
(byte*) print_line_cursor#22 ← phi( @34/(byte*) print_line_cursor#7 )
|
||||
(byte*) print_line_cursor#11 ← (byte*) print_line_cursor#22
|
||||
(byte*) print_char_cursor#45 ← (byte*) print_char_cursor#89
|
||||
(word) rem16u#9 ← (word) rem16u#17
|
||||
to:@end
|
||||
@end: scope:[] from @34
|
||||
@end: scope:[] from @35
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @12
|
||||
(label) @18
|
||||
(label) @2
|
||||
(label) @33
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
@ -5609,7 +5702,7 @@ Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) main::@2
|
||||
Culled Empty Block (label) sin8u_table::@14
|
||||
Culled Empty Block (label) @34
|
||||
Culled Empty Block (label) @35
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
|
||||
Not aliassing across scopes: div16u::return#0 divr16u::return#2
|
||||
@ -5865,7 +5958,7 @@ Constant inlined print_str::str#7 = (const string) sin8u_table::str6
|
||||
Constant inlined print_str::str#6 = (const string) sin8u_table::str5
|
||||
Constant inlined print_str::str#5 = (const string) sin8u_table::str4
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @33 @end main main::@1 main::@return sin8u_table sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@8 sin8u_table::@9 sin8u_table::@10 sin8u_table::@11 sin8u_table::@12 sin8u_table::@13 sin8u_table::@1 sin8u_table::@15 sin8u_table::@16 sin8u_table::@17 sin8u_table::@18 sin8u_table::@19 sin8u_table::@20 sin8u_table::@21 sin8u_table::@22 sin8u_table::@23 sin8u_table::@24 sin8u_table::@25 sin8u_table::@return print_ln print_ln::@1 print_ln::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@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_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8su mul8su::@4 mul8su::@2 mul8su::@1 mul8su::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 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 div16u div16u::@2 div16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @34 @end main main::@1 main::@return sin8u_table sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@8 sin8u_table::@9 sin8u_table::@10 sin8u_table::@11 sin8u_table::@12 sin8u_table::@13 sin8u_table::@1 sin8u_table::@15 sin8u_table::@16 sin8u_table::@17 sin8u_table::@18 sin8u_table::@19 sin8u_table::@20 sin8u_table::@21 sin8u_table::@22 sin8u_table::@23 sin8u_table::@24 sin8u_table::@25 sin8u_table::@return print_ln print_ln::@1 print_ln::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@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_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8su mul8su::@4 mul8su::@2 mul8su::@1 mul8su::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 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 div16u div16u::@2 div16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting sin8u_table::@26(between sin8u_table::@25 and sin8u_table::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_sword::@5(between print_sword and print_sword::@1)
|
||||
@ -5881,9 +5974,9 @@ Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::
|
||||
Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2)
|
||||
Added new block during phi lifting divr16u::@10(between divr16u::@2 and divr16u::@3)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @33 @end main main::@1 main::@return sin8u_table sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@8 sin8u_table::@9 sin8u_table::@10 sin8u_table::@11 sin8u_table::@12 sin8u_table::@13 sin8u_table::@1 sin8u_table::@15 sin8u_table::@16 sin8u_table::@17 sin8u_table::@18 sin8u_table::@19 sin8u_table::@20 sin8u_table::@21 sin8u_table::@22 sin8u_table::@23 sin8u_table::@24 sin8u_table::@25 sin8u_table::@return sin8u_table::@26 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_byte print_byte::@1 print_byte::@return print_char print_char::@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_sword::@5 print_word print_word::@1 print_word::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_sbyte::@5 mul8su mul8su::@4 mul8su::@2 mul8su::@1 mul8su::@return mul8su::@5 mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 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 sin8s::@18 sin8s::@17 sin8s::@16 sin8s::@15 mulu8_sel mulu8_sel::@2 mulu8_sel::@return div16u div16u::@2 div16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @34 @end main main::@1 main::@return sin8u_table sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@8 sin8u_table::@9 sin8u_table::@10 sin8u_table::@11 sin8u_table::@12 sin8u_table::@13 sin8u_table::@1 sin8u_table::@15 sin8u_table::@16 sin8u_table::@17 sin8u_table::@18 sin8u_table::@19 sin8u_table::@20 sin8u_table::@21 sin8u_table::@22 sin8u_table::@23 sin8u_table::@24 sin8u_table::@25 sin8u_table::@return sin8u_table::@26 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_byte print_byte::@1 print_byte::@return print_char print_char::@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_sword::@5 print_word print_word::@1 print_word::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_sbyte::@5 mul8su mul8su::@4 mul8su::@2 mul8su::@1 mul8su::@return mul8su::@5 mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 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 sin8s::@18 sin8s::@17 sin8s::@16 sin8s::@15 mulu8_sel mulu8_sel::@2 mulu8_sel::@return div16u div16u::@2 div16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @33
|
||||
Adding NOP phi() at start of @34
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -6064,9 +6157,9 @@ Culled Empty Block (label) divr16u::@8
|
||||
Culled Empty Block (label) divr16u::@10
|
||||
Culled Empty Block (label) divr16u::@9
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @33 @end main main::@1 main::@return sin8u_table sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@8 sin8u_table::@9 sin8u_table::@10 sin8u_table::@11 sin8u_table::@12 sin8u_table::@13 sin8u_table::@1 sin8u_table::@15 sin8u_table::@16 sin8u_table::@17 sin8u_table::@18 sin8u_table::@19 sin8u_table::@20 sin8u_table::@21 sin8u_table::@22 sin8u_table::@23 sin8u_table::@24 sin8u_table::@25 sin8u_table::@return print_ln print_ln::@1 print_ln::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@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_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8su mul8su::@4 mul8su::@2 mul8su::@1 mul8su::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 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 sin8s::@18 mulu8_sel mulu8_sel::@2 mulu8_sel::@return div16u div16u::@2 div16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @34 @end main main::@1 main::@return sin8u_table sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@8 sin8u_table::@9 sin8u_table::@10 sin8u_table::@11 sin8u_table::@12 sin8u_table::@13 sin8u_table::@1 sin8u_table::@15 sin8u_table::@16 sin8u_table::@17 sin8u_table::@18 sin8u_table::@19 sin8u_table::@20 sin8u_table::@21 sin8u_table::@22 sin8u_table::@23 sin8u_table::@24 sin8u_table::@25 sin8u_table::@return print_ln print_ln::@1 print_ln::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@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_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8su mul8su::@4 mul8su::@2 mul8su::@1 mul8su::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 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 sin8s::@18 mulu8_sel mulu8_sel::@2 mulu8_sel::@return div16u div16u::@2 div16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@return print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @33
|
||||
Adding NOP phi() at start of @34
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -6145,14 +6238,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@33
|
||||
@33: scope:[] from @begin
|
||||
to:@34
|
||||
@34: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @33
|
||||
@end: scope:[] from @34
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @33
|
||||
main: scope:[main] from @34
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -6578,104 +6671,104 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@33 dominated by @33 @begin
|
||||
@end dominated by @end @33 @begin
|
||||
main dominated by main @33 @begin
|
||||
main::@1 dominated by main::@1 main @33 @begin
|
||||
main::@return dominated by main::@1 main::@return main @33 @begin
|
||||
sin8u_table dominated by main::@1 sin8u_table main @33 @begin
|
||||
sin8u_table::@3 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3
|
||||
sin8u_table::@4 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@4
|
||||
sin8u_table::@5 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@4 sin8u_table::@5
|
||||
sin8u_table::@6 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6
|
||||
sin8u_table::@7 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7
|
||||
sin8u_table::@8 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7
|
||||
sin8u_table::@9 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7
|
||||
sin8u_table::@10 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10
|
||||
sin8u_table::@11 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@11
|
||||
sin8u_table::@12 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11
|
||||
sin8u_table::@13 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@1 dominated by main::@1 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@15 dominated by main::@1 sin8u_table::@15 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@16 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@17 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@17 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@18 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@19 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@20 dominated by main::@1 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@21 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@22 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@22 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@23 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@23 sin8u_table::@22 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@24 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@23 sin8u_table::@22 sin8u_table::@24 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@25 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@23 sin8u_table::@22 sin8u_table::@25 sin8u_table::@24 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@return dominated by sin8u_table::@return main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@23 sin8u_table::@22 sin8u_table::@25 sin8u_table::@24 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_ln dominated by main::@1 print_ln sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_ln::@1 dominated by main::@1 print_ln sin8u_table print_ln::@1 main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_ln::@return dominated by print_ln::@return main::@1 print_ln sin8u_table print_ln::@1 main @33 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_byte dominated by main::@1 sin8u_table print_byte main @33 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_byte::@1 dominated by main::@1 sin8u_table print_byte::@1 print_byte main @33 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_byte::@return dominated by main::@1 sin8u_table print_byte::@1 print_byte main @33 @begin print_byte::@return sin8u_table::@3 sin8u_table::@4
|
||||
print_char dominated by main::@1 sin8u_table main print_char @33 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_char::@return dominated by main::@1 sin8u_table main print_char @33 print_char::@return @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_str dominated by main::@1 sin8u_table print_str main @33 @begin sin8u_table::@3
|
||||
print_str::@1 dominated by main::@1 print_str::@1 sin8u_table print_str main @33 @begin sin8u_table::@3
|
||||
print_str::@return dominated by main::@1 print_str::@return print_str::@1 sin8u_table print_str main @33 @begin sin8u_table::@3
|
||||
print_str::@2 dominated by main::@1 print_str::@1 print_str::@2 sin8u_table print_str main @33 @begin sin8u_table::@3
|
||||
print_sword dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sword::@2 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword print_sword::@2 main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sword::@4 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword print_sword::@2 print_sword::@4 main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sword::@1 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword print_sword::@1 main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sword::@return dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword print_sword::@1 main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 print_sword::@return
|
||||
print_word dominated by print_word main::@1 sin8u_table main @33 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_word::@1 dominated by print_word main::@1 sin8u_table print_word::@1 main @33 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_word::@return dominated by print_word main::@1 print_word::@return sin8u_table print_word::@1 main @33 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_sbyte dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sbyte::@2 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main print_sbyte::@2 @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sbyte::@4 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main print_sbyte::@4 print_sbyte::@2 @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sbyte::@1 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main print_sbyte::@1 @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sbyte::@return dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main print_sbyte::@1 @33 @begin print_sbyte::@return sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mul8su dominated by main::@1 sin8u_table::@15 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8su::@4 dominated by main::@1 sin8u_table::@15 mul8su::@4 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8su::@2 dominated by main::@1 sin8u_table::@15 mul8su::@2 mul8su::@4 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8su::@1 dominated by main::@1 mul8su::@1 sin8u_table::@15 mul8su::@4 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8su::@return dominated by mul8su::@return main::@1 mul8su::@1 sin8u_table::@15 mul8su::@4 sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8u dominated by main::@1 mul8u sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mul8u::@1 dominated by main::@1 mul8u sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@1
|
||||
mul8u::@return dominated by main::@1 mul8u sin8u_table mul8u::@return main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@1
|
||||
mul8u::@2 dominated by main::@1 mul8u sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@2 mul8u::@1
|
||||
mul8u::@7 dominated by main::@1 mul8u sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@7 mul8u::@2 mul8u::@1
|
||||
mul8u::@4 dominated by main::@1 mul8u sin8u_table main @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@2 mul8u::@1 mul8u::@4
|
||||
sin8s dominated by main::@1 sin8u_table main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@5 dominated by main::@1 sin8u_table main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 sin8s::@5
|
||||
sin8s::@1 dominated by main::@1 sin8u_table main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@6 dominated by main::@1 sin8u_table main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 sin8s::@6
|
||||
sin8s::@2 dominated by main::@1 sin8u_table main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@10 dominated by main::@1 sin8u_table sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@11 dominated by main::@1 sin8u_table sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@12 dominated by main::@1 sin8u_table sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@13 dominated by main::@1 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@14 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@7 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 sin8s::@7
|
||||
sin8s::@3 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@8 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 sin8s::@8
|
||||
sin8s::@4 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@4 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@return dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 sin8s::@return main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@4 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@18 dominated by main::@1 sin8s::@18 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mulu8_sel dominated by main::@1 sin8u_table mulu8_sel main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mulu8_sel::@2 dominated by mulu8_sel::@2 main::@1 sin8u_table mulu8_sel main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mulu8_sel::@return dominated by mulu8_sel::@2 main::@1 mulu8_sel::@return sin8u_table mulu8_sel main sin8s @33 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
div16u dominated by main::@1 div16u sin8u_table main @33 @begin
|
||||
div16u::@2 dominated by main::@1 div16u div16u::@2 sin8u_table main @33 @begin
|
||||
div16u::@return dominated by div16u::@return main::@1 div16u div16u::@2 sin8u_table main @33 @begin
|
||||
divr16u dominated by main::@1 div16u sin8u_table divr16u main @33 @begin
|
||||
divr16u::@1 dominated by divr16u::@1 main::@1 div16u sin8u_table divr16u main @33 @begin
|
||||
divr16u::@4 dominated by divr16u::@1 divr16u::@4 main::@1 div16u sin8u_table divr16u main @33 @begin
|
||||
divr16u::@2 dominated by divr16u::@2 divr16u::@1 main::@1 div16u sin8u_table divr16u main @33 @begin
|
||||
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 main::@1 div16u sin8u_table divr16u main @33 @begin
|
||||
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 main::@1 div16u sin8u_table divr16u main @33 @begin
|
||||
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 main::@1 div16u sin8u_table divr16u::@return divr16u main @33 @begin
|
||||
print_cls dominated by print_cls main @33 @begin
|
||||
print_cls::@1 dominated by print_cls main @33 @begin print_cls::@1
|
||||
print_cls::@return dominated by print_cls main @33 @begin print_cls::@return print_cls::@1
|
||||
@34 dominated by @34 @begin
|
||||
@end dominated by @end @34 @begin
|
||||
main dominated by main @34 @begin
|
||||
main::@1 dominated by main::@1 main @34 @begin
|
||||
main::@return dominated by main::@1 main::@return main @34 @begin
|
||||
sin8u_table dominated by main::@1 sin8u_table main @34 @begin
|
||||
sin8u_table::@3 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3
|
||||
sin8u_table::@4 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@4
|
||||
sin8u_table::@5 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@4 sin8u_table::@5
|
||||
sin8u_table::@6 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6
|
||||
sin8u_table::@7 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7
|
||||
sin8u_table::@8 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7
|
||||
sin8u_table::@9 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7
|
||||
sin8u_table::@10 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10
|
||||
sin8u_table::@11 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@11
|
||||
sin8u_table::@12 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11
|
||||
sin8u_table::@13 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@1 dominated by main::@1 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@15 dominated by main::@1 sin8u_table::@15 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@16 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@17 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@17 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@18 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@19 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@20 dominated by main::@1 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@21 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@22 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@22 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@23 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@23 sin8u_table::@22 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@24 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@23 sin8u_table::@22 sin8u_table::@24 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@25 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@23 sin8u_table::@22 sin8u_table::@25 sin8u_table::@24 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8u_table::@return dominated by sin8u_table::@return main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@23 sin8u_table::@22 sin8u_table::@25 sin8u_table::@24 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_ln dominated by main::@1 print_ln sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_ln::@1 dominated by main::@1 print_ln sin8u_table print_ln::@1 main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_ln::@return dominated by print_ln::@return main::@1 print_ln sin8u_table print_ln::@1 main @34 @begin sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_byte dominated by main::@1 sin8u_table print_byte main @34 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_byte::@1 dominated by main::@1 sin8u_table print_byte::@1 print_byte main @34 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_byte::@return dominated by main::@1 sin8u_table print_byte::@1 print_byte main @34 @begin print_byte::@return sin8u_table::@3 sin8u_table::@4
|
||||
print_char dominated by main::@1 sin8u_table main print_char @34 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_char::@return dominated by main::@1 sin8u_table main print_char @34 print_char::@return @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_str dominated by main::@1 sin8u_table print_str main @34 @begin sin8u_table::@3
|
||||
print_str::@1 dominated by main::@1 print_str::@1 sin8u_table print_str main @34 @begin sin8u_table::@3
|
||||
print_str::@return dominated by main::@1 print_str::@return print_str::@1 sin8u_table print_str main @34 @begin sin8u_table::@3
|
||||
print_str::@2 dominated by main::@1 print_str::@1 print_str::@2 sin8u_table print_str main @34 @begin sin8u_table::@3
|
||||
print_sword dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sword::@2 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword print_sword::@2 main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sword::@4 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword print_sword::@2 print_sword::@4 main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sword::@1 dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword print_sword::@1 main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sword::@return dominated by main::@1 sin8u_table::@21 sin8u_table::@20 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sword print_sword::@1 main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 print_sword::@return
|
||||
print_word dominated by print_word main::@1 sin8u_table main @34 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_word::@1 dominated by print_word main::@1 sin8u_table print_word::@1 main @34 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_word::@return dominated by print_word main::@1 print_word::@return sin8u_table print_word::@1 main @34 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_sbyte dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sbyte::@2 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main print_sbyte::@2 @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sbyte::@4 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main print_sbyte::@4 print_sbyte::@2 @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sbyte::@1 dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main print_sbyte::@1 @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
print_sbyte::@return dominated by main::@1 sin8u_table::@16 sin8u_table::@15 sin8u_table::@18 sin8u_table::@17 sin8u_table::@19 sin8u_table print_sbyte main print_sbyte::@1 @34 @begin print_sbyte::@return sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mul8su dominated by main::@1 sin8u_table::@15 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8su::@4 dominated by main::@1 sin8u_table::@15 mul8su::@4 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8su::@2 dominated by main::@1 sin8u_table::@15 mul8su::@2 mul8su::@4 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8su::@1 dominated by main::@1 mul8su::@1 sin8u_table::@15 mul8su::@4 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8su::@return dominated by mul8su::@return main::@1 mul8su::@1 sin8u_table::@15 mul8su::@4 sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8su
|
||||
mul8u dominated by main::@1 mul8u sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mul8u::@1 dominated by main::@1 mul8u sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@1
|
||||
mul8u::@return dominated by main::@1 mul8u sin8u_table mul8u::@return main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@1
|
||||
mul8u::@2 dominated by main::@1 mul8u sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@2 mul8u::@1
|
||||
mul8u::@7 dominated by main::@1 mul8u sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@7 mul8u::@2 mul8u::@1
|
||||
mul8u::@4 dominated by main::@1 mul8u sin8u_table main @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 mul8u::@2 mul8u::@1 mul8u::@4
|
||||
sin8s dominated by main::@1 sin8u_table main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@5 dominated by main::@1 sin8u_table main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 sin8s::@5
|
||||
sin8s::@1 dominated by main::@1 sin8u_table main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@6 dominated by main::@1 sin8u_table main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 sin8s::@6
|
||||
sin8s::@2 dominated by main::@1 sin8u_table main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@10 dominated by main::@1 sin8u_table sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@11 dominated by main::@1 sin8u_table sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@12 dominated by main::@1 sin8u_table sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@13 dominated by main::@1 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@14 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@7 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 sin8s::@7
|
||||
sin8s::@3 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@8 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13 sin8s::@8
|
||||
sin8s::@4 dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@4 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@return dominated by main::@1 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 sin8s::@return main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@4 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
sin8s::@18 dominated by main::@1 sin8s::@18 sin8s::@14 sin8u_table sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8s::@3 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mulu8_sel dominated by main::@1 sin8u_table mulu8_sel main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mulu8_sel::@2 dominated by mulu8_sel::@2 main::@1 sin8u_table mulu8_sel main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
mulu8_sel::@return dominated by mulu8_sel::@2 main::@1 mulu8_sel::@return sin8u_table mulu8_sel main sin8s @34 @begin sin8u_table::@1 sin8u_table::@3 sin8u_table::@8 sin8u_table::@9 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6 sin8u_table::@7 sin8s::@2 sin8s::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@11 sin8u_table::@13
|
||||
div16u dominated by main::@1 div16u sin8u_table main @34 @begin
|
||||
div16u::@2 dominated by main::@1 div16u div16u::@2 sin8u_table main @34 @begin
|
||||
div16u::@return dominated by div16u::@return main::@1 div16u div16u::@2 sin8u_table main @34 @begin
|
||||
divr16u dominated by main::@1 div16u sin8u_table divr16u main @34 @begin
|
||||
divr16u::@1 dominated by divr16u::@1 main::@1 div16u sin8u_table divr16u main @34 @begin
|
||||
divr16u::@4 dominated by divr16u::@1 divr16u::@4 main::@1 div16u sin8u_table divr16u main @34 @begin
|
||||
divr16u::@2 dominated by divr16u::@2 divr16u::@1 main::@1 div16u sin8u_table divr16u main @34 @begin
|
||||
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 main::@1 div16u sin8u_table divr16u main @34 @begin
|
||||
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 main::@1 div16u sin8u_table divr16u main @34 @begin
|
||||
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 main::@1 div16u sin8u_table divr16u::@return divr16u main @34 @begin
|
||||
print_cls dominated by print_cls main @34 @begin
|
||||
print_cls::@1 dominated by print_cls main @34 @begin print_cls::@1
|
||||
print_cls::@return dominated by print_cls main @34 @begin print_cls::@return print_cls::@1
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: sin8u_table::@1 tails: sin8u_table::@25 blocks: null
|
||||
@ -7156,17 +7249,17 @@ INITIAL ASM
|
||||
.label print_line_cursor = 8
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
b33_from_bbegin:
|
||||
jmp b33
|
||||
//SEG4 @33
|
||||
b33:
|
||||
//SEG3 [1] phi from @begin to @34 [phi:@begin->@34]
|
||||
b34_from_bbegin:
|
||||
jmp b34
|
||||
//SEG4 @34
|
||||
b34:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
main_from_b33:
|
||||
//SEG6 [4] phi from @34 to main [phi:@34->main]
|
||||
main_from_b34:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
bend_from_b33:
|
||||
//SEG7 [3] phi from @34 to @end [phi:@34->@end]
|
||||
bend_from_b34:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -8840,17 +8933,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_line_cursor = 8
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
b33_from_bbegin:
|
||||
jmp b33
|
||||
//SEG4 @33
|
||||
b33:
|
||||
//SEG3 [1] phi from @begin to @34 [phi:@begin->@34]
|
||||
b34_from_bbegin:
|
||||
jmp b34
|
||||
//SEG4 @34
|
||||
b34:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
main_from_b33:
|
||||
//SEG6 [4] phi from @34 to main [phi:@34->main]
|
||||
main_from_b34:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
bend_from_b33:
|
||||
//SEG7 [3] phi from @34 to @end [phi:@34->@end]
|
||||
bend_from_b34:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -10100,7 +10193,7 @@ print_cls: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b33
|
||||
Removing instruction jmp b34
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp breturn
|
||||
@ -10213,9 +10306,9 @@ Replacing label b1_from_b3 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b33_from_bbegin:
|
||||
Removing instruction main_from_b33:
|
||||
Removing instruction bend_from_b33:
|
||||
Removing instruction b34_from_bbegin:
|
||||
Removing instruction main_from_b34:
|
||||
Removing instruction bend_from_b34:
|
||||
Removing instruction b1_from_main:
|
||||
Removing instruction sin8u_table_from_b1:
|
||||
Removing instruction b5_from_b4:
|
||||
@ -10276,7 +10369,7 @@ Removing instruction b3_from_b2:
|
||||
Removing instruction b3_from_b5:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b33:
|
||||
Removing instruction b34:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1:
|
||||
@ -10377,7 +10470,7 @@ Fixing long branch [163] bcc b1 to bcs
|
||||
Fixing long branch [169] bcc b1 to bcs
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @33
|
||||
(label) @34
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
@ -10756,12 +10849,12 @@ Score: 19469
|
||||
.label print_char_cursor = $d
|
||||
.label print_line_cursor = 8
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @33 [phi:@begin->@33]
|
||||
//SEG4 @33
|
||||
//SEG3 [1] phi from @begin to @34 [phi:@begin->@34]
|
||||
//SEG4 @34
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @33 to main [phi:@33->main]
|
||||
//SEG6 [4] phi from @34 to main [phi:@34->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @33 to @end [phi:@33->@end]
|
||||
//SEG7 [3] phi from @34 to @end [phi:@34->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @33
|
||||
(label) @34
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@15
|
||||
@15: scope:[] from @begin
|
||||
to:@16
|
||||
@16: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @15
|
||||
@end: scope:[] from @16
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @15
|
||||
main: scope:[main] from @16
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -57,6 +57,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -71,13 +91,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -154,6 +167,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -165,6 +180,35 @@ STATEMENTS
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -193,12 +237,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -643,6 +681,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -685,6 +737,54 @@ INITIAL CONTROL FLOW GRAPH
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@1
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -707,8 +807,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -731,17 +831,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -756,8 +847,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -775,8 +866,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -794,8 +885,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -805,8 +896,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -816,8 +907,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -835,8 +926,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
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
|
||||
@ -847,8 +938,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -856,8 +947,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -875,8 +966,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -885,8 +976,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_cls
|
||||
(byte) main::a ← (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
@ -1117,8 +1208,8 @@ main::@44: scope:[main] from main::@22
|
||||
main::@return: scope:[main] from main::@44
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
printu: scope:[printu] from
|
||||
(void~) printu::$0 ← call print_char (byte) ' '
|
||||
(void~) printu::$1 ← call print_byte (byte) printu::a
|
||||
@ -1130,13 +1221,14 @@ printu: scope:[printu] from
|
||||
printu::@return: scope:[printu] from printu
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
@16: scope:[] from @15
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @15
|
||||
@end: scope:[] from @16
|
||||
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
@ -1198,12 +1290,12 @@ Creating constant string variable for inline (const string) main::op16 "==@"
|
||||
Creating constant string variable for inline (const string) main::op17 "==@"
|
||||
Creating constant string variable for inline (const string) main::op18 "==@"
|
||||
Creating constant string variable for inline (const string) main::op19 "==@"
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block @3
|
||||
Removing empty block @4
|
||||
Removing empty block @5
|
||||
@ -1215,9 +1307,10 @@ Removing empty block @10
|
||||
Removing empty block @11
|
||||
Removing empty block @12
|
||||
Removing empty block @13
|
||||
Removing empty block @14
|
||||
Removing empty block main::@43
|
||||
Removing empty block main::@44
|
||||
Removing empty block @14
|
||||
Removing empty block @15
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies print_char_cursor
|
||||
print_ln modifies print_line_cursor
|
||||
@ -1246,7 +1339,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
|
||||
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
|
||||
to:@15
|
||||
to:@16
|
||||
print_str: scope:[print_str] from printu::@2
|
||||
(byte*) print_char_cursor#119 ← phi( printu::@2/(byte*) print_char_cursor#40 )
|
||||
(byte*) print_str::str#4 ← phi( printu::@2/(byte*) print_str::str#1 )
|
||||
@ -1353,10 +1446,10 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#11 ← (byte*) print_char_cursor#56
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @15
|
||||
(byte*) print_char_cursor#96 ← phi( @15/(byte*) print_char_cursor#118 )
|
||||
(byte*) print_line_cursor#26 ← phi( @15/(byte*) print_line_cursor#33 )
|
||||
(byte*) print_screen#4 ← phi( @15/(byte*) print_screen#5 )
|
||||
main: scope:[main] from @16
|
||||
(byte*) print_char_cursor#96 ← phi( @16/(byte*) print_char_cursor#118 )
|
||||
(byte*) print_line_cursor#26 ← phi( @16/(byte*) print_line_cursor#33 )
|
||||
(byte*) print_screen#4 ← phi( @16/(byte*) print_screen#5 )
|
||||
call print_cls param-assignment
|
||||
to:main::@45
|
||||
main::@45: scope:[main] from main
|
||||
@ -2151,23 +2244,23 @@ printu::@return: scope:[printu] from printu::@6
|
||||
(byte*) print_char_cursor#45 ← (byte*) print_char_cursor#90
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @begin
|
||||
@16: scope:[] from @begin
|
||||
(byte*) print_screen#5 ← phi( @begin/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#118 ← phi( @begin/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#33 ← phi( @begin/(byte*) print_line_cursor#0 )
|
||||
call main param-assignment
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
(byte*) print_char_cursor#91 ← phi( @15/(byte*) print_char_cursor#38 )
|
||||
(byte*) print_line_cursor#24 ← phi( @15/(byte*) print_line_cursor#11 )
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
(byte*) print_char_cursor#91 ← phi( @16/(byte*) print_char_cursor#38 )
|
||||
(byte*) print_line_cursor#24 ← phi( @16/(byte*) print_line_cursor#11 )
|
||||
(byte*) print_line_cursor#12 ← (byte*) print_line_cursor#24
|
||||
(byte*) print_char_cursor#46 ← (byte*) print_char_cursor#91
|
||||
to:@end
|
||||
@end: scope:[] from @16
|
||||
@end: scope:[] from @17
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @15
|
||||
(label) @16
|
||||
(label) @17
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
@ -3682,7 +3775,7 @@ Not culling empty block because it shares successor with its predecessor. (label
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@41
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@42
|
||||
Culled Empty Block (label) printu::@6
|
||||
Culled Empty Block (label) @16
|
||||
Culled Empty Block (label) @17
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@23
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@24
|
||||
@ -6411,13 +6504,13 @@ Constant inlined printu::op#16 = (const string) main::op16
|
||||
Constant inlined main::r#25 = (byte) '-'
|
||||
Constant inlined print_byte::$4 = (const string) print_byte::hextab#0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @16 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting main::@71(between main::@70 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return main::@71 print_ln print_ln::@1 print_ln::@return print_ln::@3 printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @16 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return main::@71 print_ln print_ln::@1 print_ln::@return print_ln::@3 printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @16
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@23
|
||||
@ -6615,9 +6708,9 @@ Not culling empty block because it shares successor with its predecessor. (label
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@42
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return main::@71 print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @16 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return main::@71 print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @16
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@23
|
||||
@ -6679,14 +6772,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@15
|
||||
@15: scope:[] from @begin
|
||||
to:@16
|
||||
@16: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @15
|
||||
@end: scope:[] from @16
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @15
|
||||
main: scope:[main] from @16
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -7085,100 +7178,100 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@15 dominated by @begin @15
|
||||
@end dominated by @end @begin @15
|
||||
main dominated by main @begin @15
|
||||
main::@1 dominated by main main::@1 @begin @15
|
||||
main::@23 dominated by main main::@1 @begin main::@23 @15
|
||||
main::@2 dominated by main main::@1 main::@2 @begin @15
|
||||
main::@46 dominated by main main::@46 main::@1 main::@2 @begin @15
|
||||
main::@24 dominated by main main::@46 main::@1 main::@2 @begin main::@24 @15
|
||||
main::@3 dominated by main main::@46 main::@1 main::@2 main::@3 @begin @15
|
||||
main::@47 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 @begin @15
|
||||
main::@25 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 @begin main::@25 @15
|
||||
main::@4 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 main::@4 @begin @15
|
||||
main::@48 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@3 main::@4 @begin @15
|
||||
main::@26 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@3 main::@4 @begin main::@26 @15
|
||||
main::@5 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @15
|
||||
main::@49 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @15
|
||||
main::@50 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @15 main::@50
|
||||
main::@27 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin main::@27 @15 main::@50
|
||||
main::@6 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @15 main::@50
|
||||
main::@51 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @15 main::@51 main::@50
|
||||
main::@28 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@28 @15 main::@51 main::@50
|
||||
main::@7 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @15 main::@51 main::@50
|
||||
main::@52 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@52 @15 main::@51 main::@50
|
||||
main::@29 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@29 main::@52 @15 main::@51 main::@50
|
||||
main::@8 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@52 @15 main::@51 main::@50
|
||||
main::@53 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 @15 main::@51 main::@50
|
||||
main::@30 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@30 @begin main::@53 main::@52 @15 main::@51 main::@50
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 @15 main::@51 main::@50
|
||||
main::@54 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@54 @15 main::@51 main::@50
|
||||
main::@55 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@54 @15 main::@51 main::@50
|
||||
main::@31 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 @begin main::@53 main::@52 main::@55 main::@54 @15 main::@51 main::@50
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@54 main::@10 @15 main::@51 main::@50
|
||||
main::@56 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@54 main::@10 @15 main::@51 main::@50 main::@56
|
||||
main::@32 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@32 main::@53 main::@52 main::@55 main::@54 main::@10 @15 main::@51 main::@50 main::@56
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@56
|
||||
main::@57 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@56
|
||||
main::@33 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@33 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@56
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@56 main::@12
|
||||
main::@58 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@56 main::@12 main::@58
|
||||
main::@34 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@34 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@56 main::@12 main::@58
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@58
|
||||
main::@59 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@60 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@35 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@35 main::@60 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@61 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@36 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@36 main::@60 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@62 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@37 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@37 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@63 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@63 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@38 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@38 main::@63 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@63 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@64 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@65 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@39 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@39 main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@18 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@66 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@40 dominated by main::@9 main::@7 main::@8 main::@40 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@19 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@67 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@41 dominated by main::@9 main::@41 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@20 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@68 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@68 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@42 dominated by main::@9 main::@42 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@68 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@21 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@69 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@70 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@22 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@63 main::@66 main::@22 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@return main::@63 main::@66 main::@22 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@71 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@71 main::@70 main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @15 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
print_ln dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @15
|
||||
print_ln::@1 dominated by print_ln::@1 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @15
|
||||
print_ln::@return dominated by print_ln::@1 main::@49 main main::@46 main::@48 main::@47 print_ln::@return main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @15
|
||||
printu dominated by main main::@1 main::@2 @begin @15 printu
|
||||
printu::@1 dominated by main main::@1 main::@2 @begin @15 printu::@1 printu
|
||||
printu::@2 dominated by main main::@1 main::@2 @begin @15 printu::@1 printu::@2 printu
|
||||
printu::@3 dominated by main main::@1 main::@2 @begin @15 printu::@1 printu::@3 printu::@2 printu
|
||||
printu::@4 dominated by main main::@1 main::@2 @begin @15 printu::@1 printu::@3 printu::@2 printu::@4 printu
|
||||
printu::@5 dominated by main main::@1 main::@2 @begin @15 printu::@1 printu::@3 printu::@2 printu::@5 printu::@4 printu
|
||||
printu::@return dominated by main main::@1 main::@2 printu::@return @begin @15 printu::@1 printu::@3 printu::@2 printu::@5 printu::@4 printu
|
||||
print_char dominated by main print_char main::@1 main::@2 @begin @15 printu
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 print_char::@return @begin @15 printu
|
||||
print_byte dominated by main main::@1 main::@2 @begin @15 print_byte printu::@1 printu
|
||||
print_byte::@1 dominated by main main::@1 main::@2 @begin print_byte::@1 @15 print_byte printu::@1 printu
|
||||
print_byte::@return dominated by main main::@1 main::@2 @begin print_byte::@return print_byte::@1 @15 print_byte printu::@1 printu
|
||||
print_str dominated by main main::@1 main::@2 @begin @15 print_str printu::@1 printu::@2 printu
|
||||
print_str::@1 dominated by main main::@1 main::@2 @begin print_str::@1 @15 print_str printu::@1 printu::@2 printu
|
||||
print_str::@return dominated by main main::@1 main::@2 @begin print_str::@return print_str::@1 @15 print_str printu::@1 printu::@2 printu
|
||||
print_str::@2 dominated by main main::@1 main::@2 @begin print_str::@1 print_str::@2 @15 print_str printu::@1 printu::@2 printu
|
||||
print_cls dominated by main @begin @15 print_cls
|
||||
print_cls::@1 dominated by main @begin @15 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main @begin print_cls::@return @15 print_cls::@1 print_cls
|
||||
@16 dominated by @begin @16
|
||||
@end dominated by @end @begin @16
|
||||
main dominated by main @begin @16
|
||||
main::@1 dominated by main main::@1 @begin @16
|
||||
main::@23 dominated by main main::@1 @begin main::@23 @16
|
||||
main::@2 dominated by main main::@1 main::@2 @begin @16
|
||||
main::@46 dominated by main main::@46 main::@1 main::@2 @begin @16
|
||||
main::@24 dominated by main main::@46 main::@1 main::@2 @begin main::@24 @16
|
||||
main::@3 dominated by main main::@46 main::@1 main::@2 main::@3 @begin @16
|
||||
main::@47 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 @begin @16
|
||||
main::@25 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 @begin main::@25 @16
|
||||
main::@4 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 main::@4 @begin @16
|
||||
main::@48 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@3 main::@4 @begin @16
|
||||
main::@26 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@3 main::@4 @begin main::@26 @16
|
||||
main::@5 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @16
|
||||
main::@49 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @16
|
||||
main::@50 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @16 main::@50
|
||||
main::@27 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin main::@27 @16 main::@50
|
||||
main::@6 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @16 main::@50
|
||||
main::@51 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @16 main::@51 main::@50
|
||||
main::@28 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@28 @16 main::@51 main::@50
|
||||
main::@7 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @16 main::@51 main::@50
|
||||
main::@52 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@52 @16 main::@51 main::@50
|
||||
main::@29 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@29 main::@52 @16 main::@51 main::@50
|
||||
main::@8 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@52 @16 main::@51 main::@50
|
||||
main::@53 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 @16 main::@51 main::@50
|
||||
main::@30 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@30 @begin main::@53 main::@52 @16 main::@51 main::@50
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 @16 main::@51 main::@50
|
||||
main::@54 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@54 @16 main::@51 main::@50
|
||||
main::@55 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@54 @16 main::@51 main::@50
|
||||
main::@31 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 @begin main::@53 main::@52 main::@55 main::@54 @16 main::@51 main::@50
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@54 main::@10 @16 main::@51 main::@50
|
||||
main::@56 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@54 main::@10 @16 main::@51 main::@50 main::@56
|
||||
main::@32 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@32 main::@53 main::@52 main::@55 main::@54 main::@10 @16 main::@51 main::@50 main::@56
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@56
|
||||
main::@57 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@56
|
||||
main::@33 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@33 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@56
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@56 main::@12
|
||||
main::@58 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@56 main::@12 main::@58
|
||||
main::@34 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@34 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@56 main::@12 main::@58
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@58
|
||||
main::@59 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@60 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@35 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@35 main::@60 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@61 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@36 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@36 main::@60 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@62 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@37 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@37 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@63 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@63 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@38 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@38 main::@63 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@63 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@64 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@65 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@39 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@39 main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@18 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@66 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@40 dominated by main::@9 main::@7 main::@8 main::@40 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@19 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@67 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@41 dominated by main::@9 main::@41 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@20 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@68 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@68 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@42 dominated by main::@9 main::@42 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@68 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@21 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@69 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@70 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@22 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@63 main::@66 main::@22 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@return main::@63 main::@66 main::@22 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@71 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@71 main::@70 main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 @16 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
print_ln dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @16
|
||||
print_ln::@1 dominated by print_ln::@1 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @16
|
||||
print_ln::@return dominated by print_ln::@1 main::@49 main main::@46 main::@48 main::@47 print_ln::@return main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @16
|
||||
printu dominated by main main::@1 main::@2 @begin @16 printu
|
||||
printu::@1 dominated by main main::@1 main::@2 @begin @16 printu::@1 printu
|
||||
printu::@2 dominated by main main::@1 main::@2 @begin @16 printu::@1 printu::@2 printu
|
||||
printu::@3 dominated by main main::@1 main::@2 @begin @16 printu::@1 printu::@3 printu::@2 printu
|
||||
printu::@4 dominated by main main::@1 main::@2 @begin @16 printu::@1 printu::@3 printu::@2 printu::@4 printu
|
||||
printu::@5 dominated by main main::@1 main::@2 @begin @16 printu::@1 printu::@3 printu::@2 printu::@5 printu::@4 printu
|
||||
printu::@return dominated by main main::@1 main::@2 printu::@return @begin @16 printu::@1 printu::@3 printu::@2 printu::@5 printu::@4 printu
|
||||
print_char dominated by main print_char main::@1 main::@2 @begin @16 printu
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 print_char::@return @begin @16 printu
|
||||
print_byte dominated by main main::@1 main::@2 @begin @16 print_byte printu::@1 printu
|
||||
print_byte::@1 dominated by main main::@1 main::@2 @begin print_byte::@1 @16 print_byte printu::@1 printu
|
||||
print_byte::@return dominated by main main::@1 main::@2 @begin print_byte::@return print_byte::@1 @16 print_byte printu::@1 printu
|
||||
print_str dominated by main main::@1 main::@2 @begin @16 print_str printu::@1 printu::@2 printu
|
||||
print_str::@1 dominated by main main::@1 main::@2 @begin print_str::@1 @16 print_str printu::@1 printu::@2 printu
|
||||
print_str::@return dominated by main main::@1 main::@2 @begin print_str::@return print_str::@1 @16 print_str printu::@1 printu::@2 printu
|
||||
print_str::@2 dominated by main main::@1 main::@2 @begin print_str::@1 print_str::@2 @16 print_str printu::@1 printu::@2 printu
|
||||
print_cls dominated by main @begin @16 print_cls
|
||||
print_cls::@1 dominated by main @begin @16 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main @begin print_cls::@return @16 print_cls::@1 print_cls
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@22 tails: main::@22 blocks: null
|
||||
@ -7476,17 +7569,17 @@ INITIAL ASM
|
||||
.label print_line_cursor = $18
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
b15_from_bbegin:
|
||||
jmp b15
|
||||
//SEG4 @15
|
||||
b15:
|
||||
//SEG3 [1] phi from @begin to @16 [phi:@begin->@16]
|
||||
b16_from_bbegin:
|
||||
jmp b16
|
||||
//SEG4 @16
|
||||
b16:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
main_from_b15:
|
||||
//SEG6 [4] phi from @16 to main [phi:@16->main]
|
||||
main_from_b16:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
bend_from_b15:
|
||||
//SEG7 [3] phi from @16 to @end [phi:@16->@end]
|
||||
bend_from_b16:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -9131,17 +9224,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_line_cursor = 4
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
b15_from_bbegin:
|
||||
jmp b15
|
||||
//SEG4 @15
|
||||
b15:
|
||||
//SEG3 [1] phi from @begin to @16 [phi:@begin->@16]
|
||||
b16_from_bbegin:
|
||||
jmp b16
|
||||
//SEG4 @16
|
||||
b16:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
main_from_b15:
|
||||
//SEG6 [4] phi from @16 to main [phi:@16->main]
|
||||
main_from_b16:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
bend_from_b15:
|
||||
//SEG7 [3] phi from @16 to @end [phi:@16->@end]
|
||||
bend_from_b16:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -10437,7 +10530,7 @@ print_cls: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b15
|
||||
Removing instruction jmp b16
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b23
|
||||
@ -10531,9 +10624,9 @@ Replacing label b1_from_b2 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b15_from_bbegin:
|
||||
Removing instruction main_from_b15:
|
||||
Removing instruction bend_from_b15:
|
||||
Removing instruction b16_from_bbegin:
|
||||
Removing instruction main_from_b16:
|
||||
Removing instruction bend_from_b16:
|
||||
Removing instruction b23_from_b1:
|
||||
Removing instruction b2_from_b23:
|
||||
Removing instruction b24_from_b46:
|
||||
@ -10592,7 +10685,7 @@ Removing instruction b1_from_print_str:
|
||||
Removing instruction b1_from_b2:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b15:
|
||||
Removing instruction b16:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1_from_main:
|
||||
@ -10711,7 +10804,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @15
|
||||
(label) @16
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
@ -11005,12 +11098,12 @@ Score: 15772
|
||||
.label print_char_cursor = 9
|
||||
.label print_line_cursor = 4
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
//SEG4 @15
|
||||
//SEG3 [1] phi from @begin to @16 [phi:@begin->@16]
|
||||
//SEG4 @16
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
//SEG6 [4] phi from @16 to main [phi:@16->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
//SEG7 [3] phi from @16 to @end [phi:@16->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @15
|
||||
(label) @16
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@25
|
||||
@25: scope:[] from @begin
|
||||
to:@26
|
||||
@26: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @25
|
||||
@end: scope:[] from @26
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @25
|
||||
main: scope:[main] from @26
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
(label) @25
|
||||
(label) @26
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor)
|
||||
|
@ -29,13 +29,14 @@ main: {
|
||||
jmp b4
|
||||
}
|
||||
keyboard_key_pressed: {
|
||||
.const colidx = KEY_SPACE&7
|
||||
.label rowidx = KEY_SPACE>>3
|
||||
jsr keyboard_matrix_read
|
||||
and keyboard_matrix_col_bitmask+(KEY_SPACE&7)
|
||||
and keyboard_matrix_col_bitmask+colidx
|
||||
rts
|
||||
}
|
||||
keyboard_matrix_read: {
|
||||
.const rowid = KEY_SPACE>>3
|
||||
lda keyboard_matrix_row_bitmask+rowid
|
||||
lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx
|
||||
sta CIA1_PORT_A
|
||||
lda CIA1_PORT_B
|
||||
eor #$ff
|
||||
|
@ -41,14 +41,14 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@9
|
||||
[18] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_matrix_read::return#2 ] )
|
||||
to:keyboard_key_pressed::@2
|
||||
keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed
|
||||
[19] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$1 ] )
|
||||
[20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] )
|
||||
[19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] )
|
||||
[20] (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::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] )
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2
|
||||
[21] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] )
|
||||
to:@return
|
||||
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
|
||||
[22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] )
|
||||
[22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] )
|
||||
[23] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ keyboard_matrix_read::return#0 ] )
|
||||
to:keyboard_matrix_read::@return
|
||||
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
|
||||
|
@ -144,7 +144,9 @@ byte keyboard_matrix_read(byte rowid) {
|
||||
// All keys exist as as KEY_XXX constants.
|
||||
// Returns zero if the key is not pressed and a non-zero value if the key is currently pressed
|
||||
byte keyboard_key_pressed(byte key) {
|
||||
return keyboard_matrix_read(key>>3)&keyboard_matrix_col_bitmask[key&7];
|
||||
byte colidx = key&7;
|
||||
byte rowidx = key>>3;
|
||||
return keyboard_matrix_read(rowidx)&keyboard_matrix_col_bitmask[colidx];
|
||||
}
|
||||
|
||||
// Get the keycode corresponding to a specific screen code character
|
||||
@ -374,10 +376,12 @@ keyboard_matrix_read::@return:
|
||||
return (byte) keyboard_matrix_read::return
|
||||
endproc // keyboard_matrix_read()
|
||||
proc (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte~) keyboard_key_pressed::$1 ← call keyboard_matrix_read (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$1 & *((byte[]) keyboard_matrix_col_bitmask + (byte~) keyboard_key_pressed::$2)
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte) keyboard_key_pressed::colidx ← (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1
|
||||
(byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx)
|
||||
(byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3
|
||||
goto keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return:
|
||||
@ -550,8 +554,10 @@ SYMBOLS
|
||||
(byte~) keyboard_key_pressed::$2
|
||||
(byte~) keyboard_key_pressed::$3
|
||||
(label) keyboard_key_pressed::@return
|
||||
(byte) keyboard_key_pressed::colidx
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(byte[]) keyboard_matrix_col_bitmask
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
(byte~) keyboard_matrix_read::$0
|
||||
@ -757,10 +763,12 @@ keyboard_matrix_read::@1: scope:[keyboard_matrix_read] from
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte~) keyboard_key_pressed::$1 ← call keyboard_matrix_read (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$1 & *((byte[]) keyboard_matrix_col_bitmask + (byte~) keyboard_key_pressed::$2)
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte) keyboard_key_pressed::colidx ← (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1
|
||||
(byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx)
|
||||
(byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed keyboard_key_pressed::@1
|
||||
@ -991,17 +999,19 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri
|
||||
to:@return
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@9
|
||||
(byte) keyboard_key_pressed::key#1 ← phi( main::@9/(byte) keyboard_key_pressed::key#0 )
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key#1 >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte) keyboard_matrix_read::rowid#0 ← (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key#1 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte) keyboard_key_pressed::colidx#0 ← (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key#1 >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte) keyboard_key_pressed::rowidx#0 ← (byte~) keyboard_key_pressed::$1
|
||||
(byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0
|
||||
call keyboard_matrix_read param-assignment
|
||||
(byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#1
|
||||
to:keyboard_key_pressed::@2
|
||||
keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed
|
||||
(byte) keyboard_key_pressed::key#2 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::key#1 )
|
||||
(byte) keyboard_key_pressed::colidx#1 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::colidx#0 )
|
||||
(byte) keyboard_matrix_read::return#4 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::return#2 )
|
||||
(byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#4
|
||||
(byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#2 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$1 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2)
|
||||
(byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#4
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1)
|
||||
(byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2
|
||||
@ -1083,16 +1093,20 @@ SYMBOL TABLE SSA
|
||||
(byte~) keyboard_key_pressed::$3
|
||||
(label) keyboard_key_pressed::@2
|
||||
(label) keyboard_key_pressed::@return
|
||||
(byte) keyboard_key_pressed::colidx
|
||||
(byte) keyboard_key_pressed::colidx#0
|
||||
(byte) keyboard_key_pressed::colidx#1
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::key#0
|
||||
(byte) keyboard_key_pressed::key#1
|
||||
(byte) keyboard_key_pressed::key#2
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0
|
||||
(byte) keyboard_key_pressed::return#1
|
||||
(byte) keyboard_key_pressed::return#2
|
||||
(byte) keyboard_key_pressed::return#3
|
||||
(byte) keyboard_key_pressed::return#4
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(byte) keyboard_key_pressed::rowidx#0
|
||||
(byte[]) keyboard_matrix_col_bitmask
|
||||
(byte[]) keyboard_matrix_col_bitmask#0
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
@ -1135,22 +1149,24 @@ Inversing boolean not (boolean~) main::$4 ← (byte~) main::$2 == (byte/signed b
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#1
|
||||
Not aliassing across scopes: keyboard_key_pressed::$1 keyboard_matrix_read::return#4
|
||||
Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#4
|
||||
Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_SPACE#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#1
|
||||
Not aliassing across scopes: main::$2 keyboard_key_pressed::return#4
|
||||
Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::row_pressed_bits#0 (byte~) keyboard_matrix_read::$0 (byte) keyboard_matrix_read::return#3 (byte) keyboard_matrix_read::return#1
|
||||
Alias (byte) keyboard_matrix_read::rowid#0 = (byte~) keyboard_key_pressed::$0
|
||||
Alias (byte) keyboard_key_pressed::colidx#0 = (byte~) keyboard_key_pressed::$0 (byte) keyboard_key_pressed::colidx#1
|
||||
Alias (byte) keyboard_key_pressed::rowidx#0 = (byte~) keyboard_key_pressed::$1
|
||||
Alias (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#4
|
||||
Alias (byte) keyboard_key_pressed::key#1 = (byte) keyboard_key_pressed::key#2
|
||||
Alias (byte) keyboard_key_pressed::return#0 = (byte~) keyboard_key_pressed::$3 (byte) keyboard_key_pressed::return#3 (byte) keyboard_key_pressed::return#1
|
||||
Alias (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::return#4
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::$1 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_key_pressed::key#0 KEY_SPACE#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#0
|
||||
Not aliassing across scopes: main::$2 keyboard_key_pressed::return#2
|
||||
@ -1174,19 +1190,21 @@ Constant (const byte[]) keyboard_matrix_col_bitmask#0 = { 1, 2, 4, 8, 16, 32, 64
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
Constant (const byte) keyboard_key_pressed::key#0 = KEY_SPACE#0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
Constant (const byte) keyboard_matrix_read::rowid#0 = keyboard_key_pressed::key#0>>3
|
||||
Constant (const byte) keyboard_key_pressed::$2 = keyboard_key_pressed::key#0&7
|
||||
Constant (const byte) keyboard_key_pressed::colidx#0 = keyboard_key_pressed::key#0&7
|
||||
Constant (const byte) keyboard_key_pressed::rowidx#0 = keyboard_key_pressed::key#0>>3
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
Constant (const byte) keyboard_matrix_read::rowid#0 = keyboard_key_pressed::rowidx#0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
Consolidated array index constant in *(keyboard_matrix_row_bitmask#0+keyboard_matrix_read::rowid#0)
|
||||
Consolidated array index constant in *(keyboard_matrix_col_bitmask#0+keyboard_key_pressed::$2)
|
||||
Consolidated array index constant in *(keyboard_matrix_col_bitmask#0+keyboard_key_pressed::colidx#0)
|
||||
Succesful SSA optimization Pass2ConstantAdditionElimination
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::$1 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#0
|
||||
Not aliassing across scopes: main::$2 keyboard_key_pressed::return#2
|
||||
OPTIMIZING CONTROL FLOW GRAPH
|
||||
Constant inlined keyboard_key_pressed::key#0 = (const byte) KEY_SPACE#0
|
||||
Constant inlined keyboard_key_pressed::$2 = (const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
Constant inlined keyboard_matrix_read::rowid#0 = (const byte) keyboard_key_pressed::rowidx#0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @5 @end main main::@1 main::@return main::@4 main::@9 main::@14 main::@10 main::@5 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_init keyboard_init::@return
|
||||
Block Sequence Planned @begin @5 @end main main::@1 main::@return main::@4 main::@9 main::@14 main::@10 main::@5 keyboard_key_pressed keyboard_key_pressed::@2 keyboard_key_pressed::@return keyboard_matrix_read keyboard_matrix_read::@return keyboard_init keyboard_init::@return
|
||||
@ -1261,14 +1279,14 @@ keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@9
|
||||
[18] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_matrix_read::return#2 ] )
|
||||
to:keyboard_key_pressed::@2
|
||||
keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed
|
||||
[19] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$1 ] )
|
||||
[20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] )
|
||||
[19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] )
|
||||
[20] (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::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] )
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2
|
||||
[21] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] )
|
||||
to:@return
|
||||
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed
|
||||
[22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] )
|
||||
[22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] )
|
||||
[23] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ keyboard_matrix_read::return#0 ] )
|
||||
to:keyboard_matrix_read::@return
|
||||
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
|
||||
@ -1337,11 +1355,13 @@ VARIABLE REGISTER WEIGHTS
|
||||
(byte*) RASTER
|
||||
(void()) keyboard_init()
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$1 4.0
|
||||
(byte~) keyboard_key_pressed::$2 4.0
|
||||
(byte) keyboard_key_pressed::colidx
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0 4.333333333333333
|
||||
(byte) keyboard_key_pressed::return#2 22.0
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(byte[]) keyboard_matrix_col_bitmask
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
(byte) keyboard_matrix_read::return
|
||||
@ -1357,20 +1377,20 @@ Initial phi equivalence classes
|
||||
Added variable keyboard_key_pressed::return#2 to zero page equivalence class [ keyboard_key_pressed::return#2 ]
|
||||
Added variable main::$2 to zero page equivalence class [ main::$2 ]
|
||||
Added variable keyboard_matrix_read::return#2 to zero page equivalence class [ keyboard_matrix_read::return#2 ]
|
||||
Added variable keyboard_key_pressed::$1 to zero page equivalence class [ keyboard_key_pressed::$1 ]
|
||||
Added variable keyboard_key_pressed::$2 to zero page equivalence class [ keyboard_key_pressed::$2 ]
|
||||
Added variable keyboard_key_pressed::return#0 to zero page equivalence class [ keyboard_key_pressed::return#0 ]
|
||||
Added variable keyboard_matrix_read::return#0 to zero page equivalence class [ keyboard_matrix_read::return#0 ]
|
||||
Complete equivalence classes
|
||||
[ keyboard_key_pressed::return#2 ]
|
||||
[ main::$2 ]
|
||||
[ keyboard_matrix_read::return#2 ]
|
||||
[ keyboard_key_pressed::$1 ]
|
||||
[ keyboard_key_pressed::$2 ]
|
||||
[ keyboard_key_pressed::return#0 ]
|
||||
[ keyboard_matrix_read::return#0 ]
|
||||
Allocated zp ZP_BYTE:2 [ keyboard_key_pressed::return#2 ]
|
||||
Allocated zp ZP_BYTE:3 [ main::$2 ]
|
||||
Allocated zp ZP_BYTE:4 [ keyboard_matrix_read::return#2 ]
|
||||
Allocated zp ZP_BYTE:5 [ keyboard_key_pressed::$1 ]
|
||||
Allocated zp ZP_BYTE:5 [ keyboard_key_pressed::$2 ]
|
||||
Allocated zp ZP_BYTE:6 [ keyboard_key_pressed::return#0 ]
|
||||
Allocated zp ZP_BYTE:7 [ keyboard_matrix_read::return#0 ]
|
||||
|
||||
@ -1463,7 +1483,9 @@ main: {
|
||||
}
|
||||
//SEG29 keyboard_key_pressed
|
||||
keyboard_key_pressed: {
|
||||
.label _1 = 5
|
||||
.const colidx = KEY_SPACE&7
|
||||
.label rowidx = KEY_SPACE>>3
|
||||
.label _2 = 5
|
||||
.label return = 6
|
||||
.label return_2 = 2
|
||||
//SEG30 [17] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_matrix_read::return#0 ] )
|
||||
@ -1474,12 +1496,12 @@ keyboard_key_pressed: {
|
||||
jmp b2
|
||||
//SEG32 keyboard_key_pressed::@2
|
||||
b2:
|
||||
//SEG33 [19] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$1 ] ) -- vbuz1=vbuz2
|
||||
//SEG33 [19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2
|
||||
lda keyboard_matrix_read.return_2
|
||||
sta _1
|
||||
//SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band__deref_pbuc1
|
||||
lda keyboard_matrix_col_bitmask+(KEY_SPACE&7)
|
||||
and _1
|
||||
sta _2
|
||||
//SEG34 [20] (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::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band__deref_pbuc1
|
||||
lda keyboard_matrix_col_bitmask+colidx
|
||||
and _2
|
||||
sta return
|
||||
jmp breturn
|
||||
//SEG35 keyboard_key_pressed::@return
|
||||
@ -1489,11 +1511,10 @@ keyboard_key_pressed: {
|
||||
}
|
||||
//SEG37 keyboard_matrix_read
|
||||
keyboard_matrix_read: {
|
||||
.const rowid = KEY_SPACE>>3
|
||||
.label return = 7
|
||||
.label return_2 = 4
|
||||
//SEG38 [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) -- _deref_pbuc1=_deref_pbuc2
|
||||
lda keyboard_matrix_row_bitmask+rowid
|
||||
//SEG38 [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) -- _deref_pbuc1=_deref_pbuc2
|
||||
lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx
|
||||
sta CIA1_PORT_A
|
||||
//SEG39 [23] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ keyboard_matrix_read::return#0 ] ) -- vbuz1=_bnot__deref_pbuc1
|
||||
lda CIA1_PORT_B
|
||||
@ -1526,26 +1547,26 @@ REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement [8] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||
Statement [14] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||
Statement [15] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||
Statement [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a
|
||||
Statement [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) always clobbers reg byte a
|
||||
Statement [20] (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::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a
|
||||
Statement [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) always clobbers reg byte a
|
||||
Statement [23] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
||||
Statement [25] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:5 [ ] ) always clobbers reg byte a
|
||||
Statement [26] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:5 [ ] ) always clobbers reg byte a
|
||||
Potential registers zp ZP_BYTE:2 [ keyboard_key_pressed::return#2 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:3 [ main::$2 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:4 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:5 [ keyboard_key_pressed::$1 ] : zp ZP_BYTE:5 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:5 [ keyboard_key_pressed::$2 ] : zp ZP_BYTE:5 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:6 [ keyboard_key_pressed::return#0 ] : zp ZP_BYTE:6 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:7 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:7 , reg byte a , reg byte x , reg byte y ,
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [keyboard_key_pressed] 22: zp ZP_BYTE:2 [ keyboard_key_pressed::return#2 ] 4.33: zp ZP_BYTE:6 [ keyboard_key_pressed::return#0 ] 4: zp ZP_BYTE:5 [ keyboard_key_pressed::$1 ]
|
||||
Uplift Scope [keyboard_key_pressed] 22: zp ZP_BYTE:2 [ keyboard_key_pressed::return#2 ] 4.33: zp ZP_BYTE:6 [ keyboard_key_pressed::return#0 ] 4: zp ZP_BYTE:5 [ keyboard_key_pressed::$2 ]
|
||||
Uplift Scope [main] 22: zp ZP_BYTE:3 [ main::$2 ]
|
||||
Uplift Scope [keyboard_matrix_read] 4: zp ZP_BYTE:4 [ keyboard_matrix_read::return#2 ] 1.33: zp ZP_BYTE:7 [ keyboard_matrix_read::return#0 ]
|
||||
Uplift Scope [keyboard_init]
|
||||
Uplift Scope []
|
||||
|
||||
Uplifting [keyboard_key_pressed] best 1376 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::$1 ]
|
||||
Uplifting [keyboard_key_pressed] best 1376 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::$2 ]
|
||||
Uplifting [main] best 1336 combination reg byte a [ main::$2 ]
|
||||
Uplifting [keyboard_matrix_read] best 1324 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
Uplifting [keyboard_init] best 1324 combination
|
||||
@ -1637,6 +1658,8 @@ main: {
|
||||
}
|
||||
//SEG29 keyboard_key_pressed
|
||||
keyboard_key_pressed: {
|
||||
.const colidx = KEY_SPACE&7
|
||||
.label rowidx = KEY_SPACE>>3
|
||||
//SEG30 [17] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_matrix_read::return#0 ] )
|
||||
jsr keyboard_matrix_read
|
||||
//SEG31 [18] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_matrix_read::return#2 ] )
|
||||
@ -1644,10 +1667,10 @@ keyboard_key_pressed: {
|
||||
jmp b2
|
||||
//SEG32 keyboard_key_pressed::@2
|
||||
b2:
|
||||
//SEG33 [19] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$1 ] )
|
||||
// (byte~) keyboard_key_pressed::$1 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a
|
||||
//SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1
|
||||
and keyboard_matrix_col_bitmask+(KEY_SPACE&7)
|
||||
//SEG33 [19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] )
|
||||
// (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a
|
||||
//SEG34 [20] (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::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1
|
||||
and keyboard_matrix_col_bitmask+colidx
|
||||
jmp breturn
|
||||
//SEG35 keyboard_key_pressed::@return
|
||||
breturn:
|
||||
@ -1656,9 +1679,8 @@ keyboard_key_pressed: {
|
||||
}
|
||||
//SEG37 keyboard_matrix_read
|
||||
keyboard_matrix_read: {
|
||||
.const rowid = KEY_SPACE>>3
|
||||
//SEG38 [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) -- _deref_pbuc1=_deref_pbuc2
|
||||
lda keyboard_matrix_row_bitmask+rowid
|
||||
//SEG38 [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) -- _deref_pbuc1=_deref_pbuc2
|
||||
lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx
|
||||
sta CIA1_PORT_A
|
||||
//SEG39 [23] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1
|
||||
lda CIA1_PORT_B
|
||||
@ -1752,13 +1774,17 @@ FINAL SYMBOL TABLE
|
||||
(void()) keyboard_init()
|
||||
(label) keyboard_init::@return
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$1 reg byte a 4.0
|
||||
(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::key
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0 reg byte a 4.333333333333333
|
||||
(byte) keyboard_key_pressed::return#2 reg byte a 22.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_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)
|
||||
@ -1768,7 +1794,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) keyboard_matrix_read::return#2 reg byte a 4.0
|
||||
(byte) keyboard_matrix_read::row_pressed_bits
|
||||
(byte) keyboard_matrix_read::rowid
|
||||
(const byte) keyboard_matrix_read::rowid#0 rowid = (const byte) KEY_SPACE#0>>(byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(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()
|
||||
@ -1784,7 +1809,7 @@ FINAL SYMBOL TABLE
|
||||
reg byte a [ keyboard_key_pressed::return#2 ]
|
||||
reg byte a [ main::$2 ]
|
||||
reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
reg byte a [ keyboard_key_pressed::$1 ]
|
||||
reg byte a [ keyboard_key_pressed::$2 ]
|
||||
reg byte a [ keyboard_key_pressed::return#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
|
||||
@ -1855,24 +1880,25 @@ main: {
|
||||
}
|
||||
//SEG29 keyboard_key_pressed
|
||||
keyboard_key_pressed: {
|
||||
.const colidx = KEY_SPACE&7
|
||||
.label rowidx = KEY_SPACE>>3
|
||||
//SEG30 [17] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_matrix_read::return#0 ] )
|
||||
jsr keyboard_matrix_read
|
||||
//SEG31 [18] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_matrix_read::return#2 ] )
|
||||
// (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a
|
||||
//SEG32 keyboard_key_pressed::@2
|
||||
//SEG33 [19] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$1 ] )
|
||||
// (byte~) keyboard_key_pressed::$1 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a
|
||||
//SEG34 [20] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0+(const byte) KEY_SPACE#0&(byte/signed byte/word/signed word/dword/signed dword) 7) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1
|
||||
and keyboard_matrix_col_bitmask+(KEY_SPACE&7)
|
||||
//SEG33 [19] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::$2 ] )
|
||||
// (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a
|
||||
//SEG34 [20] (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::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band__deref_pbuc1
|
||||
and keyboard_matrix_col_bitmask+colidx
|
||||
//SEG35 keyboard_key_pressed::@return
|
||||
//SEG36 [21] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:10 [ keyboard_key_pressed::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG37 keyboard_matrix_read
|
||||
keyboard_matrix_read: {
|
||||
.const rowid = KEY_SPACE>>3
|
||||
//SEG38 [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_matrix_read::rowid#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) -- _deref_pbuc1=_deref_pbuc2
|
||||
lda keyboard_matrix_row_bitmask+rowid
|
||||
//SEG38 [22] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ ] ) -- _deref_pbuc1=_deref_pbuc2
|
||||
lda keyboard_matrix_row_bitmask+keyboard_key_pressed.rowidx
|
||||
sta CIA1_PORT_A
|
||||
//SEG39 [23] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:10::keyboard_matrix_read:17 [ keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1
|
||||
lda CIA1_PORT_B
|
||||
|
@ -22,13 +22,17 @@
|
||||
(void()) keyboard_init()
|
||||
(label) keyboard_init::@return
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$1 reg byte a 4.0
|
||||
(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::key
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0 reg byte a 4.333333333333333
|
||||
(byte) keyboard_key_pressed::return#2 reg byte a 22.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_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)
|
||||
@ -38,7 +42,6 @@
|
||||
(byte) keyboard_matrix_read::return#2 reg byte a 4.0
|
||||
(byte) keyboard_matrix_read::row_pressed_bits
|
||||
(byte) keyboard_matrix_read::rowid
|
||||
(const byte) keyboard_matrix_read::rowid#0 rowid = (const byte) KEY_SPACE#0>>(byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(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()
|
||||
@ -54,6 +57,6 @@
|
||||
reg byte a [ keyboard_key_pressed::return#2 ]
|
||||
reg byte a [ main::$2 ]
|
||||
reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
reg byte a [ keyboard_key_pressed::$1 ]
|
||||
reg byte a [ keyboard_key_pressed::$2 ]
|
||||
reg byte a [ keyboard_key_pressed::return#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
|
@ -133,7 +133,7 @@ main: {
|
||||
jsr keyboard_get_keycode
|
||||
cmp #$3f
|
||||
beq b11
|
||||
sta keyboard_key_pressed.key
|
||||
tay
|
||||
jsr keyboard_key_pressed
|
||||
cmp #0
|
||||
beq b11
|
||||
@ -160,19 +160,17 @@ main: {
|
||||
jmp b9
|
||||
}
|
||||
keyboard_key_pressed: {
|
||||
.label _1 = 6
|
||||
.label key = 5
|
||||
lda key
|
||||
.label colidx = 5
|
||||
tya
|
||||
and #7
|
||||
sta colidx
|
||||
tya
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr keyboard_matrix_read
|
||||
sta _1
|
||||
lda #7
|
||||
and key
|
||||
tay
|
||||
lda keyboard_matrix_col_bitmask,y
|
||||
and _1
|
||||
ldy colidx
|
||||
and keyboard_matrix_col_bitmask,y
|
||||
rts
|
||||
}
|
||||
keyboard_matrix_read: {
|
||||
|
@ -100,36 +100,37 @@ main::@8: scope:[main] from main::@7
|
||||
[50] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
|
||||
to:main::@9
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@22
|
||||
[51] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] )
|
||||
[52] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] )
|
||||
[53] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] )
|
||||
[51] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] )
|
||||
[52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] )
|
||||
[53] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] )
|
||||
[54] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] )
|
||||
[55] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 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
|
||||
[54] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] )
|
||||
[55] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] )
|
||||
[56] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
[56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] )
|
||||
[57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2
|
||||
[57] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
[58] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
to:@return
|
||||
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed main::@6
|
||||
[58] (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 main::@6/(byte) keyboard_matrix_read::rowid#1 ) [ keyboard_matrix_read::rowid#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::rowid#2 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#2 ] )
|
||||
[59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] )
|
||||
[60] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] )
|
||||
[59] (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 main::@6/(byte) keyboard_matrix_read::rowid#1 ) [ keyboard_matrix_read::rowid#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::rowid#2 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#2 ] )
|
||||
[60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] )
|
||||
[61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 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
|
||||
[61] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] )
|
||||
[62] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
to:@return
|
||||
keyboard_get_keycode: scope:[keyboard_get_keycode] from main::@10
|
||||
[62] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
[63] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
to:keyboard_get_keycode::@return
|
||||
keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_keycode
|
||||
[63] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
[64] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
to:@return
|
||||
keyboard_init: scope:[keyboard_init] from main::@14
|
||||
[64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
[65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
[65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
[66] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
to:keyboard_init::@return
|
||||
keyboard_init::@return: scope:[keyboard_init] from keyboard_init
|
||||
[66] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
[67] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
to:@return
|
||||
|
@ -175,7 +175,9 @@ byte keyboard_matrix_read(byte rowid) {
|
||||
// All keys exist as as KEY_XXX constants.
|
||||
// Returns zero if the key is not pressed and a non-zero value if the key is currently pressed
|
||||
byte keyboard_key_pressed(byte key) {
|
||||
return keyboard_matrix_read(key>>3)&keyboard_matrix_col_bitmask[key&7];
|
||||
byte colidx = key&7;
|
||||
byte rowidx = key>>3;
|
||||
return keyboard_matrix_read(rowidx)&keyboard_matrix_col_bitmask[colidx];
|
||||
}
|
||||
|
||||
// Get the keycode corresponding to a specific screen code character
|
||||
@ -408,10 +410,12 @@ keyboard_matrix_read::@return:
|
||||
return (byte) keyboard_matrix_read::return
|
||||
endproc // keyboard_matrix_read()
|
||||
proc (byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte~) keyboard_key_pressed::$1 ← call keyboard_matrix_read (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$1 & *((byte[]) keyboard_matrix_col_bitmask + (byte~) keyboard_key_pressed::$2)
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte) keyboard_key_pressed::colidx ← (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1
|
||||
(byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx)
|
||||
(byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3
|
||||
goto keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return:
|
||||
@ -634,8 +638,10 @@ SYMBOLS
|
||||
(byte~) keyboard_key_pressed::$2
|
||||
(byte~) keyboard_key_pressed::$3
|
||||
(label) keyboard_key_pressed::@return
|
||||
(byte) keyboard_key_pressed::colidx
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(byte[]) keyboard_matrix_col_bitmask
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
(byte~) keyboard_matrix_read::$0
|
||||
@ -874,10 +880,12 @@ keyboard_matrix_read::@1: scope:[keyboard_matrix_read] from
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte~) keyboard_key_pressed::$1 ← call keyboard_matrix_read (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$1 & *((byte[]) keyboard_matrix_col_bitmask + (byte~) keyboard_key_pressed::$2)
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte) keyboard_key_pressed::colidx ← (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte) keyboard_key_pressed::rowidx ← (byte~) keyboard_key_pressed::$1
|
||||
(byte~) keyboard_key_pressed::$2 ← call keyboard_matrix_read (byte) keyboard_key_pressed::rowidx
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask + (byte) keyboard_key_pressed::colidx)
|
||||
(byte) keyboard_key_pressed::return ← (byte~) keyboard_key_pressed::$3
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed keyboard_key_pressed::@1
|
||||
@ -1184,17 +1192,19 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri
|
||||
to:@return
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@22
|
||||
(byte) keyboard_key_pressed::key#1 ← phi( main::@22/(byte) keyboard_key_pressed::key#0 )
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key#1 >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte) keyboard_matrix_read::rowid#0 ← (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$0 ← (byte) keyboard_key_pressed::key#1 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte) keyboard_key_pressed::colidx#0 ← (byte~) keyboard_key_pressed::$0
|
||||
(byte~) keyboard_key_pressed::$1 ← (byte) keyboard_key_pressed::key#1 >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
(byte) keyboard_key_pressed::rowidx#0 ← (byte~) keyboard_key_pressed::$1
|
||||
(byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0
|
||||
call keyboard_matrix_read param-assignment
|
||||
(byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#1
|
||||
to:keyboard_key_pressed::@2
|
||||
keyboard_key_pressed::@2: scope:[keyboard_key_pressed] from keyboard_key_pressed
|
||||
(byte) keyboard_key_pressed::key#2 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::key#1 )
|
||||
(byte) keyboard_key_pressed::colidx#1 ← phi( keyboard_key_pressed/(byte) keyboard_key_pressed::colidx#0 )
|
||||
(byte) keyboard_matrix_read::return#5 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::return#2 )
|
||||
(byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#5
|
||||
(byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#2 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$1 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2)
|
||||
(byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#5
|
||||
(byte~) keyboard_key_pressed::$3 ← (byte~) keyboard_key_pressed::$2 & *((byte[]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#1)
|
||||
(byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$3
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2
|
||||
@ -1519,16 +1529,20 @@ SYMBOL TABLE SSA
|
||||
(byte~) keyboard_key_pressed::$3
|
||||
(label) keyboard_key_pressed::@2
|
||||
(label) keyboard_key_pressed::@return
|
||||
(byte) keyboard_key_pressed::colidx
|
||||
(byte) keyboard_key_pressed::colidx#0
|
||||
(byte) keyboard_key_pressed::colidx#1
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::key#0
|
||||
(byte) keyboard_key_pressed::key#1
|
||||
(byte) keyboard_key_pressed::key#2
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0
|
||||
(byte) keyboard_key_pressed::return#1
|
||||
(byte) keyboard_key_pressed::return#2
|
||||
(byte) keyboard_key_pressed::return#3
|
||||
(byte) keyboard_key_pressed::return#4
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(byte) keyboard_key_pressed::rowidx#0
|
||||
(byte[]) keyboard_matrix_col_bitmask
|
||||
(byte[]) keyboard_matrix_col_bitmask#0
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
@ -1680,8 +1694,9 @@ Inversing boolean not (boolean~) main::$18 ← (byte~) main::$16 == (byte/signed
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#1
|
||||
Not aliassing across scopes: keyboard_key_pressed::$1 keyboard_matrix_read::return#5
|
||||
Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#5
|
||||
Not aliassing across scopes: keyboard_get_keycode::ch#1 keyboard_get_keycode::ch#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#1 main::row#2
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#3 keyboard_matrix_read::return#1
|
||||
@ -1693,9 +1708,9 @@ Not aliassing across scopes: keyboard_key_pressed::key#0 main::key#1
|
||||
Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed::return#1
|
||||
Not aliassing across scopes: main::$16 keyboard_key_pressed::return#4
|
||||
Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::row_pressed_bits#0 (byte~) keyboard_matrix_read::$0 (byte) keyboard_matrix_read::return#4 (byte) keyboard_matrix_read::return#1
|
||||
Alias (byte) keyboard_matrix_read::rowid#0 = (byte~) keyboard_key_pressed::$0
|
||||
Alias (byte) keyboard_key_pressed::colidx#0 = (byte~) keyboard_key_pressed::$0 (byte) keyboard_key_pressed::colidx#1
|
||||
Alias (byte) keyboard_key_pressed::rowidx#0 = (byte~) keyboard_key_pressed::$1
|
||||
Alias (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#5
|
||||
Alias (byte) keyboard_key_pressed::key#1 = (byte) keyboard_key_pressed::key#2
|
||||
Alias (byte) keyboard_key_pressed::return#0 = (byte~) keyboard_key_pressed::$3 (byte) keyboard_key_pressed::return#3 (byte) keyboard_key_pressed::return#1
|
||||
Alias (byte) keyboard_get_keycode::return#0 = (byte) keyboard_get_keycode::return#3 (byte) keyboard_get_keycode::return#1
|
||||
Alias (byte) keyboard_matrix_read::return#3 = (byte) keyboard_matrix_read::return#6
|
||||
@ -1720,8 +1735,9 @@ Alias (byte) keyboard_key_pressed::return#2 = (byte) keyboard_key_pressed::retur
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::$1 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_get_keycode::ch#1 keyboard_get_keycode::ch#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#1 main::row#2
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#3 keyboard_matrix_read::return#0
|
||||
@ -1741,8 +1757,9 @@ Alias (byte*) main::screen#11 = (byte*) main::screen#12
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::$1 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_get_keycode::ch#1 keyboard_get_keycode::ch#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#1 main::row#2
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#3 keyboard_matrix_read::return#0
|
||||
@ -1848,8 +1865,9 @@ Culled Empty Block (label) main::@17
|
||||
Culled Empty Block (label) main::@12
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::$1 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#1 main::row#2
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#3 keyboard_matrix_read::return#0
|
||||
Not aliassing across scopes: main::row_pressed_bits#0 keyboard_matrix_read::return#3
|
||||
@ -1861,8 +1879,9 @@ Not aliassing across scopes: keyboard_key_pressed::return#2 keyboard_key_pressed
|
||||
Not aliassing across scopes: main::$16 keyboard_key_pressed::return#2
|
||||
Multiple usages for variable. Not optimizing sub-constant (byte*) main::screen#1
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#2 keyboard_matrix_read::return#0
|
||||
Not aliassing across scopes: keyboard_key_pressed::$1 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_key_pressed::$2 keyboard_matrix_read::return#2
|
||||
Not aliassing across scopes: keyboard_matrix_read::rowid#1 main::row#2
|
||||
Not aliassing across scopes: keyboard_matrix_read::return#3 keyboard_matrix_read::return#0
|
||||
Not aliassing across scopes: main::row_pressed_bits#0 keyboard_matrix_read::return#3
|
||||
@ -1916,7 +1935,7 @@ Adding NOP phi() at start of main::@14
|
||||
CALL GRAPH
|
||||
Calls in [] to main:2
|
||||
Calls in [main] to keyboard_init:10 keyboard_matrix_read:17 keyboard_get_keycode:34 keyboard_key_pressed:39
|
||||
Calls in [keyboard_key_pressed] to keyboard_matrix_read:67
|
||||
Calls in [keyboard_key_pressed] to keyboard_matrix_read:69
|
||||
|
||||
Propagating live ranges...
|
||||
Propagating live ranges...
|
||||
@ -1947,7 +1966,7 @@ Coalesced [60] main::screen#19 ← main::screen#1
|
||||
Coalesced [61] main::row_pressed_bits#7 ← main::row_pressed_bits#1
|
||||
Coalesced [62] main::col#6 ← main::col#1
|
||||
Coalesced [64] main::sc#3 ← main::sc#1
|
||||
Coalesced [66] keyboard_matrix_read::rowid#3 ← keyboard_matrix_read::rowid#0
|
||||
Coalesced [68] keyboard_matrix_read::rowid#3 ← keyboard_matrix_read::rowid#0
|
||||
Coalesced down to 8 phi equivalence classes
|
||||
Culled Empty Block (label) main::@37
|
||||
Culled Empty Block (label) main::@38
|
||||
@ -2079,38 +2098,39 @@ main::@8: scope:[main] from main::@7
|
||||
[50] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
|
||||
to:main::@9
|
||||
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@22
|
||||
[51] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] )
|
||||
[52] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] )
|
||||
[53] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] )
|
||||
[51] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] )
|
||||
[52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] )
|
||||
[53] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] )
|
||||
[54] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] )
|
||||
[55] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 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
|
||||
[54] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] )
|
||||
[55] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] )
|
||||
[56] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
[56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] )
|
||||
[57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
to:keyboard_key_pressed::@return
|
||||
keyboard_key_pressed::@return: scope:[keyboard_key_pressed] from keyboard_key_pressed::@2
|
||||
[57] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
[58] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
to:@return
|
||||
keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_key_pressed main::@6
|
||||
[58] (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 main::@6/(byte) keyboard_matrix_read::rowid#1 ) [ keyboard_matrix_read::rowid#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::rowid#2 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#2 ] )
|
||||
[59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] )
|
||||
[60] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] )
|
||||
[59] (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 main::@6/(byte) keyboard_matrix_read::rowid#1 ) [ keyboard_matrix_read::rowid#2 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::rowid#2 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#2 ] )
|
||||
[60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] )
|
||||
[61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 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
|
||||
[61] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] )
|
||||
[62] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
to:@return
|
||||
keyboard_get_keycode: scope:[keyboard_get_keycode] from main::@10
|
||||
[62] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
[63] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
to:keyboard_get_keycode::@return
|
||||
keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_keycode
|
||||
[63] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
[64] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
to:@return
|
||||
keyboard_init: scope:[keyboard_init] from main::@14
|
||||
[64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
[65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
[65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
[66] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
to:keyboard_init::@return
|
||||
keyboard_init::@return: scope:[keyboard_init] from keyboard_init
|
||||
[66] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
[67] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
to:@return
|
||||
|
||||
DOMINATORS
|
||||
@ -2259,13 +2279,16 @@ VARIABLE REGISTER WEIGHTS
|
||||
(byte) keyboard_get_keycode::return#2 202.0
|
||||
(void()) keyboard_init()
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$1 2.0
|
||||
(byte~) keyboard_key_pressed::$2 4.0
|
||||
(byte) keyboard_key_pressed::colidx
|
||||
(byte) keyboard_key_pressed::colidx#0 0.6666666666666666
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::key#0 20.999999999999996
|
||||
(byte) keyboard_key_pressed::key#0 52.5
|
||||
(byte) keyboard_key_pressed::return
|
||||
(byte) keyboard_key_pressed::return#0 34.33333333333333
|
||||
(byte) keyboard_key_pressed::return#2 202.0
|
||||
(byte) keyboard_key_pressed::rowidx
|
||||
(byte) keyboard_key_pressed::rowidx#0 4.0
|
||||
(byte[]) keyboard_matrix_col_bitmask
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
(byte) keyboard_matrix_read::return
|
||||
@ -2328,8 +2351,9 @@ Added variable main::key#0 to zero page equivalence class [ main::key#0 ]
|
||||
Added variable keyboard_key_pressed::key#0 to zero page equivalence class [ keyboard_key_pressed::key#0 ]
|
||||
Added variable keyboard_key_pressed::return#2 to zero page equivalence class [ keyboard_key_pressed::return#2 ]
|
||||
Added variable main::$16 to zero page equivalence class [ main::$16 ]
|
||||
Added variable keyboard_key_pressed::colidx#0 to zero page equivalence class [ keyboard_key_pressed::colidx#0 ]
|
||||
Added variable keyboard_key_pressed::rowidx#0 to zero page equivalence class [ keyboard_key_pressed::rowidx#0 ]
|
||||
Added variable keyboard_matrix_read::return#2 to zero page equivalence class [ keyboard_matrix_read::return#2 ]
|
||||
Added variable keyboard_key_pressed::$1 to zero page equivalence class [ keyboard_key_pressed::$1 ]
|
||||
Added variable keyboard_key_pressed::$2 to zero page equivalence class [ keyboard_key_pressed::$2 ]
|
||||
Added variable keyboard_key_pressed::return#0 to zero page equivalence class [ keyboard_key_pressed::return#0 ]
|
||||
Added variable keyboard_matrix_read::return#0 to zero page equivalence class [ keyboard_matrix_read::return#0 ]
|
||||
@ -2352,8 +2376,9 @@ Complete equivalence classes
|
||||
[ keyboard_key_pressed::key#0 ]
|
||||
[ keyboard_key_pressed::return#2 ]
|
||||
[ main::$16 ]
|
||||
[ keyboard_key_pressed::colidx#0 ]
|
||||
[ keyboard_key_pressed::rowidx#0 ]
|
||||
[ keyboard_matrix_read::return#2 ]
|
||||
[ keyboard_key_pressed::$1 ]
|
||||
[ keyboard_key_pressed::$2 ]
|
||||
[ keyboard_key_pressed::return#0 ]
|
||||
[ keyboard_matrix_read::return#0 ]
|
||||
@ -2375,12 +2400,13 @@ Allocated zp ZP_BYTE:18 [ main::key#0 ]
|
||||
Allocated zp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ]
|
||||
Allocated zp ZP_BYTE:20 [ keyboard_key_pressed::return#2 ]
|
||||
Allocated zp ZP_BYTE:21 [ main::$16 ]
|
||||
Allocated zp ZP_BYTE:22 [ keyboard_matrix_read::return#2 ]
|
||||
Allocated zp ZP_BYTE:23 [ keyboard_key_pressed::$1 ]
|
||||
Allocated zp ZP_BYTE:24 [ keyboard_key_pressed::$2 ]
|
||||
Allocated zp ZP_BYTE:25 [ keyboard_key_pressed::return#0 ]
|
||||
Allocated zp ZP_BYTE:26 [ keyboard_matrix_read::return#0 ]
|
||||
Allocated zp ZP_BYTE:27 [ keyboard_get_keycode::return#0 ]
|
||||
Allocated zp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ]
|
||||
Allocated zp ZP_BYTE:23 [ keyboard_key_pressed::rowidx#0 ]
|
||||
Allocated zp ZP_BYTE:24 [ keyboard_matrix_read::return#2 ]
|
||||
Allocated zp ZP_BYTE:25 [ keyboard_key_pressed::$2 ]
|
||||
Allocated zp ZP_BYTE:26 [ keyboard_key_pressed::return#0 ]
|
||||
Allocated zp ZP_BYTE:27 [ keyboard_matrix_read::return#0 ]
|
||||
Allocated zp ZP_BYTE:28 [ keyboard_get_keycode::return#0 ]
|
||||
|
||||
INITIAL ASM
|
||||
//SEG0 Basic Upstart
|
||||
@ -2549,9 +2575,9 @@ main: {
|
||||
lda row
|
||||
sta keyboard_matrix_read.rowid
|
||||
//SEG35 [16] call keyboard_matrix_read param-assignment [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] ( main:2 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] )
|
||||
//SEG36 [58] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read]
|
||||
//SEG36 [59] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read]
|
||||
keyboard_matrix_read_from_b6:
|
||||
//SEG37 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:main::@6->keyboard_matrix_read#0] -- register_copy
|
||||
//SEG37 [59] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:main::@6->keyboard_matrix_read#0] -- register_copy
|
||||
jsr keyboard_matrix_read
|
||||
//SEG38 [17] (byte) keyboard_matrix_read::return#3 ← (byte) keyboard_matrix_read::return#0 [ main::row#2 main::screen#13 keyboard_matrix_read::return#3 ] ( main:2 [ main::row#2 main::screen#13 keyboard_matrix_read::return#3 ] ) -- vbuz1=vbuz2
|
||||
lda keyboard_matrix_read.return
|
||||
@ -2734,93 +2760,97 @@ main: {
|
||||
}
|
||||
//SEG98 keyboard_key_pressed
|
||||
keyboard_key_pressed: {
|
||||
.label _1 = $17
|
||||
.label _2 = $18
|
||||
.label return = $19
|
||||
.label _2 = $19
|
||||
.label colidx = $16
|
||||
.label rowidx = $17
|
||||
.label return = $1a
|
||||
.label key = $13
|
||||
.label return_2 = $14
|
||||
//SEG99 [51] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ) -- vbuz1=vbuz2_ror_3
|
||||
//SEG99 [51] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuz2_band_vbuc1
|
||||
lda #7
|
||||
and key
|
||||
sta colidx
|
||||
//SEG100 [52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuz1=vbuz2_ror_3
|
||||
lda key
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
sta rowidx
|
||||
//SEG101 [53] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ) -- vbuz1=vbuz2
|
||||
lda rowidx
|
||||
sta keyboard_matrix_read.rowid
|
||||
//SEG100 [52] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] )
|
||||
//SEG101 [58] phi from keyboard_key_pressed to keyboard_matrix_read [phi:keyboard_key_pressed->keyboard_matrix_read]
|
||||
//SEG102 [54] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] )
|
||||
//SEG103 [59] phi from keyboard_key_pressed to keyboard_matrix_read [phi:keyboard_key_pressed->keyboard_matrix_read]
|
||||
keyboard_matrix_read_from_keyboard_key_pressed:
|
||||
//SEG102 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:keyboard_key_pressed->keyboard_matrix_read#0] -- register_copy
|
||||
//SEG104 [59] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:keyboard_key_pressed->keyboard_matrix_read#0] -- register_copy
|
||||
jsr keyboard_matrix_read
|
||||
//SEG103 [53] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] ) -- vbuz1=vbuz2
|
||||
//SEG105 [55] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ) -- vbuz1=vbuz2
|
||||
lda keyboard_matrix_read.return
|
||||
sta keyboard_matrix_read.return_2
|
||||
jmp b2
|
||||
//SEG104 keyboard_key_pressed::@2
|
||||
//SEG106 keyboard_key_pressed::@2
|
||||
b2:
|
||||
//SEG105 [54] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] ) -- vbuz1=vbuz2
|
||||
//SEG107 [56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2
|
||||
lda keyboard_matrix_read.return_2
|
||||
sta _1
|
||||
//SEG106 [55] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ) -- vbuz1=vbuz2_band_vbuc1
|
||||
lda #7
|
||||
and key
|
||||
sta _2
|
||||
//SEG107 [56] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3
|
||||
lda _1
|
||||
ldy _2
|
||||
//SEG108 [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3
|
||||
lda _2
|
||||
ldy colidx
|
||||
and keyboard_matrix_col_bitmask,y
|
||||
sta return
|
||||
jmp breturn
|
||||
//SEG108 keyboard_key_pressed::@return
|
||||
//SEG109 keyboard_key_pressed::@return
|
||||
breturn:
|
||||
//SEG109 [57] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
//SEG110 [58] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG110 keyboard_matrix_read
|
||||
//SEG111 keyboard_matrix_read
|
||||
keyboard_matrix_read: {
|
||||
.label return = $1a
|
||||
.label return = $1b
|
||||
.label rowid = $b
|
||||
.label return_2 = $16
|
||||
.label return_2 = $18
|
||||
.label return_3 = $c
|
||||
//SEG111 [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuz1
|
||||
//SEG112 [60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuz1
|
||||
ldy rowid
|
||||
lda keyboard_matrix_row_bitmask,y
|
||||
sta CIA1_PORT_A
|
||||
//SEG112 [60] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] ) -- vbuz1=_bnot__deref_pbuc1
|
||||
//SEG113 [61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuz1=_bnot__deref_pbuc1
|
||||
lda CIA1_PORT_B
|
||||
eor #$ff
|
||||
sta return
|
||||
jmp breturn
|
||||
//SEG113 keyboard_matrix_read::@return
|
||||
//SEG114 keyboard_matrix_read::@return
|
||||
breturn:
|
||||
//SEG114 [61] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] )
|
||||
//SEG115 [62] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG115 keyboard_get_keycode
|
||||
//SEG116 keyboard_get_keycode
|
||||
keyboard_get_keycode: {
|
||||
.label return = $1b
|
||||
.label return = $1c
|
||||
.label ch = $10
|
||||
.label return_2 = $11
|
||||
//SEG116 [62] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2
|
||||
//SEG117 [63] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2
|
||||
ldy ch
|
||||
lda keyboard_char_keycodes,y
|
||||
sta return
|
||||
jmp breturn
|
||||
//SEG117 keyboard_get_keycode::@return
|
||||
//SEG118 keyboard_get_keycode::@return
|
||||
breturn:
|
||||
//SEG118 [63] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
//SEG119 [64] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG119 keyboard_init
|
||||
//SEG120 keyboard_init
|
||||
keyboard_init: {
|
||||
//SEG120 [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
//SEG121 [65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
lda #$ff
|
||||
sta CIA1_PORT_A_DDR
|
||||
//SEG121 [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
//SEG122 [66] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
lda #0
|
||||
sta CIA1_PORT_B_DDR
|
||||
jmp breturn
|
||||
//SEG122 keyboard_init::@return
|
||||
//SEG123 keyboard_init::@return
|
||||
breturn:
|
||||
//SEG123 [66] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
//SEG124 [67] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
rts
|
||||
}
|
||||
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
||||
@ -2841,15 +2871,16 @@ Statement [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed
|
||||
Statement [47] *((byte*) main::screen#2 + (byte) main::i#4) ← (byte) ' ' [ main::screen#2 main::i#4 ] ( main:2 [ main::screen#2 main::i#4 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ]
|
||||
Statement [50] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a
|
||||
Statement [55] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ) always clobbers reg byte a
|
||||
Statement [51] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:9 [ main::ch#2 main::ch#1 ]
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ keyboard_key_pressed::$1 ]
|
||||
Statement [56] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a
|
||||
Statement [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ]
|
||||
Statement [60] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
||||
Statement [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a
|
||||
Statement [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a
|
||||
Statement [52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ]
|
||||
Statement [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a
|
||||
Statement [60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a
|
||||
Statement [61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
||||
Statement [65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a
|
||||
Statement [66] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a
|
||||
Statement [6] *((byte*) main::sc#2) ← (byte) ' ' [ main::sc#2 ] ( main:2 [ main::sc#2 ] ) always clobbers reg byte a reg byte y
|
||||
Statement [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1 [ main::sc#1 ] ( main:2 [ main::sc#1 ] ) always clobbers reg byte a
|
||||
Statement [13] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||
@ -2860,13 +2891,13 @@ Statement [29] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed
|
||||
Statement [41] *((byte*) main::screen#2 + (byte) main::i#10) ← (byte) main::ch#2 [ main::screen#2 main::ch#2 main::i#10 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 ] ) always clobbers reg byte a
|
||||
Statement [47] *((byte*) main::screen#2 + (byte) main::i#4) ← (byte) ' ' [ main::screen#2 main::i#4 ] ( main:2 [ main::screen#2 main::i#4 ] ) always clobbers reg byte a
|
||||
Statement [50] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ) always clobbers reg byte a
|
||||
Statement [51] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ) always clobbers reg byte a
|
||||
Statement [55] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ) always clobbers reg byte a
|
||||
Statement [56] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a
|
||||
Statement [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) always clobbers reg byte a
|
||||
Statement [60] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
||||
Statement [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a
|
||||
Statement [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a
|
||||
Statement [51] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a
|
||||
Statement [52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) always clobbers reg byte a
|
||||
Statement [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) always clobbers reg byte a
|
||||
Statement [60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) always clobbers reg byte a
|
||||
Statement [61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
|
||||
Statement [65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a
|
||||
Statement [66] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) always clobbers reg byte a
|
||||
Potential registers zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] : zp ZP_WORD:2 ,
|
||||
Potential registers zp ZP_BYTE:4 [ main::row#2 main::row#1 ] : zp ZP_BYTE:4 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_WORD:5 [ main::screen#13 main::screen#1 ] : zp ZP_WORD:5 ,
|
||||
@ -2884,43 +2915,41 @@ Potential registers zp ZP_BYTE:18 [ main::key#0 ] : zp ZP_BYTE:18 , reg byte a ,
|
||||
Potential registers zp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ] : zp ZP_BYTE:19 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:20 [ keyboard_key_pressed::return#2 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:21 [ main::$16 ] : zp ZP_BYTE:21 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:22 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:22 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:23 [ keyboard_key_pressed::$1 ] : zp ZP_BYTE:23 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:24 [ keyboard_key_pressed::$2 ] : zp ZP_BYTE:24 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:25 [ keyboard_key_pressed::return#0 ] : zp ZP_BYTE:25 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:26 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:26 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:27 [ keyboard_get_keycode::return#0 ] : zp ZP_BYTE:27 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ] : zp ZP_BYTE:22 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:23 [ keyboard_key_pressed::rowidx#0 ] : zp ZP_BYTE:23 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:24 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:24 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:25 [ keyboard_key_pressed::$2 ] : zp ZP_BYTE:25 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:26 [ keyboard_key_pressed::return#0 ] : zp ZP_BYTE:26 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:27 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:27 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:28 [ keyboard_get_keycode::return#0 ] : zp ZP_BYTE:28 , reg byte a , reg byte x , reg byte y ,
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [main] 2,168.83: zp ZP_BYTE:8 [ main::col#2 main::col#1 ] 2,002: zp ZP_BYTE:13 [ main::$5 ] 1,490.13: zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] 765.92: zp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ] 240.54: zp ZP_WORD:5 [ main::screen#13 main::screen#1 ] 202: zp ZP_BYTE:21 [ main::$16 ] 180.36: zp ZP_BYTE:9 [ main::ch#2 main::ch#1 ] 173.14: zp ZP_BYTE:4 [ main::row#2 main::row#1 ] 151.5: zp ZP_BYTE:18 [ main::key#0 ] 33: zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] 10.14: zp ZP_WORD:14 [ main::screen#2 ]
|
||||
Uplift Scope [keyboard_matrix_read] 311: zp ZP_BYTE:11 [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0 keyboard_matrix_read::rowid#1 ] 202: zp ZP_BYTE:12 [ keyboard_matrix_read::return#3 ] 26.25: zp ZP_BYTE:26 [ keyboard_matrix_read::return#0 ] 4: zp ZP_BYTE:22 [ keyboard_matrix_read::return#2 ]
|
||||
Uplift Scope [keyboard_get_keycode] 202: zp ZP_BYTE:17 [ keyboard_get_keycode::return#2 ] 103: zp ZP_BYTE:16 [ keyboard_get_keycode::ch#0 ] 34.33: zp ZP_BYTE:27 [ keyboard_get_keycode::return#0 ]
|
||||
Uplift Scope [keyboard_key_pressed] 202: zp ZP_BYTE:20 [ keyboard_key_pressed::return#2 ] 34.33: zp ZP_BYTE:25 [ keyboard_key_pressed::return#0 ] 21: zp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ] 4: zp ZP_BYTE:24 [ keyboard_key_pressed::$2 ] 2: zp ZP_BYTE:23 [ keyboard_key_pressed::$1 ]
|
||||
Uplift Scope [keyboard_matrix_read] 311: zp ZP_BYTE:11 [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0 keyboard_matrix_read::rowid#1 ] 202: zp ZP_BYTE:12 [ keyboard_matrix_read::return#3 ] 26.25: zp ZP_BYTE:27 [ keyboard_matrix_read::return#0 ] 4: zp ZP_BYTE:24 [ keyboard_matrix_read::return#2 ]
|
||||
Uplift Scope [keyboard_get_keycode] 202: zp ZP_BYTE:17 [ keyboard_get_keycode::return#2 ] 103: zp ZP_BYTE:16 [ keyboard_get_keycode::ch#0 ] 34.33: zp ZP_BYTE:28 [ keyboard_get_keycode::return#0 ]
|
||||
Uplift Scope [keyboard_key_pressed] 202: zp ZP_BYTE:20 [ keyboard_key_pressed::return#2 ] 52.5: zp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ] 34.33: zp ZP_BYTE:26 [ keyboard_key_pressed::return#0 ] 4: zp ZP_BYTE:23 [ keyboard_key_pressed::rowidx#0 ] 4: zp ZP_BYTE:25 [ keyboard_key_pressed::$2 ] 0.67: zp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ]
|
||||
Uplift Scope [keyboard_init]
|
||||
Uplift Scope []
|
||||
|
||||
Uplift attempts [main] 10000/15552 (limiting to 10000)
|
||||
Uplifting [main] best 77618 combination reg byte y [ main::col#2 main::col#1 ] reg byte a [ main::$5 ] zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] zp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ] zp ZP_WORD:5 [ main::screen#13 main::screen#1 ] reg byte a [ main::$16 ] reg byte x [ main::ch#2 main::ch#1 ] reg byte x [ main::row#2 main::row#1 ] reg byte a [ main::key#0 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_WORD:14 [ main::screen#2 ]
|
||||
Uplifting [main] best 77624 combination reg byte y [ main::col#2 main::col#1 ] reg byte a [ main::$5 ] zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] zp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ] zp ZP_WORD:5 [ main::screen#13 main::screen#1 ] reg byte a [ main::$16 ] reg byte x [ main::ch#2 main::ch#1 ] reg byte x [ main::row#2 main::row#1 ] reg byte a [ main::key#0 ] zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] zp ZP_WORD:14 [ main::screen#2 ]
|
||||
Limited combination testing to 10000 combinations of 15552 possible.
|
||||
Uplifting [keyboard_matrix_read] best 76602 combination reg byte a [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0 keyboard_matrix_read::rowid#1 ] reg byte a [ keyboard_matrix_read::return#3 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
Uplifting [keyboard_get_keycode] best 75396 combination reg byte a [ keyboard_get_keycode::return#2 ] reg byte x [ keyboard_get_keycode::ch#0 ] reg byte a [ keyboard_get_keycode::return#0 ]
|
||||
Uplifting [keyboard_key_pressed] best 74489 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte a [ keyboard_key_pressed::return#0 ] zp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ] reg byte a [ keyboard_key_pressed::$2 ] zp ZP_BYTE:23 [ keyboard_key_pressed::$1 ]
|
||||
Uplifting [keyboard_init] best 74489 combination
|
||||
Uplifting [] best 74489 combination
|
||||
Uplifting [keyboard_matrix_read] best 76608 combination reg byte a [ keyboard_matrix_read::rowid#2 keyboard_matrix_read::rowid#0 keyboard_matrix_read::rowid#1 ] reg byte a [ keyboard_matrix_read::return#3 ] reg byte a [ keyboard_matrix_read::return#0 ] reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
Uplifting [keyboard_get_keycode] best 75402 combination reg byte a [ keyboard_get_keycode::return#2 ] reg byte x [ keyboard_get_keycode::ch#0 ] reg byte a [ keyboard_get_keycode::return#0 ]
|
||||
Uplifting [keyboard_key_pressed] best 74385 combination reg byte a [ keyboard_key_pressed::return#2 ] reg byte y [ keyboard_key_pressed::key#0 ] reg byte a [ keyboard_key_pressed::return#0 ] reg byte a [ keyboard_key_pressed::rowidx#0 ] reg byte a [ keyboard_key_pressed::$2 ] zp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ]
|
||||
Uplifting [keyboard_init] best 74385 combination
|
||||
Uplifting [] best 74385 combination
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ]
|
||||
Uplifting [main] best 74489 combination zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ]
|
||||
Uplifting [main] best 74385 combination zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ]
|
||||
Uplifting [main] best 74489 combination zp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ]
|
||||
Uplifting [keyboard_key_pressed] best 74489 combination zp ZP_BYTE:19 [ keyboard_key_pressed::key#0 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:23 [ keyboard_key_pressed::$1 ]
|
||||
Uplifting [keyboard_key_pressed] best 74489 combination zp ZP_BYTE:23 [ keyboard_key_pressed::$1 ]
|
||||
Uplifting [main] best 74385 combination zp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ]
|
||||
Uplifting [keyboard_key_pressed] best 74385 combination zp ZP_BYTE:22 [ keyboard_key_pressed::colidx#0 ]
|
||||
Coalescing zero page register with common assignment [ zp ZP_WORD:5 [ main::screen#13 main::screen#1 ] ] with [ zp ZP_WORD:14 [ main::screen#2 ] ] - score: 1
|
||||
Coalescing zero page register [ zp ZP_WORD:2 [ main::sc#2 main::sc#1 ] ] with [ zp ZP_WORD:5 [ main::screen#13 main::screen#1 main::screen#2 ] ]
|
||||
Coalescing zero page register [ zp ZP_BYTE:7 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 ] ] with [ zp ZP_BYTE:10 [ main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ] ]
|
||||
Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:4 [ main::row_pressed_bits#2 main::row_pressed_bits#0 main::row_pressed_bits#1 main::i#4 main::i#10 main::i#6 main::i#1 main::i#2 ]
|
||||
Allocated (was zp ZP_BYTE:19) zp ZP_BYTE:5 [ keyboard_key_pressed::key#0 ]
|
||||
Allocated (was zp ZP_BYTE:23) zp ZP_BYTE:6 [ keyboard_key_pressed::$1 ]
|
||||
Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:5 [ keyboard_key_pressed::colidx#0 ]
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -3080,9 +3109,9 @@ main: {
|
||||
//SEG34 [15] (byte) keyboard_matrix_read::rowid#1 ← (byte) main::row#2 [ main::row#2 main::screen#13 keyboard_matrix_read::rowid#1 ] ( main:2 [ main::row#2 main::screen#13 keyboard_matrix_read::rowid#1 ] ) -- vbuaa=vbuxx
|
||||
txa
|
||||
//SEG35 [16] call keyboard_matrix_read param-assignment [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] ( main:2 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] )
|
||||
//SEG36 [58] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read]
|
||||
//SEG36 [59] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read]
|
||||
keyboard_matrix_read_from_b6:
|
||||
//SEG37 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:main::@6->keyboard_matrix_read#0] -- register_copy
|
||||
//SEG37 [59] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:main::@6->keyboard_matrix_read#0] -- register_copy
|
||||
jsr keyboard_matrix_read
|
||||
//SEG38 [17] (byte) keyboard_matrix_read::return#3 ← (byte) keyboard_matrix_read::return#0 [ main::row#2 main::screen#13 keyboard_matrix_read::return#3 ] ( main:2 [ main::row#2 main::screen#13 keyboard_matrix_read::return#3 ] )
|
||||
// (byte) keyboard_matrix_read::return#3 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a
|
||||
@ -3185,8 +3214,8 @@ main: {
|
||||
jmp b22
|
||||
//SEG75 main::@22
|
||||
b22:
|
||||
//SEG76 [36] (byte) keyboard_key_pressed::key#0 ← (byte) main::key#0 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) -- vbuz1=vbuaa
|
||||
sta keyboard_key_pressed.key
|
||||
//SEG76 [36] (byte) keyboard_key_pressed::key#0 ← (byte) main::key#0 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) -- vbuyy=vbuaa
|
||||
tay
|
||||
//SEG77 [37] call keyboard_key_pressed param-assignment [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
jsr keyboard_key_pressed
|
||||
//SEG78 [38] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#2 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#2 ] )
|
||||
@ -3248,75 +3277,76 @@ main: {
|
||||
}
|
||||
//SEG98 keyboard_key_pressed
|
||||
keyboard_key_pressed: {
|
||||
.label _1 = 6
|
||||
.label key = 5
|
||||
//SEG99 [51] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ) -- vbuaa=vbuz1_ror_3
|
||||
lda key
|
||||
.label colidx = 5
|
||||
//SEG99 [51] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuyy_band_vbuc1
|
||||
tya
|
||||
and #7
|
||||
sta colidx
|
||||
//SEG100 [52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuaa=vbuyy_ror_3
|
||||
tya
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
//SEG100 [52] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] )
|
||||
//SEG101 [58] phi from keyboard_key_pressed to keyboard_matrix_read [phi:keyboard_key_pressed->keyboard_matrix_read]
|
||||
//SEG101 [53] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] )
|
||||
// (byte) keyboard_matrix_read::rowid#0 = (byte) keyboard_key_pressed::rowidx#0 // register copy reg byte a
|
||||
//SEG102 [54] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] )
|
||||
//SEG103 [59] phi from keyboard_key_pressed to keyboard_matrix_read [phi:keyboard_key_pressed->keyboard_matrix_read]
|
||||
keyboard_matrix_read_from_keyboard_key_pressed:
|
||||
//SEG102 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:keyboard_key_pressed->keyboard_matrix_read#0] -- register_copy
|
||||
//SEG104 [59] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:keyboard_key_pressed->keyboard_matrix_read#0] -- register_copy
|
||||
jsr keyboard_matrix_read
|
||||
//SEG103 [53] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] )
|
||||
//SEG105 [55] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] )
|
||||
// (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a
|
||||
jmp b2
|
||||
//SEG104 keyboard_key_pressed::@2
|
||||
//SEG106 keyboard_key_pressed::@2
|
||||
b2:
|
||||
//SEG105 [54] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] ) -- vbuz1=vbuaa
|
||||
sta _1
|
||||
//SEG106 [55] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ) -- vbuaa=vbuz1_band_vbuc1
|
||||
lda #7
|
||||
and key
|
||||
//SEG107 [56] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa
|
||||
tay
|
||||
lda keyboard_matrix_col_bitmask,y
|
||||
and _1
|
||||
//SEG107 [56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] )
|
||||
// (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a
|
||||
//SEG108 [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1
|
||||
ldy colidx
|
||||
and keyboard_matrix_col_bitmask,y
|
||||
jmp breturn
|
||||
//SEG108 keyboard_key_pressed::@return
|
||||
//SEG109 keyboard_key_pressed::@return
|
||||
breturn:
|
||||
//SEG109 [57] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
//SEG110 [58] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG110 keyboard_matrix_read
|
||||
//SEG111 keyboard_matrix_read
|
||||
keyboard_matrix_read: {
|
||||
//SEG111 [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuaa
|
||||
//SEG112 [60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuaa
|
||||
tay
|
||||
lda keyboard_matrix_row_bitmask,y
|
||||
sta CIA1_PORT_A
|
||||
//SEG112 [60] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1
|
||||
//SEG113 [61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1
|
||||
lda CIA1_PORT_B
|
||||
eor #$ff
|
||||
jmp breturn
|
||||
//SEG113 keyboard_matrix_read::@return
|
||||
//SEG114 keyboard_matrix_read::@return
|
||||
breturn:
|
||||
//SEG114 [61] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] )
|
||||
//SEG115 [62] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG115 keyboard_get_keycode
|
||||
//SEG116 keyboard_get_keycode
|
||||
keyboard_get_keycode: {
|
||||
//SEG116 [62] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] ) -- vbuaa=pbuc1_derefidx_vbuxx
|
||||
//SEG117 [63] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] ) -- vbuaa=pbuc1_derefidx_vbuxx
|
||||
lda keyboard_char_keycodes,x
|
||||
jmp breturn
|
||||
//SEG117 keyboard_get_keycode::@return
|
||||
//SEG118 keyboard_get_keycode::@return
|
||||
breturn:
|
||||
//SEG118 [63] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
//SEG119 [64] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG119 keyboard_init
|
||||
//SEG120 keyboard_init
|
||||
keyboard_init: {
|
||||
//SEG120 [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
//SEG121 [65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
lda #$ff
|
||||
sta CIA1_PORT_A_DDR
|
||||
//SEG121 [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
//SEG122 [66] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
lda #0
|
||||
sta CIA1_PORT_B_DDR
|
||||
jmp breturn
|
||||
//SEG122 keyboard_init::@return
|
||||
//SEG123 keyboard_init::@return
|
||||
breturn:
|
||||
//SEG123 [66] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
//SEG124 [67] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
rts
|
||||
}
|
||||
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
||||
@ -3537,15 +3567,18 @@ FINAL SYMBOL TABLE
|
||||
(void()) keyboard_init()
|
||||
(label) keyboard_init::@return
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$1 $1 zp ZP_BYTE:6 2.0
|
||||
(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
|
||||
(byte) keyboard_key_pressed::colidx#0 colidx zp ZP_BYTE:5 0.6666666666666666
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::key#0 key zp ZP_BYTE:5 20.999999999999996
|
||||
(byte) keyboard_key_pressed::key#0 reg byte y 52.5
|
||||
(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::rowidx
|
||||
(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)
|
||||
@ -3624,11 +3657,12 @@ reg byte a [ main::$5 ]
|
||||
reg byte x [ keyboard_get_keycode::ch#0 ]
|
||||
reg byte a [ keyboard_get_keycode::return#2 ]
|
||||
reg byte a [ main::key#0 ]
|
||||
zp ZP_BYTE:5 [ keyboard_key_pressed::key#0 ]
|
||||
reg byte y [ keyboard_key_pressed::key#0 ]
|
||||
reg byte a [ keyboard_key_pressed::return#2 ]
|
||||
reg byte a [ main::$16 ]
|
||||
zp ZP_BYTE:5 [ keyboard_key_pressed::colidx#0 ]
|
||||
reg byte a [ keyboard_key_pressed::rowidx#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
zp ZP_BYTE:6 [ keyboard_key_pressed::$1 ]
|
||||
reg byte a [ keyboard_key_pressed::$2 ]
|
||||
reg byte a [ keyboard_key_pressed::return#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
@ -3636,7 +3670,7 @@ reg byte a [ keyboard_get_keycode::return#0 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 55731
|
||||
Score: 55627
|
||||
|
||||
//SEG0 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
@ -3770,8 +3804,8 @@ main: {
|
||||
//SEG34 [15] (byte) keyboard_matrix_read::rowid#1 ← (byte) main::row#2 [ main::row#2 main::screen#13 keyboard_matrix_read::rowid#1 ] ( main:2 [ main::row#2 main::screen#13 keyboard_matrix_read::rowid#1 ] ) -- vbuaa=vbuxx
|
||||
txa
|
||||
//SEG35 [16] call keyboard_matrix_read param-assignment [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] ( main:2 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] )
|
||||
//SEG36 [58] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read]
|
||||
//SEG37 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:main::@6->keyboard_matrix_read#0] -- register_copy
|
||||
//SEG36 [59] phi from main::@6 to keyboard_matrix_read [phi:main::@6->keyboard_matrix_read]
|
||||
//SEG37 [59] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#1 [phi:main::@6->keyboard_matrix_read#0] -- register_copy
|
||||
jsr keyboard_matrix_read
|
||||
//SEG38 [17] (byte) keyboard_matrix_read::return#3 ← (byte) keyboard_matrix_read::return#0 [ main::row#2 main::screen#13 keyboard_matrix_read::return#3 ] ( main:2 [ main::row#2 main::screen#13 keyboard_matrix_read::return#3 ] )
|
||||
// (byte) keyboard_matrix_read::return#3 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a
|
||||
@ -3853,8 +3887,8 @@ main: {
|
||||
cmp #$3f
|
||||
beq b11
|
||||
//SEG75 main::@22
|
||||
//SEG76 [36] (byte) keyboard_key_pressed::key#0 ← (byte) main::key#0 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) -- vbuz1=vbuaa
|
||||
sta keyboard_key_pressed.key
|
||||
//SEG76 [36] (byte) keyboard_key_pressed::key#0 ← (byte) main::key#0 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) -- vbuyy=vbuaa
|
||||
tay
|
||||
//SEG77 [37] call keyboard_key_pressed param-assignment [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
jsr keyboard_key_pressed
|
||||
//SEG78 [38] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#2 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#2 ] )
|
||||
@ -3905,64 +3939,65 @@ main: {
|
||||
}
|
||||
//SEG98 keyboard_key_pressed
|
||||
keyboard_key_pressed: {
|
||||
.label _1 = 6
|
||||
.label key = 5
|
||||
//SEG99 [51] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::rowid#0 ] ) -- vbuaa=vbuz1_ror_3
|
||||
lda key
|
||||
.label colidx = 5
|
||||
//SEG99 [51] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ) -- vbuz1=vbuyy_band_vbuc1
|
||||
tya
|
||||
and #7
|
||||
sta colidx
|
||||
//SEG100 [52] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::rowidx#0 ] ) -- vbuaa=vbuyy_ror_3
|
||||
tya
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
//SEG100 [52] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::key#0 ] )
|
||||
//SEG101 [58] phi from keyboard_key_pressed to keyboard_matrix_read [phi:keyboard_key_pressed->keyboard_matrix_read]
|
||||
//SEG102 [58] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:keyboard_key_pressed->keyboard_matrix_read#0] -- register_copy
|
||||
//SEG101 [53] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::rowid#0 ] )
|
||||
// (byte) keyboard_matrix_read::rowid#0 = (byte) keyboard_key_pressed::rowidx#0 // register copy reg byte a
|
||||
//SEG102 [54] call keyboard_matrix_read param-assignment [ keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_matrix_read::return#0 keyboard_key_pressed::colidx#0 ] )
|
||||
//SEG103 [59] phi from keyboard_key_pressed to keyboard_matrix_read [phi:keyboard_key_pressed->keyboard_matrix_read]
|
||||
//SEG104 [59] phi (byte) keyboard_matrix_read::rowid#2 = (byte) keyboard_matrix_read::rowid#0 [phi:keyboard_key_pressed->keyboard_matrix_read#0] -- register_copy
|
||||
jsr keyboard_matrix_read
|
||||
//SEG103 [53] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#2 ] )
|
||||
//SEG105 [55] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 [ keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#2 ] )
|
||||
// (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#0 // register copy reg byte a
|
||||
//SEG104 keyboard_key_pressed::@2
|
||||
//SEG105 [54] (byte~) keyboard_key_pressed::$1 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::$1 ] ) -- vbuz1=vbuaa
|
||||
sta _1
|
||||
//SEG106 [55] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::$1 keyboard_key_pressed::$2 ] ) -- vbuaa=vbuz1_band_vbuc1
|
||||
lda #7
|
||||
and key
|
||||
//SEG107 [56] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$1 & *((const byte[]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_key_pressed::$2) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa
|
||||
tay
|
||||
lda keyboard_matrix_col_bitmask,y
|
||||
and _1
|
||||
//SEG108 keyboard_key_pressed::@return
|
||||
//SEG109 [57] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
//SEG106 keyboard_key_pressed::@2
|
||||
//SEG107 [56] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2 [ keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_key_pressed::$2 ] )
|
||||
// (byte~) keyboard_key_pressed::$2 = (byte) keyboard_matrix_read::return#2 // register copy reg byte a
|
||||
//SEG108 [57] (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::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] ) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuz1
|
||||
ldy colidx
|
||||
and keyboard_matrix_col_bitmask,y
|
||||
//SEG109 keyboard_key_pressed::@return
|
||||
//SEG110 [58] return [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:37 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG110 keyboard_matrix_read
|
||||
//SEG111 keyboard_matrix_read
|
||||
keyboard_matrix_read: {
|
||||
//SEG111 [59] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuaa
|
||||
//SEG112 [60] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2) [ ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 ] ) -- _deref_pbuc1=pbuc2_derefidx_vbuaa
|
||||
tay
|
||||
lda keyboard_matrix_row_bitmask,y
|
||||
sta CIA1_PORT_A
|
||||
//SEG112 [60] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1
|
||||
//SEG113 [61] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] ) -- vbuaa=_bnot__deref_pbuc1
|
||||
lda CIA1_PORT_B
|
||||
eor #$ff
|
||||
//SEG113 keyboard_matrix_read::@return
|
||||
//SEG114 [61] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:52 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_matrix_read::return#0 ] )
|
||||
//SEG114 keyboard_matrix_read::@return
|
||||
//SEG115 [62] return [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_matrix_read:16 [ main::row#2 main::screen#13 keyboard_matrix_read::return#0 ] main:2::keyboard_key_pressed:37::keyboard_matrix_read:54 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::colidx#0 keyboard_matrix_read::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG115 keyboard_get_keycode
|
||||
//SEG116 keyboard_get_keycode
|
||||
keyboard_get_keycode: {
|
||||
//SEG116 [62] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] ) -- vbuaa=pbuc1_derefidx_vbuxx
|
||||
//SEG117 [63] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0) [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] ) -- vbuaa=pbuc1_derefidx_vbuxx
|
||||
lda keyboard_char_keycodes,x
|
||||
//SEG117 keyboard_get_keycode::@return
|
||||
//SEG118 [63] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
//SEG118 keyboard_get_keycode::@return
|
||||
//SEG119 [64] return [ keyboard_get_keycode::return#0 ] ( main:2::keyboard_get_keycode:32 [ main::screen#2 main::ch#2 main::i#10 keyboard_get_keycode::return#0 ] )
|
||||
rts
|
||||
}
|
||||
//SEG119 keyboard_init
|
||||
//SEG120 keyboard_init
|
||||
keyboard_init: {
|
||||
//SEG120 [64] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
//SEG121 [65] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
lda #$ff
|
||||
sta CIA1_PORT_A_DDR
|
||||
//SEG121 [65] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
//SEG122 [66] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::keyboard_init:10 [ ] ) -- _deref_pbuc1=vbuc2
|
||||
lda #0
|
||||
sta CIA1_PORT_B_DDR
|
||||
//SEG122 keyboard_init::@return
|
||||
//SEG123 [66] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
//SEG123 keyboard_init::@return
|
||||
//SEG124 [67] return [ ] ( main:2::keyboard_init:10 [ ] )
|
||||
rts
|
||||
}
|
||||
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
||||
|
@ -123,15 +123,18 @@
|
||||
(void()) keyboard_init()
|
||||
(label) keyboard_init::@return
|
||||
(byte()) keyboard_key_pressed((byte) keyboard_key_pressed::key)
|
||||
(byte~) keyboard_key_pressed::$1 $1 zp ZP_BYTE:6 2.0
|
||||
(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
|
||||
(byte) keyboard_key_pressed::colidx#0 colidx zp ZP_BYTE:5 0.6666666666666666
|
||||
(byte) keyboard_key_pressed::key
|
||||
(byte) keyboard_key_pressed::key#0 key zp ZP_BYTE:5 20.999999999999996
|
||||
(byte) keyboard_key_pressed::key#0 reg byte y 52.5
|
||||
(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::rowidx
|
||||
(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)
|
||||
@ -210,11 +213,12 @@ reg byte a [ main::$5 ]
|
||||
reg byte x [ keyboard_get_keycode::ch#0 ]
|
||||
reg byte a [ keyboard_get_keycode::return#2 ]
|
||||
reg byte a [ main::key#0 ]
|
||||
zp ZP_BYTE:5 [ keyboard_key_pressed::key#0 ]
|
||||
reg byte y [ keyboard_key_pressed::key#0 ]
|
||||
reg byte a [ keyboard_key_pressed::return#2 ]
|
||||
reg byte a [ main::$16 ]
|
||||
zp ZP_BYTE:5 [ keyboard_key_pressed::colidx#0 ]
|
||||
reg byte a [ keyboard_key_pressed::rowidx#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#2 ]
|
||||
zp ZP_BYTE:6 [ keyboard_key_pressed::$1 ]
|
||||
reg byte a [ keyboard_key_pressed::$2 ]
|
||||
reg byte a [ keyboard_key_pressed::return#0 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@14
|
||||
@14: scope:[] from @begin
|
||||
to:@15
|
||||
@15: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @14
|
||||
main: scope:[main] from @15
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -30,6 +30,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -44,13 +64,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -127,6 +140,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -139,6 +154,35 @@ STATEMENTS
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -167,12 +211,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -426,6 +464,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -458,6 +510,54 @@ INITIAL CONTROL FLOW GRAPH
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@1
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -480,8 +580,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -504,17 +604,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -529,8 +620,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -548,8 +639,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -567,8 +658,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -578,8 +669,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -589,8 +680,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -608,8 +699,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
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
|
||||
@ -620,8 +711,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -629,8 +720,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -648,8 +739,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -658,8 +749,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_cls
|
||||
(dword) main::dw ← (dword/signed dword) 305419896
|
||||
@ -709,13 +800,14 @@ main::@2: scope:[main] from main::@1
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
@15: scope:[] from @14
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_sdword
|
||||
@ -758,6 +850,7 @@ Removing empty block @10
|
||||
Removing empty block @11
|
||||
Removing empty block @12
|
||||
Removing empty block @13
|
||||
Removing empty block @14
|
||||
Removing empty block main::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_ln modifies print_line_cursor
|
||||
@ -792,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:@14
|
||||
to:@15
|
||||
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 )
|
||||
@ -925,10 +1018,10 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#46
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @14
|
||||
(byte*) print_char_cursor#68 ← phi( @14/(byte*) print_char_cursor#70 )
|
||||
(byte*) print_line_cursor#18 ← phi( @14/(byte*) print_line_cursor#20 )
|
||||
(byte*) print_screen#4 ← phi( @14/(byte*) print_screen#5 )
|
||||
main: scope:[main] from @15
|
||||
(byte*) print_char_cursor#68 ← phi( @15/(byte*) print_char_cursor#70 )
|
||||
(byte*) print_line_cursor#18 ← phi( @15/(byte*) print_line_cursor#20 )
|
||||
(byte*) print_screen#4 ← phi( @15/(byte*) print_screen#5 )
|
||||
call print_cls param-assignment
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main
|
||||
@ -1096,23 +1189,23 @@ main::@return: scope:[main] from main::@17
|
||||
(byte*) print_char_cursor#31 ← (byte*) print_char_cursor#62
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @begin
|
||||
@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 )
|
||||
call main param-assignment
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
(byte*) print_char_cursor#63 ← phi( @14/(byte*) print_char_cursor#31 )
|
||||
(byte*) print_line_cursor#16 ← phi( @14/(byte*) print_line_cursor#7 )
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
(byte*) print_char_cursor#63 ← phi( @15/(byte*) print_char_cursor#31 )
|
||||
(byte*) print_line_cursor#16 ← phi( @15/(byte*) print_line_cursor#7 )
|
||||
(byte*) print_line_cursor#8 ← (byte*) print_line_cursor#16
|
||||
(byte*) print_char_cursor#32 ← (byte*) print_char_cursor#63
|
||||
to:@end
|
||||
@end: scope:[] from @15
|
||||
@end: scope:[] from @16
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @16
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
@ -1561,7 +1654,7 @@ Culled Empty Block (label) print_dword::@2
|
||||
Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) main::@3
|
||||
Culled Empty Block (label) @15
|
||||
Culled Empty Block (label) @16
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: print_line_cursor#9 print_line_cursor#19
|
||||
Not aliassing across scopes: print_word::w#4 print_word::w#2
|
||||
@ -1647,13 +1740,13 @@ Constant inlined print_char::ch#7 = (byte) ' '
|
||||
Constant inlined main::dw#0 = (dword/signed dword) 305419896
|
||||
Constant inlined print_char::ch#6 = (byte) ' '
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@return print_ln print_ln::@1 print_ln::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_word print_word::@1 print_word::@return print_dword print_dword::@1 print_dword::@return print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@return print_ln print_ln::@1 print_ln::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_word print_word::@1 print_word::@return print_dword print_dword::@1 print_dword::@return print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting main::@18(between main::@17 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@return main::@18 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_word print_word::@1 print_word::@return print_dword print_dword::@1 print_dword::@return print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@return main::@18 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_word print_word::@1 print_word::@return print_dword print_dword::@1 print_dword::@return print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@16
|
||||
@ -1756,9 +1849,9 @@ Coalesced [110] print_cls::sc#3 ← print_cls::sc#1
|
||||
Coalesced down to 7 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@return main::@18 print_ln print_ln::@1 print_ln::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_word print_word::@1 print_word::@return print_dword print_dword::@1 print_dword::@return print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @15 @end main main::@1 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@return main::@18 print_ln print_ln::@1 print_ln::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_word print_word::@1 print_word::@return print_dword print_dword::@1 print_dword::@return print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @15
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@4
|
||||
@ -1814,14 +1907,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@14
|
||||
@14: scope:[] from @begin
|
||||
to:@15
|
||||
@15: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @14
|
||||
main: scope:[main] from @15
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -1978,43 +2071,43 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@14 dominated by @begin @14
|
||||
@end dominated by @end @begin @14
|
||||
main dominated by main @begin @14
|
||||
main::@1 dominated by main main::@1 @begin @14
|
||||
main::@4 dominated by main main::@1 main::@4 @begin @14
|
||||
main::@5 dominated by main main::@1 main::@5 main::@4 @begin @14
|
||||
main::@6 dominated by main main::@1 main::@5 main::@6 main::@4 @begin @14
|
||||
main::@7 dominated by main::@7 main main::@1 main::@5 main::@6 main::@4 @begin @14
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 @begin @14
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 @begin @14
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 @begin @14 main::@10
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@12
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@13 main::@12
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@13 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@17 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 main::@return main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@17 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@18 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@17 main::@16 main::@18 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14 print_ln
|
||||
print_ln::@1 dominated by main::@9 print_ln::@1 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14 print_ln
|
||||
print_ln::@return dominated by main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@1 main::@5 main::@6 main::@4 main::@11 @begin @14 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14 print_ln
|
||||
print_byte dominated by main main::@1 @begin @14 print_byte
|
||||
print_byte::@1 dominated by main main::@1 print_byte::@1 @begin @14 print_byte
|
||||
print_byte::@return dominated by main main::@1 print_byte::@1 @begin @14 print_byte print_byte::@return
|
||||
print_char dominated by main print_char main::@1 @begin @14
|
||||
print_char::@return dominated by main print_char main::@1 print_char::@return @begin @14
|
||||
print_word dominated by main print_word main::@1 @begin @14
|
||||
print_word::@1 dominated by main print_word main::@1 print_word::@1 @begin @14
|
||||
print_word::@return dominated by main print_word main::@1 print_word::@1 @begin @14 print_word::@return
|
||||
print_dword dominated by main main::@1 print_dword @begin @14
|
||||
print_dword::@1 dominated by main main::@1 print_dword::@1 print_dword @begin @14
|
||||
print_dword::@return dominated by main print_dword::@return main::@1 print_dword::@1 print_dword @begin @14
|
||||
print_cls dominated by main @begin @14 print_cls
|
||||
print_cls::@1 dominated by main @begin @14 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main print_cls::@return @begin @14 print_cls::@1 print_cls
|
||||
@15 dominated by @begin @15
|
||||
@end dominated by @end @begin @15
|
||||
main dominated by main @begin @15
|
||||
main::@1 dominated by main main::@1 @begin @15
|
||||
main::@4 dominated by main main::@1 main::@4 @begin @15
|
||||
main::@5 dominated by main main::@1 main::@5 main::@4 @begin @15
|
||||
main::@6 dominated by main main::@1 main::@5 main::@6 main::@4 @begin @15
|
||||
main::@7 dominated by main::@7 main main::@1 main::@5 main::@6 main::@4 @begin @15
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 @begin @15
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 @begin @15
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 @begin main::@10 @15
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@12
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@13 main::@12
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@13 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@13 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@17 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 main::@return main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@17 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@18 dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@17 main::@16 main::@18 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@16 main::@13 main::@12 main::@15 main::@14 print_ln
|
||||
print_ln::@1 dominated by main::@9 print_ln::@1 main::@7 main::@8 main main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@16 main::@13 main::@12 main::@15 main::@14 print_ln
|
||||
print_ln::@return dominated by main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@1 main::@5 main::@6 main::@4 main::@11 @begin main::@10 @15 main::@16 main::@13 main::@12 main::@15 main::@14 print_ln
|
||||
print_byte dominated by main main::@1 @begin @15 print_byte
|
||||
print_byte::@1 dominated by main main::@1 print_byte::@1 @begin @15 print_byte
|
||||
print_byte::@return dominated by main main::@1 print_byte::@1 @begin @15 print_byte print_byte::@return
|
||||
print_char dominated by main print_char main::@1 @begin @15
|
||||
print_char::@return dominated by main print_char main::@1 print_char::@return @begin @15
|
||||
print_word dominated by main print_word main::@1 @begin @15
|
||||
print_word::@1 dominated by main print_word main::@1 print_word::@1 @begin @15
|
||||
print_word::@return dominated by main print_word main::@1 print_word::@1 @begin @15 print_word::@return
|
||||
print_dword dominated by main main::@1 print_dword @begin @15
|
||||
print_dword::@1 dominated by main main::@1 print_dword::@1 print_dword @begin @15
|
||||
print_dword::@return dominated by main print_dword::@return main::@1 print_dword::@1 print_dword @begin @15
|
||||
print_cls dominated by main @begin @15 print_cls
|
||||
print_cls::@1 dominated by main @begin @15 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main print_cls::@return @begin @15 print_cls::@1 print_cls
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@18 blocks: null
|
||||
@ -2178,17 +2271,17 @@ INITIAL ASM
|
||||
.label print_char_cursor = $a
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
b14_from_bbegin:
|
||||
jmp b14
|
||||
//SEG4 @14
|
||||
b14:
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
b15_from_bbegin:
|
||||
jmp b15
|
||||
//SEG4 @15
|
||||
b15:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
main_from_b14:
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
main_from_b15:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
bend_from_b14:
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
bend_from_b15:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -2837,17 +2930,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_char_cursor = 8
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
b14_from_bbegin:
|
||||
jmp b14
|
||||
//SEG4 @14
|
||||
b14:
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
b15_from_bbegin:
|
||||
jmp b15
|
||||
//SEG4 @15
|
||||
b15:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
main_from_b14:
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
main_from_b15:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
bend_from_b14:
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
bend_from_b15:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -3348,7 +3441,7 @@ print_cls: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b14
|
||||
Removing instruction jmp b15
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b4
|
||||
@ -3386,9 +3479,9 @@ Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b14_from_bbegin:
|
||||
Removing instruction main_from_b14:
|
||||
Removing instruction bend_from_b14:
|
||||
Removing instruction b15_from_bbegin:
|
||||
Removing instruction main_from_b15:
|
||||
Removing instruction bend_from_b15:
|
||||
Removing instruction b4_from_b1:
|
||||
Removing instruction print_char_from_b4:
|
||||
Removing instruction b6_from_b5:
|
||||
@ -3407,7 +3500,7 @@ Removing instruction b1_from_print_ln:
|
||||
Removing instruction b1_from_b1:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b14:
|
||||
Removing instruction b15:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1_from_main:
|
||||
@ -3454,7 +3547,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
@ -3568,12 +3661,12 @@ Score: 7440
|
||||
.label print_line_cursor = 6
|
||||
.label print_char_cursor = 8
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
//SEG4 @14
|
||||
//SEG3 [1] phi from @begin to @15 [phi:@begin->@15]
|
||||
//SEG4 @15
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
//SEG6 [4] phi from @15 to main [phi:@15->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
//SEG7 [3] phi from @15 to @end [phi:@15->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @14
|
||||
(label) @15
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@28
|
||||
@28: scope:[] from @begin
|
||||
to:@29
|
||||
@29: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @28
|
||||
@end: scope:[] from @29
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @28
|
||||
main: scope:[main] from @29
|
||||
[4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -123,6 +123,26 @@ byte* print_screen = $0400;
|
||||
byte* print_line_cursor = print_screen;
|
||||
byte* print_char_cursor = print_line_cursor;
|
||||
|
||||
// Print a number of zero-terminated strings, each followed by a newline.
|
||||
// The sequence of lines is terminated by another zero.
|
||||
void print_str_lines(byte* str) {
|
||||
while(*str!='@') {
|
||||
do {
|
||||
byte ch = *(str++);
|
||||
if(ch!='@') {
|
||||
*(print_char_cursor++) = ch;
|
||||
}
|
||||
} while (ch!='@');
|
||||
print_ln();
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Print a zero-terminated string
|
||||
void print_str(byte* str) {
|
||||
while(*str!='@') {
|
||||
@ -137,13 +157,6 @@ void print_str_at(byte* str, byte* at) {
|
||||
}
|
||||
}
|
||||
|
||||
// Print a zero-terminated string followed by a newline
|
||||
void print_str_ln(byte* str) {
|
||||
print_str(str);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
|
||||
// Print a newline
|
||||
void print_ln() {
|
||||
do {
|
||||
@ -220,6 +233,8 @@ void print_set_screen(byte* screen) {
|
||||
print_char_cursor = print_line_cursor;
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
Adding pre/post-modifier (byte*) print_str::str ← ++ (byte*) print_str::str
|
||||
Adding pre/post-modifier (byte*) print_str_at::at ← ++ (byte*) print_str_at::at
|
||||
@ -401,6 +416,35 @@ STATEMENTS
|
||||
(byte*) print_screen ← (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
proc (void()) print_str_lines((byte*) print_str_lines::str)
|
||||
print_str_lines::@1:
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
goto print_str_lines::@3
|
||||
print_str_lines::@2:
|
||||
print_str_lines::@4:
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
print_str_lines::@5:
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
goto print_str_lines::@1
|
||||
print_str_lines::@3:
|
||||
print_str_lines::@return:
|
||||
return
|
||||
endproc // print_str_lines()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_str((byte*) print_str::str)
|
||||
print_str::@1:
|
||||
(boolean~) print_str::$0 ← *((byte*) print_str::str) != (byte) '@'
|
||||
@ -429,12 +473,6 @@ print_str_at::@3:
|
||||
print_str_at::@return:
|
||||
return
|
||||
endproc // print_str_at()
|
||||
proc (void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
print_str_ln::@return:
|
||||
return
|
||||
endproc // print_str_ln()
|
||||
proc (void()) print_ln()
|
||||
print_ln::@1:
|
||||
(byte*~) print_ln::$0 ← (byte*) print_line_cursor + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
@ -1311,6 +1349,20 @@ SYMBOLS
|
||||
(label) print_str_at::@return
|
||||
(byte*) print_str_at::at
|
||||
(byte*) print_str_at::str
|
||||
(void()) print_str_lines((byte*) print_str_lines::str)
|
||||
(boolean~) print_str_lines::$0
|
||||
(boolean~) print_str_lines::$1
|
||||
(boolean~) print_str_lines::$2
|
||||
(boolean~) print_str_lines::$3
|
||||
(void~) print_str_lines::$4
|
||||
(label) print_str_lines::@1
|
||||
(label) print_str_lines::@2
|
||||
(label) print_str_lines::@3
|
||||
(label) print_str_lines::@4
|
||||
(label) print_str_lines::@5
|
||||
(label) print_str_lines::@return
|
||||
(byte) print_str_lines::ch
|
||||
(byte*) print_str_lines::str
|
||||
(void()) print_str_ln((byte*) print_str_ln::str)
|
||||
(void~) print_str_ln::$0
|
||||
(void~) print_str_ln::$1
|
||||
@ -1353,6 +1405,54 @@ INITIAL CONTROL FLOW GRAPH
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@1
|
||||
print_str_lines: scope:[print_str_lines] from
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@1: scope:[print_str_lines] from print_str_lines print_str_lines::@9
|
||||
(boolean~) print_str_lines::$0 ← *((byte*) print_str_lines::str) != (byte) '@'
|
||||
if((boolean~) print_str_lines::$0) goto print_str_lines::@2
|
||||
to:print_str_lines::@6
|
||||
print_str_lines::@2: scope:[print_str_lines] from print_str_lines::@1 print_str_lines::@7
|
||||
to:print_str_lines::@4
|
||||
print_str_lines::@6: scope:[print_str_lines] from print_str_lines::@1
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@3: scope:[print_str_lines] from print_str_lines::@10 print_str_lines::@6
|
||||
to:print_str_lines::@return
|
||||
print_str_lines::@7: scope:[print_str_lines] from
|
||||
to:print_str_lines::@2
|
||||
print_str_lines::@4: scope:[print_str_lines] from print_str_lines::@2 print_str_lines::@5
|
||||
(byte) print_str_lines::ch ← *((byte*) print_str_lines::str)
|
||||
(byte*) print_str_lines::str ← ++ (byte*) print_str_lines::str
|
||||
(boolean~) print_str_lines::$1 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
(boolean~) print_str_lines::$2 ← ! (boolean~) print_str_lines::$1
|
||||
if((boolean~) print_str_lines::$2) goto print_str_lines::@5
|
||||
to:print_str_lines::@8
|
||||
print_str_lines::@5: scope:[print_str_lines] from print_str_lines::@4 print_str_lines::@8
|
||||
(boolean~) print_str_lines::$3 ← (byte) print_str_lines::ch != (byte) '@'
|
||||
if((boolean~) print_str_lines::$3) goto print_str_lines::@4
|
||||
to:print_str_lines::@9
|
||||
print_str_lines::@8: scope:[print_str_lines] from print_str_lines::@4
|
||||
*((byte*) print_char_cursor) ← (byte) print_str_lines::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
to:print_str_lines::@5
|
||||
print_str_lines::@9: scope:[print_str_lines] from print_str_lines::@5
|
||||
(void~) print_str_lines::$4 ← call print_ln
|
||||
to:print_str_lines::@1
|
||||
print_str_lines::@10: scope:[print_str_lines] from
|
||||
to:print_str_lines::@3
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -1375,8 +1475,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
print_str_at: scope:[print_str_at] from
|
||||
to:print_str_at::@1
|
||||
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
|
||||
@ -1399,17 +1499,8 @@ print_str_at::@6: scope:[print_str_at] from
|
||||
print_str_at::@return: scope:[print_str_at] from print_str_at::@3
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
print_str_ln: scope:[print_str_ln] from
|
||||
(void~) print_str_ln::$0 ← call print_str (byte*) print_str_ln::str
|
||||
(void~) print_str_ln::$1 ← call print_ln
|
||||
to:print_str_ln::@return
|
||||
print_str_ln::@return: scope:[print_str_ln] from print_str_ln
|
||||
return
|
||||
to:@return
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -1424,8 +1515,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_sword: scope:[print_sword] from
|
||||
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
|
||||
@ -1443,8 +1534,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
|
||||
@ -1462,8 +1553,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_word: scope:[print_word] from
|
||||
(byte~) print_word::$0 ← > (word) print_word::w
|
||||
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
|
||||
@ -1473,8 +1564,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
@ -1484,8 +1575,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
|
||||
@ -1503,8 +1594,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
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
|
||||
@ -1515,8 +1606,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -1524,8 +1615,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -1543,8 +1634,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -1553,8 +1644,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
mul8u: scope:[mul8u] from
|
||||
(word) mul8u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) mul8u::mb ← ((word)) (byte) mul8u::b
|
||||
@ -1594,8 +1685,8 @@ mul8u::@return: scope:[mul8u] from mul8u::@3 mul8u::@9
|
||||
to:@return
|
||||
mul8u::@9: scope:[mul8u] from
|
||||
to:mul8u::@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
mul8s: scope:[mul8s] from
|
||||
(byte~) mul8s::$0 ← ((byte)) (signed byte) mul8s::a
|
||||
(byte~) mul8s::$1 ← ((byte)) (signed byte) mul8s::b
|
||||
@ -1636,8 +1727,8 @@ mul8s::@return: scope:[mul8s] from mul8s::@2 mul8s::@5
|
||||
to:@return
|
||||
mul8s::@5: scope:[mul8s] from
|
||||
to:mul8s::@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
mul8su: scope:[mul8su] from
|
||||
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
|
||||
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
|
||||
@ -1665,8 +1756,8 @@ mul8su::@return: scope:[mul8su] from mul8su::@1 mul8su::@3
|
||||
to:@return
|
||||
mul8su::@3: scope:[mul8su] from
|
||||
to:mul8su::@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
mul16u: scope:[mul16u] from
|
||||
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(dword) mul16u::mb ← ((dword)) (word) mul16u::b
|
||||
@ -1706,8 +1797,8 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 mul16u::@9
|
||||
to:@return
|
||||
mul16u::@9: scope:[mul16u] from
|
||||
to:mul16u::@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
mul16s: scope:[mul16s] from
|
||||
(word~) mul16s::$0 ← ((word)) (signed word) mul16s::a
|
||||
(word~) mul16s::$1 ← ((word)) (signed word) mul16s::b
|
||||
@ -1748,12 +1839,12 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 mul16s::@5
|
||||
to:@return
|
||||
mul16s::@5: scope:[mul16s] from
|
||||
to:mul16s::@return
|
||||
@18: scope:[] from @17
|
||||
@19: scope:[] from @18
|
||||
(byte[512]) mulf_sqr1_lo ← { fill( 512, 0) }
|
||||
(byte[512]) mulf_sqr1_hi ← { fill( 512, 0) }
|
||||
(byte[512]) mulf_sqr2_lo ← { fill( 512, 0) }
|
||||
(byte[512]) mulf_sqr2_hi ← { fill( 512, 0) }
|
||||
to:@19
|
||||
to:@20
|
||||
mulf_init: scope:[mulf_init] from
|
||||
(word) mulf_init::sqr ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) mulf_init::x_2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1825,8 +1916,8 @@ mulf_init::@8: scope:[mulf_init] from mulf_init::@4
|
||||
mulf_init::@return: scope:[mulf_init] from mulf_init::@8
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
mulf8u: scope:[mulf8u] from
|
||||
(byte*) mulf8u::memA ← ((byte*)) (byte/word/signed word/dword/signed dword) 254
|
||||
(byte*) mulf8u::memB ← ((byte*)) (byte/word/signed word/dword/signed dword) 255
|
||||
@ -1841,8 +1932,8 @@ mulf8u::@return: scope:[mulf8u] from mulf8u mulf8u::@1
|
||||
to:@return
|
||||
mulf8u::@1: scope:[mulf8u] from
|
||||
to:mulf8u::@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
mulf8s: scope:[mulf8s] from
|
||||
(byte~) mulf8s::$0 ← ((byte)) (signed byte) mulf8s::a
|
||||
(byte~) mulf8s::$1 ← ((byte)) (signed byte) mulf8s::b
|
||||
@ -1883,9 +1974,9 @@ mulf8s::@return: scope:[mulf8s] from mulf8s::@2 mulf8s::@5
|
||||
to:@return
|
||||
mulf8s::@5: scope:[mulf8s] from
|
||||
to:mulf8s::@return
|
||||
@21: scope:[] from @20
|
||||
@22: scope:[] from @21
|
||||
(byte*) BGCOL ← ((byte*)) (word/dword/signed dword) 53281
|
||||
to:@22
|
||||
to:@23
|
||||
main: scope:[main] from
|
||||
*((byte*) BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(void~) main::$0 ← call print_cls
|
||||
@ -1896,8 +1987,8 @@ main: scope:[main] from
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
muls16u: scope:[muls16u] from
|
||||
(dword) muls16u::m ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) muls16u::$0 ← (word) muls16u::a != (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1925,8 +2016,8 @@ muls16u::@return: scope:[muls16u] from muls16u::@1 muls16u::@5
|
||||
to:@return
|
||||
muls16u::@5: scope:[muls16u] from
|
||||
to:muls16u::@return
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
muls16s: scope:[muls16s] from
|
||||
(signed dword) muls16s::m ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(boolean~) muls16s::$0 ← (signed word) muls16s::a < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1975,8 +2066,8 @@ muls16s::@return: scope:[muls16s] from muls16s::@11 muls16s::@3
|
||||
to:@return
|
||||
muls16s::@11: scope:[muls16s] from
|
||||
to:muls16s::@return
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
mul16u_compare: scope:[mul16u_compare] from
|
||||
(word) mul16u_compare::a ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) mul16u_compare::b ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -2030,8 +2121,8 @@ mul16u_compare::@9: scope:[mul16u_compare] from mul16u_compare::@8
|
||||
(void~) mul16u_compare::$11 ← call print_str (string) "word multiply results match!@"
|
||||
(void~) mul16u_compare::$12 ← call print_ln
|
||||
to:mul16u_compare::@return
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
mul16u_error: scope:[mul16u_error] from
|
||||
(void~) mul16u_error::$0 ← call print_str (string) "word multiply mismatch @"
|
||||
(void~) mul16u_error::$1 ← call print_word (word) mul16u_error::a
|
||||
@ -2046,8 +2137,8 @@ mul16u_error: scope:[mul16u_error] from
|
||||
mul16u_error::@return: scope:[mul16u_error] from mul16u_error
|
||||
return
|
||||
to:@return
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
mul16s_compare: scope:[mul16s_compare] from
|
||||
(signed word/signed dword~) mul16s_compare::$0 ← - (word/signed word/dword/signed dword) 32767
|
||||
(signed word) mul16s_compare::a ← (signed word/signed dword~) mul16s_compare::$0
|
||||
@ -2103,8 +2194,8 @@ mul16s_compare::@9: scope:[mul16s_compare] from mul16s_compare::@8
|
||||
(void~) mul16s_compare::$13 ← call print_str (string) "signed word multiply results match!@"
|
||||
(void~) mul16s_compare::$14 ← call print_ln
|
||||
to:mul16s_compare::@return
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
mul16s_error: scope:[mul16s_error] from
|
||||
(void~) mul16s_error::$0 ← call print_str (string) "signed word multiply mismatch @"
|
||||
(void~) mul16s_error::$1 ← call print_sword (signed word) mul16s_error::a
|
||||
@ -2119,13 +2210,14 @@ mul16s_error: scope:[mul16s_error] from
|
||||
mul16s_error::@return: scope:[mul16s_error] from mul16s_error
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
@29: scope:[] from @28
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @28
|
||||
@end: scope:[] from @29
|
||||
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_set_screen
|
||||
Removing unused procedure mul8s
|
||||
@ -2184,12 +2276,12 @@ Creating constant string variable for inline (const string) mul16s_error::str "s
|
||||
Creating constant string variable for inline (const string) mul16s_error::str1 "*@"
|
||||
Creating constant string variable for inline (const string) mul16s_error::str2 " slow:@"
|
||||
Creating constant string variable for inline (const string) mul16s_error::str3 " / normal:@"
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block print_str::@4
|
||||
Removing empty block print_str::@3
|
||||
Removing empty block print_str::@5
|
||||
Removing empty block print_str::@6
|
||||
Removing empty block @1
|
||||
Removing empty block @2
|
||||
Removing empty block @3
|
||||
Removing empty block @4
|
||||
Removing empty block @5
|
||||
@ -2204,28 +2296,29 @@ Removing empty block @13
|
||||
Removing empty block @14
|
||||
Removing empty block @15
|
||||
Removing empty block @16
|
||||
Removing empty block @17
|
||||
Removing empty block mul16u::@5
|
||||
Removing empty block mul16u::@6
|
||||
Removing empty block mul16u::@8
|
||||
Removing empty block mul16u::@9
|
||||
Removing empty block @17
|
||||
Removing empty block @18
|
||||
Removing empty block mul16s::@5
|
||||
Removing empty block @19
|
||||
Removing empty block @20
|
||||
Removing empty block @22
|
||||
Removing empty block @21
|
||||
Removing empty block @23
|
||||
Removing empty block muls16u::@4
|
||||
Removing empty block muls16u::@5
|
||||
Removing empty block @23
|
||||
Removing empty block @24
|
||||
Removing empty block muls16s::@7
|
||||
Removing empty block muls16s::@8
|
||||
Removing empty block muls16s::@10
|
||||
Removing empty block muls16s::@11
|
||||
Removing empty block @24
|
||||
Removing empty block mul16u_compare::@7
|
||||
Removing empty block @25
|
||||
Removing empty block mul16u_compare::@7
|
||||
Removing empty block @26
|
||||
Removing empty block mul16s_compare::@7
|
||||
Removing empty block @27
|
||||
Removing empty block mul16s_compare::@7
|
||||
Removing empty block @28
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies print_char_cursor
|
||||
print_ln modifies print_line_cursor
|
||||
@ -2265,7 +2358,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
|
||||
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
|
||||
to:@18
|
||||
to:@19
|
||||
print_str: scope:[print_str] from mul16s_compare::@9 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16u_compare::@9 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6
|
||||
(byte*) print_char_cursor#130 ← phi( mul16s_compare::@9/(byte*) print_char_cursor#127 mul16s_error/(byte*) print_char_cursor#128 mul16s_error::@2/(byte*) print_char_cursor#47 mul16s_error::@4/(byte*) print_char_cursor#49 mul16s_error::@6/(byte*) print_char_cursor#51 mul16u_compare::@9/(byte*) print_char_cursor#124 mul16u_error/(byte*) print_char_cursor#125 mul16u_error::@2/(byte*) print_char_cursor#33 mul16u_error::@4/(byte*) print_char_cursor#35 mul16u_error::@6/(byte*) print_char_cursor#37 )
|
||||
(byte*) print_str::str#13 ← phi( mul16s_compare::@9/(byte*) print_str::str#6 mul16s_error/(byte*) print_str::str#7 mul16s_error::@2/(byte*) print_str::str#8 mul16s_error::@4/(byte*) print_str::str#9 mul16s_error::@6/(byte*) print_str::str#10 mul16u_compare::@9/(byte*) print_str::str#1 mul16u_error/(byte*) print_str::str#2 mul16u_error::@2/(byte*) print_str::str#3 mul16u_error::@4/(byte*) print_str::str#4 mul16u_error::@6/(byte*) print_str::str#5 )
|
||||
@ -2596,7 +2689,7 @@ mul16s::@return: scope:[mul16s] from mul16s::@2
|
||||
(signed dword) mul16s::return#1 ← (signed dword) mul16s::return#3
|
||||
return
|
||||
to:@return
|
||||
@18: scope:[] from @begin
|
||||
@19: scope:[] from @begin
|
||||
(byte*) print_screen#7 ← phi( @begin/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#138 ← phi( @begin/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#56 ← phi( @begin/(byte*) print_line_cursor#0 )
|
||||
@ -2604,7 +2697,7 @@ mul16s::@return: scope:[mul16s] from mul16s::@2
|
||||
(byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) }
|
||||
(byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) }
|
||||
(byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) }
|
||||
to:@21
|
||||
to:@22
|
||||
mulf_init: scope:[mulf_init] from main::@1
|
||||
(word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -2702,17 +2795,17 @@ mulf_init::@8: scope:[mulf_init] from mulf_init::@4
|
||||
mulf_init::@return: scope:[mulf_init] from mulf_init::@8
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @18
|
||||
(byte*) print_screen#6 ← phi( @18/(byte*) print_screen#7 )
|
||||
(byte*) print_char_cursor#137 ← phi( @18/(byte*) print_char_cursor#138 )
|
||||
(byte*) print_line_cursor#55 ← phi( @18/(byte*) print_line_cursor#56 )
|
||||
@22: scope:[] from @19
|
||||
(byte*) print_screen#6 ← phi( @19/(byte*) print_screen#7 )
|
||||
(byte*) print_char_cursor#137 ← phi( @19/(byte*) print_char_cursor#138 )
|
||||
(byte*) print_line_cursor#55 ← phi( @19/(byte*) print_line_cursor#56 )
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281
|
||||
to:@28
|
||||
main: scope:[main] from @28
|
||||
(byte*) print_char_cursor#121 ← phi( @28/(byte*) print_char_cursor#129 )
|
||||
(byte*) print_line_cursor#40 ← phi( @28/(byte*) print_line_cursor#48 )
|
||||
(byte*) print_screen#4 ← phi( @28/(byte*) print_screen#5 )
|
||||
(byte*) BGCOL#1 ← phi( @28/(byte*) BGCOL#4 )
|
||||
to:@29
|
||||
main: scope:[main] from @29
|
||||
(byte*) print_char_cursor#121 ← phi( @29/(byte*) print_char_cursor#129 )
|
||||
(byte*) print_line_cursor#40 ← phi( @29/(byte*) print_line_cursor#48 )
|
||||
(byte*) print_screen#4 ← phi( @29/(byte*) print_screen#5 )
|
||||
(byte*) BGCOL#1 ← phi( @29/(byte*) BGCOL#4 )
|
||||
*((byte*) BGCOL#1) ← (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
call print_cls param-assignment
|
||||
to:main::@1
|
||||
@ -3363,26 +3456,26 @@ mul16s_error::@return: scope:[mul16s_error] from mul16s_error::@9
|
||||
(byte*) print_line_cursor#18 ← (byte*) print_line_cursor#37
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @21
|
||||
(byte*) print_screen#5 ← phi( @21/(byte*) print_screen#6 )
|
||||
(byte*) print_char_cursor#129 ← phi( @21/(byte*) print_char_cursor#137 )
|
||||
(byte*) print_line_cursor#48 ← phi( @21/(byte*) print_line_cursor#55 )
|
||||
(byte*) BGCOL#4 ← phi( @21/(byte*) BGCOL#0 )
|
||||
@29: scope:[] from @22
|
||||
(byte*) print_screen#5 ← phi( @22/(byte*) print_screen#6 )
|
||||
(byte*) print_char_cursor#129 ← phi( @22/(byte*) print_char_cursor#137 )
|
||||
(byte*) print_line_cursor#48 ← phi( @22/(byte*) print_line_cursor#55 )
|
||||
(byte*) BGCOL#4 ← phi( @22/(byte*) BGCOL#0 )
|
||||
call main param-assignment
|
||||
to:@29
|
||||
@29: scope:[] from @28
|
||||
(byte*) print_char_cursor#111 ← phi( @28/(byte*) print_char_cursor#27 )
|
||||
(byte*) print_line_cursor#38 ← phi( @28/(byte*) print_line_cursor#8 )
|
||||
to:@30
|
||||
@30: scope:[] from @29
|
||||
(byte*) print_char_cursor#111 ← phi( @29/(byte*) print_char_cursor#27 )
|
||||
(byte*) print_line_cursor#38 ← phi( @29/(byte*) print_line_cursor#8 )
|
||||
(byte*) print_line_cursor#19 ← (byte*) print_line_cursor#38
|
||||
(byte*) print_char_cursor#56 ← (byte*) print_char_cursor#111
|
||||
to:@end
|
||||
@end: scope:[] from @29
|
||||
@end: scope:[] from @30
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @18
|
||||
(label) @21
|
||||
(label) @28
|
||||
(label) @19
|
||||
(label) @22
|
||||
(label) @29
|
||||
(label) @30
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
@ -5179,10 +5272,10 @@ Culled Empty Block (label) print_sdword::@3
|
||||
Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) mul16u::@3
|
||||
Culled Empty Block (label) @18
|
||||
Culled Empty Block (label) @19
|
||||
Culled Empty Block (label) mulf_init::@6
|
||||
Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7
|
||||
Culled Empty Block (label) @21
|
||||
Culled Empty Block (label) @22
|
||||
Culled Empty Block (label) main::@4
|
||||
Culled Empty Block (label) muls16u::@3
|
||||
Culled Empty Block (label) muls16s::@6
|
||||
@ -5196,7 +5289,7 @@ Not culling empty block because it shares successor with its predecessor. (label
|
||||
Culled Empty Block (label) mul16s_compare::@12
|
||||
Culled Empty Block (label) mul16s_compare::@14
|
||||
Culled Empty Block (label) mul16s_error::@9
|
||||
Culled Empty Block (label) @29
|
||||
Culled Empty Block (label) @30
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7
|
||||
Not culling empty block because it shares successor with its predecessor. (label) mul16u_compare::@5
|
||||
@ -5481,7 +5574,7 @@ Constant inlined print_char::ch#1 = (byte) '-'
|
||||
Constant inlined print_char::ch#0 = (byte) '-'
|
||||
Constant inlined print_byte::$4 = (const string) print_byte::hextab#0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @28 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @29 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting mul16s_compare::@15(between mul16s_compare::@8 and mul16s_compare::@1)
|
||||
Added new block during phi lifting mul16s_compare::@16(between mul16s_compare::@4 and mul16s_compare::@2)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
@ -5503,9 +5596,9 @@ Added new block during phi lifting mulf_init::@10(between mulf_init::@1 and mulf
|
||||
Added new block during phi lifting mulf_init::@11(between mulf_init::@4 and mulf_init::@3)
|
||||
Added new block during phi lifting mulf_init::@12(between mulf_init::@3 and mulf_init::@4)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @28 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 mul16s_compare::@15 mul16s_compare::@16 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_sdword::@5 print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16s::@8 mul16s::@7 mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 muls16s muls16s::@2 muls16s::@13 muls16s::@3 muls16s::@return muls16s::@12 muls16s::@1 muls16s::@5 muls16s::@14 muls16s::@15 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_compare::@15 mul16u_compare::@16 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@7 muls16u::@1 muls16u::@return muls16u::@6 mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@11 mulf_init::@12 mulf_init::@9 mulf_init::@10 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @29 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 mul16s_compare::@15 mul16s_compare::@16 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_sdword::@5 print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16s::@8 mul16s::@7 mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 muls16s muls16s::@2 muls16s::@13 muls16s::@3 muls16s::@return muls16s::@12 muls16s::@1 muls16s::@5 muls16s::@14 muls16s::@15 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_compare::@15 mul16u_compare::@16 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@7 muls16u::@1 muls16u::@return muls16u::@6 mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@11 mulf_init::@12 mulf_init::@9 mulf_init::@10 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @28
|
||||
Adding NOP phi() at start of @29
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main::@1
|
||||
Adding NOP phi() at start of main::@2
|
||||
@ -5698,9 +5791,9 @@ Not culling empty block because it shares successor with its predecessor. (label
|
||||
Culled Empty Block (label) mulf_init::@9
|
||||
Culled Empty Block (label) mulf_init::@10
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @28 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@12 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @29 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@12 print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @28
|
||||
Adding NOP phi() at start of @29
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main::@1
|
||||
Adding NOP phi() at start of main::@2
|
||||
@ -5757,14 +5850,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@28
|
||||
@28: scope:[] from @begin
|
||||
to:@29
|
||||
@29: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @28
|
||||
@end: scope:[] from @29
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @28
|
||||
main: scope:[main] from @29
|
||||
[4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -6277,122 +6370,122 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@28 dominated by @28 @begin
|
||||
@end dominated by @end @28 @begin
|
||||
main dominated by @28 main @begin
|
||||
main::@1 dominated by main::@1 @28 main @begin
|
||||
main::@2 dominated by main::@1 main::@2 @28 main @begin
|
||||
main::@3 dominated by main::@1 main::@2 main::@3 @28 main @begin
|
||||
main::@return dominated by main::@1 main::@2 main::@3 main::@return @28 main @begin
|
||||
mul16s_compare dominated by main::@1 main::@2 main::@3 mul16s_compare @28 main @begin
|
||||
mul16s_compare::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare @28 main @begin mul16s_compare::@1
|
||||
mul16s_compare::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare @28 main @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16s_compare::@10 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @28 main @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16s_compare::@11 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @28 main @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16s_compare::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @28 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@5
|
||||
mul16s_compare::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2
|
||||
mul16s_compare::@6 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6
|
||||
mul16s_compare::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@return
|
||||
mul16s_compare::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
|
||||
mul16s_compare::@8 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @28 main @begin mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
|
||||
mul16s_compare::@9 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @28 main @begin mul16s_compare::@9 mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
|
||||
mul16s_compare::@13 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@13 mul16s_compare::@11 @28 main @begin mul16s_compare::@9 mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
|
||||
print_ln dominated by main::@1 main::@2 print_ln @28 main @begin
|
||||
print_ln::@1 dominated by main::@1 main::@2 print_ln print_ln::@1 @28 main @begin
|
||||
print_ln::@return dominated by print_ln::@return main::@1 main::@2 print_ln print_ln::@1 @28 main @begin
|
||||
print_str dominated by main::@1 main::@2 print_str @28 main @begin
|
||||
print_str::@1 dominated by main::@1 main::@2 print_str::@1 print_str @28 main @begin
|
||||
print_str::@return dominated by main::@1 main::@2 print_str::@return print_str::@1 print_str @28 main @begin
|
||||
print_str::@2 dominated by main::@1 main::@2 print_str::@1 print_str::@2 print_str @28 main @begin
|
||||
mul16s_error dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6
|
||||
mul16s_error::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
mul16s_error::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1 mul16s_error::@2
|
||||
mul16s_error::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@1 mul16s_error::@2
|
||||
mul16s_error::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2
|
||||
mul16s_error::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
mul16s_error::@6 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5 mul16s_error::@6
|
||||
mul16s_error::@7 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@5 mul16s_error::@6
|
||||
mul16s_error::@8 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@8 mul16s_error::@5 mul16s_error::@6
|
||||
mul16s_error::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@return mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@8 mul16s_error::@5 mul16s_error::@6
|
||||
print_sdword dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_sdword::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_sdword::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@2 print_sdword::@4 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_sdword::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@1 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_sdword::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @28 main print_sdword::@return @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@1 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_dword dominated by main::@1 main::@2 @28 main @begin print_dword
|
||||
print_dword::@1 dominated by main::@1 main::@2 @28 main print_dword::@1 @begin print_dword
|
||||
print_dword::@return dominated by main::@1 main::@2 @28 main print_dword::@1 @begin print_dword::@return print_dword
|
||||
print_word dominated by print_word main::@1 main::@2 @28 main @begin
|
||||
print_word::@1 dominated by print_word main::@1 main::@2 print_word::@1 @28 main @begin
|
||||
print_word::@return dominated by print_word main::@1 main::@2 print_word::@return print_word::@1 @28 main @begin
|
||||
print_byte dominated by print_word main::@1 main::@2 print_byte @28 main @begin
|
||||
print_byte::@1 dominated by print_word main::@1 main::@2 print_byte::@1 print_byte @28 main @begin
|
||||
print_byte::@return dominated by print_word main::@1 main::@2 print_byte::@1 print_byte @28 main @begin print_byte::@return
|
||||
print_char dominated by main::@1 main::@2 @28 main print_char @begin
|
||||
print_char::@return dominated by main::@1 main::@2 @28 main print_char print_char::@return @begin
|
||||
print_sword dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
print_sword::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword print_sword::@2 @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
print_sword::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword print_sword::@2 @28 print_sword::@4 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
print_sword::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword print_sword::@1 @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
print_sword::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword print_sword::@1 @28 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sword::@return mul16s_error::@1
|
||||
mul16s dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @28 main @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16s::@6 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @28 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6
|
||||
mul16s::@3 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @28 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@3
|
||||
mul16s::@1 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @28 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1
|
||||
mul16s::@4 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @28 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@4
|
||||
mul16s::@2 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @28 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@2
|
||||
mul16s::@return dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s::@return @28 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@2
|
||||
mul16u dominated by mul16u main::@1 main::@2 @28 main @begin
|
||||
mul16u::@1 dominated by mul16u main::@1 main::@2 @28 main mul16u::@1 @begin
|
||||
mul16u::@return dominated by mul16u main::@1 main::@2 mul16u::@return @28 main mul16u::@1 @begin
|
||||
mul16u::@2 dominated by mul16u main::@1 main::@2 @28 main mul16u::@1 mul16u::@2 @begin
|
||||
mul16u::@7 dominated by mul16u main::@1 main::@2 @28 main mul16u::@1 mul16u::@2 @begin mul16u::@7
|
||||
mul16u::@4 dominated by mul16u main::@1 main::@2 @28 main mul16u::@1 mul16u::@2 @begin mul16u::@4
|
||||
muls16s dominated by main::@1 main::@2 main::@3 mul16s_compare @28 main muls16s @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
muls16s::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare @28 main muls16s muls16s::@2 @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
muls16s::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare @28 main muls16s muls16s::@3 @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
muls16s::@return dominated by main::@1 main::@2 main::@3 mul16s_compare @28 main muls16s muls16s::@3 @begin mul16s_compare::@1 mul16s_compare::@2 muls16s::@return
|
||||
muls16s::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare @28 main muls16s muls16s::@1 @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
muls16s::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare @28 muls16s::@5 main muls16s muls16s::@1 @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16u_compare dominated by main::@1 main::@2 mul16u_compare @28 main @begin
|
||||
mul16u_compare::@1 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@1
|
||||
mul16u_compare::@2 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@10 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@10 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@11 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@5 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@5 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@3 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@6 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@return dominated by main::@1 main::@2 mul16u_compare::@return mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@4 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@8 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@9 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@9 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@13 dominated by main::@1 main::@2 mul16u_compare @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@13 mul16u_compare::@9 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@1 dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@2 dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@3 dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@4 dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@5 dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@6 dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@7 dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@8 dominated by main::@1 main::@2 mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@8 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@return dominated by main::@1 main::@2 mul16u_error::@return mul16u_compare mul16u_error @28 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@8 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
muls16u dominated by main::@1 main::@2 mul16u_compare @28 main @begin muls16u mul16u_compare::@2 mul16u_compare::@1
|
||||
muls16u::@2 dominated by main::@1 main::@2 mul16u_compare @28 main @begin muls16u::@2 muls16u mul16u_compare::@2 mul16u_compare::@1
|
||||
muls16u::@1 dominated by main::@1 main::@2 mul16u_compare @28 main @begin muls16u::@1 muls16u mul16u_compare::@2 mul16u_compare::@1
|
||||
muls16u::@return dominated by main::@1 main::@2 mul16u_compare @28 main @begin muls16u::@1 muls16u mul16u_compare::@2 mul16u_compare::@1 muls16u::@return
|
||||
mulf_init dominated by main::@1 @28 main @begin mulf_init
|
||||
mulf_init::@1 dominated by main::@1 @28 main @begin mulf_init mulf_init::@1
|
||||
mulf_init::@5 dominated by main::@1 @28 main @begin mulf_init mulf_init::@1 mulf_init::@5
|
||||
mulf_init::@2 dominated by main::@1 @28 main @begin mulf_init mulf_init::@2 mulf_init::@1
|
||||
mulf_init::@3 dominated by main::@1 @28 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
|
||||
mulf_init::@4 dominated by main::@1 @28 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3
|
||||
mulf_init::@8 dominated by main::@1 @28 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
|
||||
mulf_init::@return dominated by main::@1 mulf_init::@return @28 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
|
||||
mulf_init::@12 dominated by mulf_init::@12 main::@1 @28 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
|
||||
print_cls dominated by print_cls @28 main @begin
|
||||
print_cls::@1 dominated by print_cls @28 main @begin print_cls::@1
|
||||
print_cls::@return dominated by print_cls @28 main @begin print_cls::@return print_cls::@1
|
||||
@29 dominated by @29 @begin
|
||||
@end dominated by @end @29 @begin
|
||||
main dominated by @29 main @begin
|
||||
main::@1 dominated by main::@1 @29 main @begin
|
||||
main::@2 dominated by main::@1 main::@2 @29 main @begin
|
||||
main::@3 dominated by main::@1 main::@2 main::@3 @29 main @begin
|
||||
main::@return dominated by main::@1 main::@2 main::@3 main::@return @29 main @begin
|
||||
mul16s_compare dominated by main::@1 main::@2 main::@3 mul16s_compare @29 main @begin
|
||||
mul16s_compare::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare @29 main @begin mul16s_compare::@1
|
||||
mul16s_compare::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare @29 main @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16s_compare::@10 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @29 main @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16s_compare::@11 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @29 main @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16s_compare::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @29 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@5
|
||||
mul16s_compare::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2
|
||||
mul16s_compare::@6 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6
|
||||
mul16s_compare::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@return
|
||||
mul16s_compare::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
|
||||
mul16s_compare::@8 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @29 main @begin mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
|
||||
mul16s_compare::@9 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @29 main @begin mul16s_compare::@9 mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
|
||||
mul16s_compare::@13 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@13 mul16s_compare::@11 @29 main @begin mul16s_compare::@9 mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
|
||||
print_ln dominated by main::@1 main::@2 print_ln @29 main @begin
|
||||
print_ln::@1 dominated by main::@1 main::@2 print_ln print_ln::@1 @29 main @begin
|
||||
print_ln::@return dominated by print_ln::@return main::@1 main::@2 print_ln print_ln::@1 @29 main @begin
|
||||
print_str dominated by main::@1 main::@2 print_str @29 main @begin
|
||||
print_str::@1 dominated by main::@1 main::@2 print_str::@1 print_str @29 main @begin
|
||||
print_str::@return dominated by main::@1 main::@2 print_str::@return print_str::@1 print_str @29 main @begin
|
||||
print_str::@2 dominated by main::@1 main::@2 print_str::@1 print_str::@2 print_str @29 main @begin
|
||||
mul16s_error dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6
|
||||
mul16s_error::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
mul16s_error::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1 mul16s_error::@2
|
||||
mul16s_error::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@1 mul16s_error::@2
|
||||
mul16s_error::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2
|
||||
mul16s_error::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
mul16s_error::@6 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5 mul16s_error::@6
|
||||
mul16s_error::@7 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@5 mul16s_error::@6
|
||||
mul16s_error::@8 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@8 mul16s_error::@5 mul16s_error::@6
|
||||
mul16s_error::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@return mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@8 mul16s_error::@5 mul16s_error::@6
|
||||
print_sdword dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_sdword::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_sdword::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@2 print_sdword::@4 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_sdword::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@1 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_sdword::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @29 main print_sdword::@return @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@1 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
|
||||
print_dword dominated by main::@1 main::@2 @29 main @begin print_dword
|
||||
print_dword::@1 dominated by main::@1 main::@2 @29 main print_dword::@1 @begin print_dword
|
||||
print_dword::@return dominated by main::@1 main::@2 @29 main print_dword::@1 @begin print_dword::@return print_dword
|
||||
print_word dominated by print_word main::@1 main::@2 @29 main @begin
|
||||
print_word::@1 dominated by print_word main::@1 main::@2 print_word::@1 @29 main @begin
|
||||
print_word::@return dominated by print_word main::@1 main::@2 print_word::@return print_word::@1 @29 main @begin
|
||||
print_byte dominated by print_word main::@1 main::@2 print_byte @29 main @begin
|
||||
print_byte::@1 dominated by print_word main::@1 main::@2 print_byte::@1 print_byte @29 main @begin
|
||||
print_byte::@return dominated by print_word main::@1 main::@2 print_byte::@1 print_byte @29 main @begin print_byte::@return
|
||||
print_char dominated by main::@1 main::@2 @29 main print_char @begin
|
||||
print_char::@return dominated by main::@1 main::@2 @29 main print_char print_char::@return @begin
|
||||
print_sword dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
print_sword::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword print_sword::@2 @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
print_sword::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword print_sword::@2 print_sword::@4 @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
print_sword::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword print_sword::@1 @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
|
||||
print_sword::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword print_sword::@1 @29 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sword::@return mul16s_error::@1
|
||||
mul16s dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @29 main @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16s::@6 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @29 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6
|
||||
mul16s::@3 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @29 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@3
|
||||
mul16s::@1 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @29 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1
|
||||
mul16s::@4 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @29 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@4
|
||||
mul16s::@2 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @29 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@2
|
||||
mul16s::@return dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s::@return @29 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@2
|
||||
mul16u dominated by mul16u main::@1 main::@2 @29 main @begin
|
||||
mul16u::@1 dominated by mul16u main::@1 main::@2 @29 main mul16u::@1 @begin
|
||||
mul16u::@return dominated by mul16u main::@1 main::@2 mul16u::@return @29 main mul16u::@1 @begin
|
||||
mul16u::@2 dominated by mul16u main::@1 main::@2 @29 main mul16u::@1 mul16u::@2 @begin
|
||||
mul16u::@7 dominated by mul16u main::@1 main::@2 @29 main mul16u::@1 mul16u::@2 @begin mul16u::@7
|
||||
mul16u::@4 dominated by mul16u main::@1 main::@2 @29 main mul16u::@1 mul16u::@2 @begin mul16u::@4
|
||||
muls16s dominated by main::@1 main::@2 main::@3 mul16s_compare @29 main muls16s @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
muls16s::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare @29 main muls16s muls16s::@2 @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
muls16s::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare @29 main muls16s muls16s::@3 @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
muls16s::@return dominated by main::@1 main::@2 main::@3 mul16s_compare @29 main muls16s muls16s::@3 @begin mul16s_compare::@1 mul16s_compare::@2 muls16s::@return
|
||||
muls16s::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare @29 main muls16s muls16s::@1 @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
muls16s::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare @29 muls16s::@5 main muls16s muls16s::@1 @begin mul16s_compare::@1 mul16s_compare::@2
|
||||
mul16u_compare dominated by main::@1 main::@2 mul16u_compare @29 main @begin
|
||||
mul16u_compare::@1 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@1
|
||||
mul16u_compare::@2 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@10 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@10 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@11 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@5 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@5 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@3 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@6 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@return dominated by main::@1 main::@2 mul16u_compare::@return mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@4 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@8 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@9 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@9 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_compare::@13 dominated by main::@1 main::@2 mul16u_compare @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@13 mul16u_compare::@9 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@1 dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@2 dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@3 dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@4 dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@5 dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@6 dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@7 dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@8 dominated by main::@1 main::@2 mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@8 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
mul16u_error::@return dominated by main::@1 main::@2 mul16u_error::@return mul16u_compare mul16u_error @29 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@8 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
|
||||
muls16u dominated by main::@1 main::@2 mul16u_compare @29 main @begin muls16u mul16u_compare::@2 mul16u_compare::@1
|
||||
muls16u::@2 dominated by main::@1 main::@2 mul16u_compare @29 main @begin muls16u::@2 muls16u mul16u_compare::@2 mul16u_compare::@1
|
||||
muls16u::@1 dominated by main::@1 main::@2 mul16u_compare @29 main @begin muls16u::@1 muls16u mul16u_compare::@2 mul16u_compare::@1
|
||||
muls16u::@return dominated by main::@1 main::@2 mul16u_compare @29 main @begin muls16u::@1 muls16u mul16u_compare::@2 mul16u_compare::@1 muls16u::@return
|
||||
mulf_init dominated by main::@1 @29 main @begin mulf_init
|
||||
mulf_init::@1 dominated by main::@1 @29 main @begin mulf_init mulf_init::@1
|
||||
mulf_init::@5 dominated by main::@1 @29 main @begin mulf_init mulf_init::@1 mulf_init::@5
|
||||
mulf_init::@2 dominated by main::@1 @29 main @begin mulf_init mulf_init::@2 mulf_init::@1
|
||||
mulf_init::@3 dominated by main::@1 @29 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
|
||||
mulf_init::@4 dominated by main::@1 @29 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3
|
||||
mulf_init::@8 dominated by main::@1 @29 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
|
||||
mulf_init::@return dominated by main::@1 mulf_init::@return @29 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
|
||||
mulf_init::@12 dominated by mulf_init::@12 main::@1 @29 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
|
||||
print_cls dominated by print_cls @29 main @begin
|
||||
print_cls::@1 dominated by print_cls @29 main @begin print_cls::@1
|
||||
print_cls::@return dominated by print_cls @29 main @begin print_cls::@return print_cls::@1
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: mul16s_compare::@2 tails: mul16s_compare::@4 blocks: null
|
||||
@ -6963,15 +7056,15 @@ INITIAL ASM
|
||||
.label print_line_cursor = 9
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
|
||||
b28_from_bbegin:
|
||||
jmp b28
|
||||
//SEG4 @28
|
||||
b28:
|
||||
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
|
||||
b29_from_bbegin:
|
||||
jmp b29
|
||||
//SEG4 @29
|
||||
b29:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
jsr main
|
||||
//SEG6 [3] phi from @28 to @end [phi:@28->@end]
|
||||
bend_from_b28:
|
||||
//SEG6 [3] phi from @29 to @end [phi:@29->@end]
|
||||
bend_from_b29:
|
||||
jmp bend
|
||||
//SEG7 @end
|
||||
bend:
|
||||
@ -9290,15 +9383,15 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_line_cursor = 6
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
|
||||
b28_from_bbegin:
|
||||
jmp b28
|
||||
//SEG4 @28
|
||||
b28:
|
||||
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
|
||||
b29_from_bbegin:
|
||||
jmp b29
|
||||
//SEG4 @29
|
||||
b29:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
jsr main
|
||||
//SEG6 [3] phi from @28 to @end [phi:@28->@end]
|
||||
bend_from_b28:
|
||||
//SEG6 [3] phi from @29 to @end [phi:@29->@end]
|
||||
bend_from_b29:
|
||||
jmp bend
|
||||
//SEG7 @end
|
||||
bend:
|
||||
@ -10994,7 +11087,7 @@ print_cls: {
|
||||
mulf_sqr2_hi: .fill $200, 0
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b28
|
||||
Removing instruction jmp b29
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b2
|
||||
@ -11136,8 +11229,8 @@ Replacing label b3_from_b4 with b3
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b28_from_bbegin:
|
||||
Removing instruction bend_from_b28:
|
||||
Removing instruction b29_from_bbegin:
|
||||
Removing instruction bend_from_b29:
|
||||
Removing instruction b1_from_main:
|
||||
Removing instruction mulf_init_from_b1:
|
||||
Removing instruction b2_from_b1:
|
||||
@ -11210,7 +11303,7 @@ Removing instruction b12_from_b3:
|
||||
Removing instruction b4_from_b12:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b28:
|
||||
Removing instruction b29:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1:
|
||||
@ -11336,7 +11429,7 @@ Removing unreachable instruction jmp b4
|
||||
Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @28
|
||||
(label) @29
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
@ -11735,11 +11828,11 @@ Score: 431398
|
||||
.label print_char_cursor = $e
|
||||
.label print_line_cursor = 6
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
|
||||
//SEG4 @28
|
||||
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
|
||||
//SEG4 @29
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
jsr main
|
||||
//SEG6 [3] phi from @28 to @end [phi:@28->@end]
|
||||
//SEG6 [3] phi from @29 to @end [phi:@29->@end]
|
||||
//SEG7 @end
|
||||
//SEG8 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @28
|
||||
(label) @29
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@30
|
||||
@30: scope:[] from @begin
|
||||
to:@31
|
||||
@31: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @30
|
||||
@end: scope:[] from @31
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @30
|
||||
main: scope:[main] from @31
|
||||
[4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
(label) @30
|
||||
(label) @31
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
|
Loading…
x
Reference in New Issue
Block a user