mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-20 00:29:10 +00:00
Implemented initial logo scroller. Fixed long branch detection when inlining kickasm. Added needed fragments.
This commit is contained in:
parent
5e9b15477a
commit
5abd555206
@ -25,6 +25,14 @@ public class AsmInlineKickAsm implements AsmLine {
|
||||
this.kickAsmCode = kickAsmCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the number of source lines in the inline assembler code (for line indexing)
|
||||
* @return The number of source lines
|
||||
*/
|
||||
public long getLineCount() {
|
||||
return kickAsmCode.chars().filter(x -> x == '\n').count() + 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLineBytes() {
|
||||
return bytes;
|
||||
|
@ -0,0 +1 @@
|
||||
lda {z1}
|
@ -0,0 +1,3 @@
|
||||
eor #$ff
|
||||
clc
|
||||
adc #{c1}+1
|
@ -0,0 +1,3 @@
|
||||
eor #$ff
|
||||
clc
|
||||
adc #{c1}+1
|
@ -0,0 +1,2 @@
|
||||
clc
|
||||
adc #{c1}
|
@ -0,0 +1,13 @@
|
||||
lda {z1}+1
|
||||
cmp #$80
|
||||
ror {z1}+1
|
||||
ror {z1}
|
||||
lda {z1}+1
|
||||
cmp #$80
|
||||
ror {z1}+1
|
||||
ror {z1}
|
||||
lda {z1}+1
|
||||
cmp #$80
|
||||
ror {z1}+1
|
||||
ror {z1}
|
||||
|
@ -0,0 +1,16 @@
|
||||
lda {z2}+1
|
||||
cmp #$80
|
||||
ror
|
||||
sta {z1}+1
|
||||
lda {z2}
|
||||
ror
|
||||
sta {z1}
|
||||
lda {z1}+1
|
||||
cmp #$80
|
||||
ror {z1}+1
|
||||
ror {z1}
|
||||
lda {z1}+1
|
||||
cmp #$80
|
||||
ror {z1}+1
|
||||
ror {z1}
|
||||
|
@ -44,6 +44,7 @@ public class Pass5FixLongBranches extends Pass5AsmOptimization {
|
||||
|
||||
/**
|
||||
* Detect if any branch distance is to long, and fix it by rewriting the branch if it is.
|
||||
*
|
||||
* @return true if any branch was rewritten
|
||||
*/
|
||||
private boolean step() {
|
||||
@ -62,7 +63,15 @@ public class Pass5FixLongBranches extends Pass5AsmOptimization {
|
||||
try {
|
||||
//getLog().append("ASM");
|
||||
//getLog().append(getProgram().getAsm().toString(false, true));
|
||||
|
||||
writeOutputFile(fileName, ".asm", getProgram().getAsm().toString(false));
|
||||
|
||||
// Copy Resource Files
|
||||
for(Path asmResourceFile : getProgram().getAsmResourceFiles()) {
|
||||
File binFile = getTmpFile(asmResourceFile.getFileName().toString());
|
||||
Files.copy(asmResourceFile, binFile.toPath());
|
||||
}
|
||||
|
||||
} catch(IOException e) {
|
||||
throw new CompileError("Error writing ASM temp file.", e);
|
||||
}
|
||||
@ -96,7 +105,7 @@ public class Pass5FixLongBranches extends Pass5AsmOptimization {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
getLog().append("Warning! Failed to fix long branch at "+contextLine);
|
||||
getLog().append("Warning! Failed to fix long branch at " + contextLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -105,6 +114,7 @@ public class Pass5FixLongBranches extends Pass5AsmOptimization {
|
||||
|
||||
/**
|
||||
* Fix a long branch detected at a specific ASM index
|
||||
*
|
||||
* @param idx The index of the ASM line with the long branch
|
||||
* @return True if the branch was fixed
|
||||
*/
|
||||
@ -121,14 +131,14 @@ public class Pass5FixLongBranches extends Pass5AsmOptimization {
|
||||
AsmInstructionType inverseType = invertBranch(asmInstructionType);
|
||||
if(inverseType != null) {
|
||||
//getLog().append("Inversed branch instruction "+asmInstructionType.getMnemnonic()+" -> "+inverseType.getMnemnonic());
|
||||
getLog().append("Fixing long branch ["+idx+"] "+asmLine.toString() + " to "+inverseType.getMnemnonic());
|
||||
getLog().append("Fixing long branch [" + idx + "] " + asmLine.toString() + " to " + inverseType.getMnemnonic());
|
||||
String branchDest = asmInstruction.getParameter();
|
||||
asmInstruction.setType(inverseType);
|
||||
asmInstruction.setParameter("!"+branchDest+"+");
|
||||
asmInstruction.setParameter("!" + branchDest + "+");
|
||||
AsmInstructionType jmpType = AsmInstructionSet.getInstructionType("jmp", AsmAddressingMode.ABS, false);
|
||||
AsmInstruction jmpInstruction = new AsmInstruction(jmpType, branchDest);
|
||||
asmSegment.addLineAfter(asmInstruction, jmpInstruction);
|
||||
asmSegment.addLineAfter(jmpInstruction, new AsmLabel("!"+branchDest));
|
||||
asmSegment.addLineAfter(jmpInstruction, new AsmLabel("!" + branchDest));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -175,4 +185,8 @@ public class Pass5FixLongBranches extends Pass5AsmOptimization {
|
||||
return new File(tmpDir.toFile(), fileName + extension);
|
||||
}
|
||||
|
||||
public File getTmpFile(String fileName) {
|
||||
return new File(tmpDir.toFile(), fileName );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package dk.camelot64.kickc.passes;
|
||||
|
||||
import dk.camelot64.kickc.asm.AsmComment;
|
||||
import dk.camelot64.kickc.asm.AsmInlineKickAsm;
|
||||
import dk.camelot64.kickc.asm.AsmLine;
|
||||
import dk.camelot64.kickc.asm.AsmSegment;
|
||||
import dk.camelot64.kickc.model.Program;
|
||||
@ -20,6 +21,10 @@ public class Pass5ReindexAsmLines extends Pass5AsmOptimization {
|
||||
for(AsmLine asmLine : asmSegment.getLines()) {
|
||||
if((asmLine instanceof AsmComment)) {
|
||||
asmLine.setIndex(-1);
|
||||
} else if(asmLine instanceof AsmInlineKickAsm) {
|
||||
asmLine.setIndex(nextIndex);
|
||||
AsmInlineKickAsm inlineKickAsm = (AsmInlineKickAsm) asmLine;
|
||||
nextIndex += inlineKickAsm.getLineCount();
|
||||
} else {
|
||||
asmLine.setIndex(nextIndex++);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ import org.junit.Test;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URISyntaxException;
|
||||
import java.nio.file.FileAlreadyExistsException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
@ -893,8 +894,12 @@ public class TestPrograms {
|
||||
writeBinFile(fileName, ".asm", program.getAsm().toString(false));
|
||||
for(Path asmResourceFile : program.getAsmResourceFiles()) {
|
||||
File binFile = getBinFile(asmResourceFile.getFileName().toString());
|
||||
Files.copy(asmResourceFile, binFile.toPath());
|
||||
};
|
||||
try {
|
||||
Files.copy(asmResourceFile, binFile.toPath());
|
||||
} catch(FileAlreadyExistsException e) {
|
||||
// Ignore this
|
||||
}
|
||||
}
|
||||
|
||||
File asmFile = getBinFile(fileName, ".asm");
|
||||
File asmPrgFile = getBinFile(fileName, ".prg");
|
||||
|
@ -9,11 +9,12 @@ const word XSIN_SIZE = 512;
|
||||
signed word[512] align($100) xsin;
|
||||
|
||||
void main() {
|
||||
asm { sei }
|
||||
*BORDERCOL = WHITE;
|
||||
*BGCOL = *BGCOL2 = DARK_GREY;
|
||||
*BGCOL3 = BLACK;
|
||||
*D018 = toD018(SCREEN, LOGO);
|
||||
*D016 = VIC_MCM | VIC_CSEL;
|
||||
*D016 = VIC_MCM;
|
||||
fill(SCREEN, 1000, BLACK);
|
||||
fill(COLS, 1000, WHITE|8);
|
||||
for(byte ch: 0..239) {
|
||||
@ -23,37 +24,76 @@ void main() {
|
||||
loop();
|
||||
}
|
||||
|
||||
// Generate signed word sinus table - with values in the range min-max.
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
void sin16s_gen2(signed word* sintab, word wavelength, signed word min, signed word max) {
|
||||
signed word ampl = max-min;
|
||||
signed word offs = min + ampl>>1; // ampl is always positive so shifting left does not alter the sign
|
||||
// u[4.28] step = PI*2/wavelength
|
||||
dword step = div32u16u(PI2_u4f28, wavelength); // u[4.28]
|
||||
// Iterate over the table
|
||||
dword x = 0; // u[4.28]
|
||||
for( word i=0; i<wavelength; i++) {
|
||||
signed dword ssin = mul16s(sin16s(x), ampl); // The signed sin() only has values [-1/2 ; 1/2] there ampl*sin has the right amplitude
|
||||
*sintab = offs + (signed word)>ssin;
|
||||
sintab = sintab + 2;
|
||||
x = x + step;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
word xsin_idx = 0;
|
||||
|
||||
void loop() {
|
||||
while(true) {
|
||||
while(*RASTER!=$ff) {}
|
||||
signed word xpos = *(xsin+xsin_idx>>1);
|
||||
SCREEN[0] = <xpos;
|
||||
SCREEN[1] = >xpos;
|
||||
// Wait for the raster to reach the bottom of the screen
|
||||
while(*RASTER!=$ff) {
|
||||
}
|
||||
(*BORDERCOL)++;
|
||||
signed word xpos = *(xsin+xsin_idx);
|
||||
render_logo(xpos);
|
||||
xsin_idx += 2;
|
||||
if(xsin_idx==XSIN_SIZE) {
|
||||
if(xsin_idx==XSIN_SIZE*2) {
|
||||
xsin_idx = 0;
|
||||
}
|
||||
(*BORDERCOL)--;
|
||||
}
|
||||
}
|
||||
|
||||
void render_logo(signed word xpos) {
|
||||
byte logo_idx;
|
||||
byte screen_idx;
|
||||
*D016 = VIC_MCM|((byte)xpos&7);
|
||||
signed byte x_char = (signed byte)(xpos>>3);
|
||||
if(xpos<0) {
|
||||
// Render right side of the logo and some spaces
|
||||
logo_idx = (byte)(-x_char);
|
||||
screen_idx = 0;
|
||||
while(logo_idx!=40) {
|
||||
SCREEN[screen_idx] = logo_idx;
|
||||
(SCREEN+40*1)[screen_idx] = logo_idx+40*1;
|
||||
(SCREEN+40*2)[screen_idx] = logo_idx+40*2;
|
||||
(SCREEN+40*3)[screen_idx] = logo_idx+40*3;
|
||||
(SCREEN+40*4)[screen_idx] = logo_idx+40*4;
|
||||
(SCREEN+40*5)[screen_idx] = logo_idx+40*5;
|
||||
screen_idx++;
|
||||
logo_idx++;
|
||||
}
|
||||
while(screen_idx!=40) {
|
||||
SCREEN[screen_idx] = $00;
|
||||
(SCREEN+40*1)[screen_idx] = $00;
|
||||
(SCREEN+40*2)[screen_idx] = $00;
|
||||
(SCREEN+40*3)[screen_idx] = $00;
|
||||
(SCREEN+40*4)[screen_idx] = $00;
|
||||
(SCREEN+40*5)[screen_idx] = $00;
|
||||
screen_idx++;
|
||||
}
|
||||
} else {
|
||||
// Render some spaces and the left of the logo
|
||||
byte logo_start = (byte)x_char;
|
||||
screen_idx = 0;
|
||||
while(screen_idx!=logo_start) {
|
||||
SCREEN[screen_idx] = $00;
|
||||
(SCREEN+40*1)[screen_idx] = $00;
|
||||
(SCREEN+40*2)[screen_idx] = $00;
|
||||
(SCREEN+40*3)[screen_idx] = $00;
|
||||
(SCREEN+40*4)[screen_idx] = $00;
|
||||
(SCREEN+40*5)[screen_idx] = $00;
|
||||
screen_idx++;
|
||||
}
|
||||
logo_idx = 0;
|
||||
while(screen_idx!=40) {
|
||||
SCREEN[screen_idx] = logo_idx;
|
||||
(SCREEN+40*1)[screen_idx] = logo_idx+40*1;
|
||||
(SCREEN+40*2)[screen_idx] = logo_idx+40*2;
|
||||
(SCREEN+40*3)[screen_idx] = logo_idx+40*3;
|
||||
(SCREEN+40*4)[screen_idx] = logo_idx+40*4;
|
||||
(SCREEN+40*5)[screen_idx] = logo_idx+40*5;
|
||||
screen_idx++;
|
||||
logo_idx++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,23 @@ void sin16s_gen(signed word* sintab, word wavelength) {
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed word sinus table - with values in the range min-max.
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
void sin16s_gen2(signed word* sintab, word wavelength, signed word min, signed word max) {
|
||||
signed word ampl = max-min;
|
||||
signed word offs = min + ampl>>1; // ampl is always positive so shifting left does not alter the sign
|
||||
// u[4.28] step = PI*2/wavelength
|
||||
dword step = div32u16u(PI2_u4f28, wavelength); // u[4.28]
|
||||
// Iterate over the table
|
||||
dword x = 0; // u[4.28]
|
||||
for( word i=0; i<wavelength; i++) {
|
||||
*sintab = offs + (signed word)>mul16s(sin16s(x), ampl); // The signed sin() has values [-7fff;7fff] = [-1/2 ; 1/2], so ampl*sin has the right amplitude
|
||||
sintab = sintab + 2;
|
||||
x = x + step;
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed byte sinus table - on the full -$7f - $7f range
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
|
723
src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.asm
Normal file
723
src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.asm
Normal file
@ -0,0 +1,723 @@
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
.label RASTER = $d012
|
||||
.label BORDERCOL = $d020
|
||||
.label BGCOL = $d021
|
||||
.label BGCOL2 = $d022
|
||||
.label BGCOL3 = $d023
|
||||
.label D016 = $d016
|
||||
.const VIC_MCM = $10
|
||||
.label D018 = $d018
|
||||
.label COLS = $d800
|
||||
.const BLACK = 0
|
||||
.const WHITE = 1
|
||||
.const DARK_GREY = $b
|
||||
.const PI2_u4f28 = $6487ed51
|
||||
.const PI_u4f28 = $3243f6a9
|
||||
.const PI_HALF_u4f28 = $1921fb54
|
||||
.label SCREEN = $400
|
||||
.label LOGO = $2000
|
||||
.const XSIN_SIZE = $200
|
||||
.label rem16u = 2
|
||||
.label xsin_idx = 2
|
||||
.label pc_restore = *
|
||||
.pc = $2000
|
||||
logo:
|
||||
.var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
|
||||
.for (var y=0; y<6 ; y++)
|
||||
.for (var x=0;x<40; x++)
|
||||
.for(var cp=0; cp<8; cp++)
|
||||
.byte logoPic.getMulticolorByte(x,cp+y*8)
|
||||
.pc = pc_restore
|
||||
|
||||
jsr main
|
||||
main: {
|
||||
.const toD0181_return = (>(SCREEN&$3fff)<<2)|(>LOGO)>>2&$f
|
||||
sei
|
||||
lda #WHITE
|
||||
sta BORDERCOL
|
||||
lda #DARK_GREY
|
||||
sta BGCOL2
|
||||
sta BGCOL
|
||||
lda #BLACK
|
||||
sta BGCOL3
|
||||
lda #toD0181_return
|
||||
sta D018
|
||||
lda #VIC_MCM
|
||||
sta D016
|
||||
ldx #BLACK
|
||||
lda #<SCREEN
|
||||
sta fill.addr
|
||||
lda #>SCREEN
|
||||
sta fill.addr+1
|
||||
jsr fill
|
||||
ldx #WHITE|8
|
||||
lda #<COLS
|
||||
sta fill.addr
|
||||
lda #>COLS
|
||||
sta fill.addr+1
|
||||
jsr fill
|
||||
ldx #0
|
||||
b1:
|
||||
txa
|
||||
sta SCREEN,x
|
||||
inx
|
||||
cpx #$f0
|
||||
bne b1
|
||||
jsr sin16s_gen2
|
||||
jsr loop
|
||||
rts
|
||||
}
|
||||
loop: {
|
||||
.label _1 = 8
|
||||
.label xpos = 8
|
||||
lda #<0
|
||||
sta xsin_idx
|
||||
sta xsin_idx+1
|
||||
b4:
|
||||
lda RASTER
|
||||
cmp #$ff
|
||||
bne b4
|
||||
inc BORDERCOL
|
||||
lda xsin_idx
|
||||
clc
|
||||
adc #<xsin
|
||||
sta _1
|
||||
lda xsin_idx+1
|
||||
adc #>xsin
|
||||
sta _1+1
|
||||
ldy #0
|
||||
lda (xpos),y
|
||||
tax
|
||||
iny
|
||||
lda (xpos),y
|
||||
stx xpos
|
||||
sta xpos+1
|
||||
jsr render_logo
|
||||
lda xsin_idx
|
||||
clc
|
||||
adc #2
|
||||
sta xsin_idx
|
||||
bcc !+
|
||||
inc xsin_idx+1
|
||||
!:
|
||||
lda xsin_idx+1
|
||||
cmp #>XSIN_SIZE*2
|
||||
bne b7
|
||||
lda xsin_idx
|
||||
cmp #<XSIN_SIZE*2
|
||||
bne b7
|
||||
lda #<0
|
||||
sta xsin_idx
|
||||
sta xsin_idx+1
|
||||
b7:
|
||||
dec BORDERCOL
|
||||
jmp b4
|
||||
}
|
||||
render_logo: {
|
||||
.label _3 = $e
|
||||
.label xpos = 8
|
||||
.label x_char = $16
|
||||
lda xpos
|
||||
and #7
|
||||
ora #VIC_MCM
|
||||
sta D016
|
||||
lda xpos+1
|
||||
cmp #$80
|
||||
ror
|
||||
sta _3+1
|
||||
lda xpos
|
||||
ror
|
||||
sta _3
|
||||
lda _3+1
|
||||
cmp #$80
|
||||
ror _3+1
|
||||
ror _3
|
||||
lda _3+1
|
||||
cmp #$80
|
||||
ror _3+1
|
||||
ror _3
|
||||
lda _3
|
||||
sta x_char
|
||||
lda xpos+1
|
||||
bmi b1
|
||||
ldy #0
|
||||
b2:
|
||||
cpy x_char
|
||||
bne b3
|
||||
ldx #0
|
||||
b5:
|
||||
cpy #$28
|
||||
bne b6
|
||||
breturn:
|
||||
rts
|
||||
b6:
|
||||
txa
|
||||
sta SCREEN,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*1
|
||||
sta SCREEN+$28*1,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*2
|
||||
sta SCREEN+$28*2,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*3
|
||||
sta SCREEN+$28*3,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*4
|
||||
sta SCREEN+$28*4,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*5
|
||||
sta SCREEN+$28*5,y
|
||||
iny
|
||||
inx
|
||||
jmp b5
|
||||
b3:
|
||||
lda #0
|
||||
sta SCREEN,y
|
||||
sta SCREEN+$28*1,y
|
||||
sta SCREEN+$28*2,y
|
||||
sta SCREEN+$28*3,y
|
||||
sta SCREEN+$28*4,y
|
||||
sta SCREEN+$28*5,y
|
||||
iny
|
||||
jmp b2
|
||||
b1:
|
||||
lda x_char
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
tax
|
||||
ldy #0
|
||||
b9:
|
||||
cpx #$28
|
||||
bne b10
|
||||
b12:
|
||||
cpy #$28
|
||||
bne b13
|
||||
jmp breturn
|
||||
b13:
|
||||
lda #0
|
||||
sta SCREEN,y
|
||||
sta SCREEN+$28*1,y
|
||||
sta SCREEN+$28*2,y
|
||||
sta SCREEN+$28*3,y
|
||||
sta SCREEN+$28*4,y
|
||||
sta SCREEN+$28*5,y
|
||||
iny
|
||||
jmp b12
|
||||
b10:
|
||||
txa
|
||||
sta SCREEN,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*1
|
||||
sta SCREEN+$28*1,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*2
|
||||
sta SCREEN+$28*2,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*3
|
||||
sta SCREEN+$28*3,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*4
|
||||
sta SCREEN+$28*4,y
|
||||
txa
|
||||
clc
|
||||
adc #$28*5
|
||||
sta SCREEN+$28*5,y
|
||||
iny
|
||||
inx
|
||||
jmp b9
|
||||
}
|
||||
sin16s_gen2: {
|
||||
.const min = -$140
|
||||
.const max = $140
|
||||
.label ampl = max-min
|
||||
.const offs = min+(ampl>>1)
|
||||
.label _5 = $a
|
||||
.label _6 = $e
|
||||
.label _8 = $e
|
||||
.label step = $1b
|
||||
.label sintab = 2
|
||||
.label x = 4
|
||||
.label i = 8
|
||||
jsr div32u16u
|
||||
lda #<0
|
||||
sta i
|
||||
sta i+1
|
||||
lda #<xsin
|
||||
sta sintab
|
||||
lda #>xsin
|
||||
sta sintab+1
|
||||
lda #0
|
||||
sta x
|
||||
sta x+1
|
||||
sta x+2
|
||||
sta x+3
|
||||
b1:
|
||||
lda x
|
||||
sta sin16s.x
|
||||
lda x+1
|
||||
sta sin16s.x+1
|
||||
lda x+2
|
||||
sta sin16s.x+2
|
||||
lda x+3
|
||||
sta sin16s.x+3
|
||||
jsr sin16s
|
||||
jsr mul16s
|
||||
lda _5+2
|
||||
sta _6
|
||||
lda _5+3
|
||||
sta _6+1
|
||||
clc
|
||||
lda _8
|
||||
adc #<offs
|
||||
sta _8
|
||||
lda _8+1
|
||||
adc #>offs
|
||||
sta _8+1
|
||||
ldy #0
|
||||
lda _8
|
||||
sta (sintab),y
|
||||
iny
|
||||
lda _8+1
|
||||
sta (sintab),y
|
||||
lda sintab
|
||||
clc
|
||||
adc #2
|
||||
sta sintab
|
||||
bcc !+
|
||||
inc sintab+1
|
||||
!:
|
||||
lda x
|
||||
clc
|
||||
adc step
|
||||
sta x
|
||||
lda x+1
|
||||
adc step+1
|
||||
sta x+1
|
||||
lda x+2
|
||||
adc step+2
|
||||
sta x+2
|
||||
lda x+3
|
||||
adc step+3
|
||||
sta x+3
|
||||
inc i
|
||||
bne !+
|
||||
inc i+1
|
||||
!:
|
||||
lda i+1
|
||||
cmp #>XSIN_SIZE
|
||||
bcc b1
|
||||
bne !+
|
||||
lda i
|
||||
cmp #<XSIN_SIZE
|
||||
bcc b1
|
||||
!:
|
||||
rts
|
||||
}
|
||||
mul16s: {
|
||||
.label _6 = $e
|
||||
.label _16 = $e
|
||||
.label m = $a
|
||||
.label return = $a
|
||||
.label a = $17
|
||||
lda a
|
||||
sta mul16u.a
|
||||
lda a+1
|
||||
sta mul16u.a+1
|
||||
lda #<sin16s_gen2.ampl
|
||||
sta mul16u.b
|
||||
lda #>sin16s_gen2.ampl
|
||||
sta mul16u.b+1
|
||||
jsr mul16u
|
||||
lda a+1
|
||||
bpl b2
|
||||
lda m+2
|
||||
sta _6
|
||||
lda m+3
|
||||
sta _6+1
|
||||
lda _16
|
||||
sec
|
||||
sbc #<sin16s_gen2.ampl
|
||||
sta _16
|
||||
lda _16+1
|
||||
sbc #>sin16s_gen2.ampl
|
||||
sta _16+1
|
||||
lda _16
|
||||
sta m+2
|
||||
lda _16+1
|
||||
sta m+3
|
||||
b2:
|
||||
rts
|
||||
}
|
||||
mul16u: {
|
||||
.label mb = $12
|
||||
.label a = $10
|
||||
.label res = $a
|
||||
.label return = $a
|
||||
.label b = $e
|
||||
lda b
|
||||
sta mb
|
||||
lda b+1
|
||||
sta mb+1
|
||||
lda #0
|
||||
sta mb+2
|
||||
sta mb+3
|
||||
sta res
|
||||
sta res+1
|
||||
sta res+2
|
||||
sta res+3
|
||||
b1:
|
||||
lda a
|
||||
bne b2
|
||||
lda a+1
|
||||
bne b2
|
||||
rts
|
||||
b2:
|
||||
lda a
|
||||
and #1
|
||||
cmp #0
|
||||
beq b4
|
||||
lda res
|
||||
clc
|
||||
adc mb
|
||||
sta res
|
||||
lda res+1
|
||||
adc mb+1
|
||||
sta res+1
|
||||
lda res+2
|
||||
adc mb+2
|
||||
sta res+2
|
||||
lda res+3
|
||||
adc mb+3
|
||||
sta res+3
|
||||
b4:
|
||||
clc
|
||||
ror a+1
|
||||
ror a
|
||||
asl mb
|
||||
rol mb+1
|
||||
rol mb+2
|
||||
rol mb+3
|
||||
jmp b1
|
||||
}
|
||||
sin16s: {
|
||||
.label _6 = $a
|
||||
.label x = $a
|
||||
.label return = $17
|
||||
.label x1 = $1f
|
||||
.label x2 = $19
|
||||
.label x3 = $19
|
||||
.label x3_6 = $e
|
||||
.label usinx = $17
|
||||
.label x4 = $19
|
||||
.label x5 = $e
|
||||
.label x5_128 = $e
|
||||
.label sinx = $17
|
||||
.label isUpper = $16
|
||||
lda x+3
|
||||
cmp #>PI_u4f28>>$10
|
||||
bcc b4
|
||||
bne !+
|
||||
lda x+2
|
||||
cmp #<PI_u4f28>>$10
|
||||
bcc b4
|
||||
bne !+
|
||||
lda x+1
|
||||
cmp #>PI_u4f28
|
||||
bcc b4
|
||||
bne !+
|
||||
lda x
|
||||
cmp #<PI_u4f28
|
||||
bcc b4
|
||||
!:
|
||||
lda x
|
||||
sec
|
||||
sbc #<PI_u4f28
|
||||
sta x
|
||||
lda x+1
|
||||
sbc #>PI_u4f28
|
||||
sta x+1
|
||||
lda x+2
|
||||
sbc #<PI_u4f28>>$10
|
||||
sta x+2
|
||||
lda x+3
|
||||
sbc #>PI_u4f28>>$10
|
||||
sta x+3
|
||||
lda #1
|
||||
sta isUpper
|
||||
jmp b1
|
||||
b4:
|
||||
lda #0
|
||||
sta isUpper
|
||||
b1:
|
||||
lda x+3
|
||||
cmp #>PI_HALF_u4f28>>$10
|
||||
bcc b2
|
||||
bne !+
|
||||
lda x+2
|
||||
cmp #<PI_HALF_u4f28>>$10
|
||||
bcc b2
|
||||
bne !+
|
||||
lda x+1
|
||||
cmp #>PI_HALF_u4f28
|
||||
bcc b2
|
||||
bne !+
|
||||
lda x
|
||||
cmp #<PI_HALF_u4f28
|
||||
bcc b2
|
||||
!:
|
||||
lda #<PI_u4f28
|
||||
sec
|
||||
sbc x
|
||||
sta x
|
||||
lda #>PI_u4f28
|
||||
sbc x+1
|
||||
sta x+1
|
||||
lda #<PI_u4f28>>$10
|
||||
sbc x+2
|
||||
sta x+2
|
||||
lda #>PI_u4f28>>$10
|
||||
sbc x+3
|
||||
sta x+3
|
||||
b2:
|
||||
ldy #3
|
||||
!:
|
||||
asl _6
|
||||
rol _6+1
|
||||
rol _6+2
|
||||
rol _6+3
|
||||
dey
|
||||
bne !-
|
||||
lda _6+2
|
||||
sta x1
|
||||
lda _6+3
|
||||
sta x1+1
|
||||
lda x1
|
||||
sta mulu16_sel.v1
|
||||
lda x1+1
|
||||
sta mulu16_sel.v1+1
|
||||
lda x1
|
||||
sta mulu16_sel.v2
|
||||
lda x1+1
|
||||
sta mulu16_sel.v2+1
|
||||
ldx #0
|
||||
jsr mulu16_sel
|
||||
lda mulu16_sel.return
|
||||
sta x2
|
||||
lda mulu16_sel.return+1
|
||||
sta x2+1
|
||||
lda x1
|
||||
sta mulu16_sel.v2
|
||||
lda x1+1
|
||||
sta mulu16_sel.v2+1
|
||||
ldx #1
|
||||
jsr mulu16_sel
|
||||
lda mulu16_sel.return
|
||||
sta mulu16_sel.return_1
|
||||
lda mulu16_sel.return+1
|
||||
sta mulu16_sel.return_1+1
|
||||
ldx #1
|
||||
lda #<$10000/6
|
||||
sta mulu16_sel.v2
|
||||
lda #>$10000/6
|
||||
sta mulu16_sel.v2+1
|
||||
jsr mulu16_sel
|
||||
lda x1
|
||||
sec
|
||||
sbc x3_6
|
||||
sta usinx
|
||||
lda x1+1
|
||||
sbc x3_6+1
|
||||
sta usinx+1
|
||||
lda x1
|
||||
sta mulu16_sel.v2
|
||||
lda x1+1
|
||||
sta mulu16_sel.v2+1
|
||||
ldx #0
|
||||
jsr mulu16_sel
|
||||
lda mulu16_sel.return
|
||||
sta mulu16_sel.return_10
|
||||
lda mulu16_sel.return+1
|
||||
sta mulu16_sel.return_10+1
|
||||
lda x1
|
||||
sta mulu16_sel.v2
|
||||
lda x1+1
|
||||
sta mulu16_sel.v2+1
|
||||
ldx #0
|
||||
jsr mulu16_sel
|
||||
ldy #4
|
||||
!:
|
||||
lsr x5_128+1
|
||||
ror x5_128
|
||||
dey
|
||||
bne !-
|
||||
lda usinx
|
||||
clc
|
||||
adc x5_128
|
||||
sta usinx
|
||||
lda usinx+1
|
||||
adc x5_128+1
|
||||
sta usinx+1
|
||||
lda isUpper
|
||||
beq b3
|
||||
sec
|
||||
lda sinx
|
||||
eor #$ff
|
||||
adc #0
|
||||
sta sinx
|
||||
lda sinx+1
|
||||
eor #$ff
|
||||
adc #0
|
||||
sta sinx+1
|
||||
b3:
|
||||
rts
|
||||
}
|
||||
mulu16_sel: {
|
||||
.label _0 = $a
|
||||
.label _1 = $a
|
||||
.label v1 = $19
|
||||
.label v2 = $e
|
||||
.label return = $e
|
||||
.label return_1 = $19
|
||||
.label return_10 = $19
|
||||
lda v1
|
||||
sta mul16u.a
|
||||
lda v1+1
|
||||
sta mul16u.a+1
|
||||
jsr mul16u
|
||||
cpx #0
|
||||
beq !e+
|
||||
!:
|
||||
asl _1
|
||||
rol _1+1
|
||||
rol _1+2
|
||||
rol _1+3
|
||||
dex
|
||||
bne !-
|
||||
!e:
|
||||
lda _1+2
|
||||
sta return
|
||||
lda _1+3
|
||||
sta return+1
|
||||
rts
|
||||
}
|
||||
div32u16u: {
|
||||
.label quotient_hi = $10
|
||||
.label quotient_lo = $e
|
||||
.label return = $1b
|
||||
lda #<PI2_u4f28>>$10
|
||||
sta divr16u.dividend
|
||||
lda #>PI2_u4f28>>$10
|
||||
sta divr16u.dividend+1
|
||||
lda #<0
|
||||
sta divr16u.rem
|
||||
sta divr16u.rem+1
|
||||
jsr divr16u
|
||||
lda divr16u.return
|
||||
sta quotient_hi
|
||||
lda divr16u.return+1
|
||||
sta quotient_hi+1
|
||||
lda #<PI2_u4f28&$ffff
|
||||
sta divr16u.dividend
|
||||
lda #>PI2_u4f28&$ffff
|
||||
sta divr16u.dividend+1
|
||||
jsr divr16u
|
||||
lda quotient_hi
|
||||
sta return+2
|
||||
lda quotient_hi+1
|
||||
sta return+3
|
||||
lda quotient_lo
|
||||
sta return
|
||||
lda quotient_lo+1
|
||||
sta return+1
|
||||
rts
|
||||
}
|
||||
divr16u: {
|
||||
.label rem = 2
|
||||
.label dividend = 8
|
||||
.label quotient = $e
|
||||
.label return = $e
|
||||
ldx #0
|
||||
txa
|
||||
sta quotient
|
||||
sta quotient+1
|
||||
b1:
|
||||
asl rem
|
||||
rol rem+1
|
||||
lda dividend+1
|
||||
and #$80
|
||||
cmp #0
|
||||
beq b2
|
||||
lda #1
|
||||
ora rem
|
||||
sta rem
|
||||
b2:
|
||||
asl dividend
|
||||
rol dividend+1
|
||||
asl quotient
|
||||
rol quotient+1
|
||||
lda rem+1
|
||||
cmp #>XSIN_SIZE
|
||||
bcc b3
|
||||
bne !+
|
||||
lda rem
|
||||
cmp #<XSIN_SIZE
|
||||
bcc b3
|
||||
!:
|
||||
inc quotient
|
||||
bne !+
|
||||
inc quotient+1
|
||||
!:
|
||||
lda rem
|
||||
sec
|
||||
sbc #<XSIN_SIZE
|
||||
sta rem
|
||||
lda rem+1
|
||||
sbc #>XSIN_SIZE
|
||||
sta rem+1
|
||||
b3:
|
||||
inx
|
||||
cpx #$10
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
fill: {
|
||||
.label end = 8
|
||||
.label addr = 2
|
||||
lda addr
|
||||
clc
|
||||
adc #<$3e8
|
||||
sta end
|
||||
lda addr+1
|
||||
adc #>$3e8
|
||||
sta end+1
|
||||
b1:
|
||||
txa
|
||||
ldy #0
|
||||
sta (addr),y
|
||||
inc addr
|
||||
bne !+
|
||||
inc addr+1
|
||||
!:
|
||||
lda addr+1
|
||||
cmp end+1
|
||||
bne b1
|
||||
lda addr
|
||||
cmp end
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
.align $100
|
||||
xsin: .fill $400, 0
|
403
src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.cfg
Normal file
403
src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.cfg
Normal file
@ -0,0 +1,403 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@27
|
||||
@27: scope:[] from @begin
|
||||
kickasm {{ .label pc_restore = *
|
||||
.pc = $2000
|
||||
logo:
|
||||
.var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff))
|
||||
.for (var y=0; y<6 ; y++)
|
||||
.for (var x=0;x<40; x++)
|
||||
.for(var cp=0; cp<8; cp++)
|
||||
.byte logoPic.getMulticolorByte(x,cp+y*8)
|
||||
.pc = pc_restore
|
||||
}}
|
||||
[2] call main [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @27
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @27
|
||||
asm { sei }
|
||||
[5] *((const byte*) BORDERCOL#0) ← (const byte) WHITE#0 [ ] ( main:2 [ ] )
|
||||
[6] *((const byte*) BGCOL2#0) ← (const byte) DARK_GREY#0 [ ] ( main:2 [ ] )
|
||||
[7] *((const byte*) BGCOL#0) ← *((const byte*) BGCOL2#0) [ ] ( main:2 [ ] )
|
||||
[8] *((const byte*) BGCOL3#0) ← (const byte) BLACK#0 [ ] ( main:2 [ ] )
|
||||
to:main::toD0181
|
||||
main::toD0181: scope:[main] from main
|
||||
[9] phi() [ ] ( main:2 [ ] )
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::toD0181
|
||||
[10] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0 [ ] ( main:2 [ ] )
|
||||
[11] *((const byte*) D016#0) ← (const byte) VIC_MCM#0 [ ] ( main:2 [ ] )
|
||||
[12] call fill [ ] ( main:2 [ ] )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
[13] phi() [ ] ( main:2 [ ] )
|
||||
[14] call fill [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@1 main::@4
|
||||
[15] (byte) main::ch#2 ← phi( main::@1/(byte) main::ch#1 main::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::ch#2 ] ( main:2 [ main::ch#2 ] )
|
||||
[16] *((const byte*) SCREEN#0 + (byte) main::ch#2) ← (byte) main::ch#2 [ main::ch#2 ] ( main:2 [ main::ch#2 ] )
|
||||
[17] (byte) main::ch#1 ← ++ (byte) main::ch#2 [ main::ch#1 ] ( main:2 [ main::ch#1 ] )
|
||||
[18] if((byte) main::ch#1!=(byte/word/signed word/dword/signed dword) 240) goto main::@1 [ main::ch#1 ] ( main:2 [ main::ch#1 ] )
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[19] phi() [ ] ( main:2 [ ] )
|
||||
[20] call sin16s_gen2 [ ] ( main:2 [ ] )
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@2
|
||||
[21] phi() [ ] ( main:2 [ ] )
|
||||
[22] call loop [ ] ( main:2 [ ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@6
|
||||
[23] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
loop: scope:[loop] from main::@6
|
||||
[24] phi() [ ] ( main:2::loop:22 [ ] )
|
||||
to:loop::@1
|
||||
loop::@1: scope:[loop] from loop loop::@7
|
||||
[25] (word) xsin_idx#11 ← phi( loop/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@7/(word) xsin_idx#19 ) [ xsin_idx#11 ] ( main:2::loop:22 [ xsin_idx#11 ] )
|
||||
to:loop::@4
|
||||
loop::@4: scope:[loop] from loop::@1 loop::@4
|
||||
[26] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto loop::@4 [ xsin_idx#11 ] ( main:2::loop:22 [ xsin_idx#11 ] )
|
||||
to:loop::@6
|
||||
loop::@6: scope:[loop] from loop::@4
|
||||
[27] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) [ xsin_idx#11 ] ( main:2::loop:22 [ xsin_idx#11 ] )
|
||||
[28] (signed word*~) loop::$1 ← (const signed word[512]) xsin#0 + (word) xsin_idx#11 [ xsin_idx#11 loop::$1 ] ( main:2::loop:22 [ xsin_idx#11 loop::$1 ] )
|
||||
[29] (signed word) loop::xpos#0 ← *((signed word*~) loop::$1) [ xsin_idx#11 loop::xpos#0 ] ( main:2::loop:22 [ xsin_idx#11 loop::xpos#0 ] )
|
||||
[30] (signed word) render_logo::xpos#0 ← (signed word) loop::xpos#0 [ xsin_idx#11 render_logo::xpos#0 ] ( main:2::loop:22 [ xsin_idx#11 render_logo::xpos#0 ] )
|
||||
[31] call render_logo [ xsin_idx#11 ] ( main:2::loop:22 [ xsin_idx#11 ] )
|
||||
to:loop::@15
|
||||
loop::@15: scope:[loop] from loop::@6
|
||||
[32] (word) xsin_idx#3 ← (word) xsin_idx#11 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ xsin_idx#3 ] ( main:2::loop:22 [ xsin_idx#3 ] )
|
||||
[33] if((word) xsin_idx#3!=(const word) XSIN_SIZE#0*(byte/signed byte/word/signed word/dword/signed dword) 2) goto loop::@16 [ xsin_idx#3 ] ( main:2::loop:22 [ xsin_idx#3 ] )
|
||||
to:loop::@7
|
||||
loop::@7: scope:[loop] from loop::@15 loop::@16
|
||||
[34] (word) xsin_idx#19 ← phi( loop::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 loop::@16/(word) xsin_idx#3 ) [ xsin_idx#19 ] ( main:2::loop:22 [ xsin_idx#19 ] )
|
||||
[35] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0) [ xsin_idx#19 ] ( main:2::loop:22 [ xsin_idx#19 ] )
|
||||
to:loop::@1
|
||||
loop::@16: scope:[loop] from loop::@15
|
||||
[36] phi() [ xsin_idx#3 ] ( main:2::loop:22 [ xsin_idx#3 ] )
|
||||
to:loop::@7
|
||||
render_logo: scope:[render_logo] from loop::@6
|
||||
[37] (byte~) render_logo::$0 ← ((byte)) (signed word) render_logo::xpos#0 [ render_logo::xpos#0 render_logo::$0 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::xpos#0 render_logo::$0 ] )
|
||||
[38] (byte~) render_logo::$1 ← (byte~) render_logo::$0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ render_logo::xpos#0 render_logo::$1 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::xpos#0 render_logo::$1 ] )
|
||||
[39] (byte~) render_logo::$2 ← (const byte) VIC_MCM#0 | (byte~) render_logo::$1 [ render_logo::xpos#0 render_logo::$2 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::xpos#0 render_logo::$2 ] )
|
||||
[40] *((const byte*) D016#0) ← (byte~) render_logo::$2 [ render_logo::xpos#0 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::xpos#0 ] )
|
||||
[41] (signed word~) render_logo::$3 ← (signed word) render_logo::xpos#0 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::xpos#0 render_logo::$3 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::xpos#0 render_logo::$3 ] )
|
||||
[42] (signed byte) render_logo::x_char#0 ← ((signed byte)) (signed word~) render_logo::$3 [ render_logo::xpos#0 render_logo::x_char#0 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::xpos#0 render_logo::x_char#0 ] )
|
||||
[43] if((signed word) render_logo::xpos#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_logo::@1 [ render_logo::x_char#0 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 ] )
|
||||
to:render_logo::@2
|
||||
render_logo::@2: scope:[render_logo] from render_logo render_logo::@3
|
||||
[44] (byte) render_logo::screen_idx#13 ← phi( render_logo/(byte/signed byte/word/signed word/dword/signed dword) 0 render_logo::@3/(byte) render_logo::screen_idx#2 ) [ render_logo::x_char#0 render_logo::screen_idx#13 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#13 ] )
|
||||
[45] if((byte) render_logo::screen_idx#13!=(byte)(signed byte) render_logo::x_char#0) goto render_logo::@3 [ render_logo::x_char#0 render_logo::screen_idx#13 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#13 ] )
|
||||
to:render_logo::@5
|
||||
render_logo::@5: scope:[render_logo] from render_logo::@2 render_logo::@6
|
||||
[46] (byte) render_logo::logo_idx#4 ← phi( render_logo::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_logo::@6/(byte) render_logo::logo_idx#2 ) [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
[46] (byte) render_logo::screen_idx#8 ← phi( render_logo::@2/(byte) render_logo::screen_idx#13 render_logo::@6/(byte) render_logo::screen_idx#3 ) [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
[47] if((byte) render_logo::screen_idx#8!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@6 [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
to:render_logo::@return
|
||||
render_logo::@return: scope:[render_logo] from render_logo::@12 render_logo::@5
|
||||
[48] return [ ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 ] )
|
||||
to:@return
|
||||
render_logo::@6: scope:[render_logo] from render_logo::@5
|
||||
[49] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#8) ← (byte) render_logo::logo_idx#4 [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
[50] (byte/signed word/word/dword/signed dword~) render_logo::$22 ← (byte) render_logo::logo_idx#4 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$22 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$22 ] )
|
||||
[51] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#8) ← (byte/signed word/word/dword/signed dword~) render_logo::$22 [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
[52] (byte/signed word/word/dword/signed dword~) render_logo::$26 ← (byte) render_logo::logo_idx#4 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$26 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$26 ] )
|
||||
[53] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#8) ← (byte/signed word/word/dword/signed dword~) render_logo::$26 [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
[54] (byte/signed word/word/dword/signed dword~) render_logo::$30 ← (byte) render_logo::logo_idx#4 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$30 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$30 ] )
|
||||
[55] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#8) ← (byte/signed word/word/dword/signed dword~) render_logo::$30 [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
[56] (byte/word/signed word/dword/signed dword~) render_logo::$34 ← (byte) render_logo::logo_idx#4 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$34 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$34 ] )
|
||||
[57] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#8) ← (byte/word/signed word/dword/signed dword~) render_logo::$34 [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
[58] (byte/word/signed word/dword/signed dword~) render_logo::$38 ← (byte) render_logo::logo_idx#4 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$38 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 render_logo::$38 ] )
|
||||
[59] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#8) ← (byte/word/signed word/dword/signed dword~) render_logo::$38 [ render_logo::screen_idx#8 render_logo::logo_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#8 render_logo::logo_idx#4 ] )
|
||||
[60] (byte) render_logo::screen_idx#3 ← ++ (byte) render_logo::screen_idx#8 [ render_logo::logo_idx#4 render_logo::screen_idx#3 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#4 render_logo::screen_idx#3 ] )
|
||||
[61] (byte) render_logo::logo_idx#2 ← ++ (byte) render_logo::logo_idx#4 [ render_logo::screen_idx#3 render_logo::logo_idx#2 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#3 render_logo::logo_idx#2 ] )
|
||||
to:render_logo::@5
|
||||
render_logo::@3: scope:[render_logo] from render_logo::@2
|
||||
[62] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#13) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#13 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#13 ] )
|
||||
[63] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#13) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#13 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#13 ] )
|
||||
[64] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#13) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#13 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#13 ] )
|
||||
[65] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#13) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#13 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#13 ] )
|
||||
[66] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#13) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#13 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#13 ] )
|
||||
[67] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#13) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::x_char#0 render_logo::screen_idx#13 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#13 ] )
|
||||
[68] (byte) render_logo::screen_idx#2 ← ++ (byte) render_logo::screen_idx#13 [ render_logo::x_char#0 render_logo::screen_idx#2 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::x_char#0 render_logo::screen_idx#2 ] )
|
||||
to:render_logo::@2
|
||||
render_logo::@1: scope:[render_logo] from render_logo
|
||||
[69] (signed byte~) render_logo::$39 ← - (signed byte) render_logo::x_char#0 [ render_logo::$39 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::$39 ] )
|
||||
[70] (byte~) render_logo::logo_idx#9 ← (byte)(signed byte~) render_logo::$39 [ render_logo::logo_idx#9 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#9 ] )
|
||||
to:render_logo::@9
|
||||
render_logo::@9: scope:[render_logo] from render_logo::@1 render_logo::@10
|
||||
[71] (byte) render_logo::screen_idx#10 ← phi( render_logo::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_logo::@10/(byte) render_logo::screen_idx#4 ) [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
[71] (byte) render_logo::logo_idx#5 ← phi( render_logo::@1/(byte~) render_logo::logo_idx#9 render_logo::@10/(byte) render_logo::logo_idx#3 ) [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
[72] if((byte) render_logo::logo_idx#5!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@10 [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
to:render_logo::@12
|
||||
render_logo::@12: scope:[render_logo] from render_logo::@13 render_logo::@9
|
||||
[73] (byte) render_logo::screen_idx#11 ← phi( render_logo::@13/(byte) render_logo::screen_idx#5 render_logo::@9/(byte) render_logo::screen_idx#10 ) [ render_logo::screen_idx#11 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#11 ] )
|
||||
[74] if((byte) render_logo::screen_idx#11!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_logo::@13 [ render_logo::screen_idx#11 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#11 ] )
|
||||
to:render_logo::@return
|
||||
render_logo::@13: scope:[render_logo] from render_logo::@12
|
||||
[75] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#11) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#11 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#11 ] )
|
||||
[76] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#11) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#11 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#11 ] )
|
||||
[77] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#11) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#11 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#11 ] )
|
||||
[78] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#11) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#11 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#11 ] )
|
||||
[79] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#11) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#11 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#11 ] )
|
||||
[80] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#11) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_logo::screen_idx#11 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#11 ] )
|
||||
[81] (byte) render_logo::screen_idx#5 ← ++ (byte) render_logo::screen_idx#11 [ render_logo::screen_idx#5 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::screen_idx#5 ] )
|
||||
to:render_logo::@12
|
||||
render_logo::@10: scope:[render_logo] from render_logo::@9
|
||||
[82] *((const byte*) SCREEN#0 + (byte) render_logo::screen_idx#10) ← (byte) render_logo::logo_idx#5 [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
[83] (byte/signed word/word/dword/signed dword~) render_logo::$45 ← (byte) render_logo::logo_idx#5 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 [ render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$45 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$45 ] )
|
||||
[84] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$45 [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
[85] (byte/signed word/word/dword/signed dword~) render_logo::$49 ← (byte) render_logo::logo_idx#5 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 [ render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$49 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$49 ] )
|
||||
[86] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 2 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$49 [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
[87] (byte/signed word/word/dword/signed dword~) render_logo::$53 ← (byte) render_logo::logo_idx#5 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 [ render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$53 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$53 ] )
|
||||
[88] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 3 + (byte) render_logo::screen_idx#10) ← (byte/signed word/word/dword/signed dword~) render_logo::$53 [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
[89] (byte/word/signed word/dword/signed dword~) render_logo::$57 ← (byte) render_logo::logo_idx#5 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 [ render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$57 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$57 ] )
|
||||
[90] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 4 + (byte) render_logo::screen_idx#10) ← (byte/word/signed word/dword/signed dword~) render_logo::$57 [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
[91] (byte/word/signed word/dword/signed dword~) render_logo::$61 ← (byte) render_logo::logo_idx#5 + (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 [ render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$61 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 render_logo::$61 ] )
|
||||
[92] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) render_logo::screen_idx#10) ← (byte/word/signed word/dword/signed dword~) render_logo::$61 [ render_logo::logo_idx#5 render_logo::screen_idx#10 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#10 ] )
|
||||
[93] (byte) render_logo::screen_idx#4 ← ++ (byte) render_logo::screen_idx#10 [ render_logo::logo_idx#5 render_logo::screen_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#5 render_logo::screen_idx#4 ] )
|
||||
[94] (byte) render_logo::logo_idx#3 ← ++ (byte) render_logo::logo_idx#5 [ render_logo::logo_idx#3 render_logo::screen_idx#4 ] ( main:2::loop:22::render_logo:31 [ xsin_idx#11 render_logo::logo_idx#3 render_logo::screen_idx#4 ] )
|
||||
to:render_logo::@9
|
||||
sin16s_gen2: scope:[sin16s_gen2] from main::@2
|
||||
[95] phi() [ ] ( main:2::sin16s_gen2:20 [ ] )
|
||||
[96] call div32u16u [ div32u16u::return#0 ] ( main:2::sin16s_gen2:20 [ div32u16u::return#0 ] )
|
||||
[97] (dword) div32u16u::return#2 ← (dword) div32u16u::return#0 [ div32u16u::return#2 ] ( main:2::sin16s_gen2:20 [ div32u16u::return#2 ] )
|
||||
to:sin16s_gen2::@3
|
||||
sin16s_gen2::@3: scope:[sin16s_gen2] from sin16s_gen2
|
||||
[98] (dword) sin16s_gen2::step#0 ← (dword) div32u16u::return#2 [ sin16s_gen2::step#0 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 ] )
|
||||
to:sin16s_gen2::@1
|
||||
sin16s_gen2::@1: scope:[sin16s_gen2] from sin16s_gen2::@3 sin16s_gen2::@5
|
||||
[99] (word) sin16s_gen2::i#2 ← phi( sin16s_gen2::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen2::@5/(word) sin16s_gen2::i#1 ) [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 ] )
|
||||
[99] (signed word*) sin16s_gen2::sintab#2 ← phi( sin16s_gen2::@3/(const signed word[512]) xsin#0 sin16s_gen2::@5/(signed word*) sin16s_gen2::sintab#0 ) [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 ] )
|
||||
[99] (dword) sin16s_gen2::x#2 ← phi( sin16s_gen2::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s_gen2::@5/(dword) sin16s_gen2::x#1 ) [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 ] )
|
||||
[100] (dword) sin16s::x#0 ← (dword) sin16s_gen2::x#2 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] )
|
||||
[101] call sin16s [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::return#1 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::return#1 ] )
|
||||
[102] (signed word) sin16s::return#0 ← (signed word) sin16s::return#1 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::return#0 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::return#0 ] )
|
||||
to:sin16s_gen2::@4
|
||||
sin16s_gen2::@4: scope:[sin16s_gen2] from sin16s_gen2::@1
|
||||
[103] (signed word) mul16s::a#0 ← (signed word) sin16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 ] )
|
||||
[104] call mul16s [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::return#0 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::return#0 ] )
|
||||
[105] (signed dword) mul16s::return#2 ← (signed dword) mul16s::return#0 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::return#2 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::return#2 ] )
|
||||
to:sin16s_gen2::@5
|
||||
sin16s_gen2::@5: scope:[sin16s_gen2] from sin16s_gen2::@4
|
||||
[106] (signed dword~) sin16s_gen2::$5 ← (signed dword) mul16s::return#2 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s_gen2::$5 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s_gen2::$5 ] )
|
||||
[107] (word~) sin16s_gen2::$6 ← > (signed dword~) sin16s_gen2::$5 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s_gen2::$6 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s_gen2::$6 ] )
|
||||
[108] (signed word~) sin16s_gen2::$8 ← (const signed word) sin16s_gen2::offs#0 + (signed word)(word~) sin16s_gen2::$6 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s_gen2::$8 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s_gen2::$8 ] )
|
||||
[109] *((signed word*) sin16s_gen2::sintab#2) ← (signed word~) sin16s_gen2::$8 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 ] )
|
||||
[110] (signed word*) sin16s_gen2::sintab#0 ← (signed word*) sin16s_gen2::sintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::i#2 sin16s_gen2::sintab#0 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::i#2 sin16s_gen2::sintab#0 ] )
|
||||
[111] (dword) sin16s_gen2::x#1 ← (dword) sin16s_gen2::x#2 + (dword) sin16s_gen2::step#0 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::i#2 sin16s_gen2::x#1 sin16s_gen2::sintab#0 ] )
|
||||
[112] (word) sin16s_gen2::i#1 ← ++ (word) sin16s_gen2::i#2 [ sin16s_gen2::step#0 sin16s_gen2::x#1 sin16s_gen2::sintab#0 sin16s_gen2::i#1 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#1 sin16s_gen2::sintab#0 sin16s_gen2::i#1 ] )
|
||||
[113] if((word) sin16s_gen2::i#1<(const word) XSIN_SIZE#0) goto sin16s_gen2::@1 [ sin16s_gen2::step#0 sin16s_gen2::x#1 sin16s_gen2::sintab#0 sin16s_gen2::i#1 ] ( main:2::sin16s_gen2:20 [ sin16s_gen2::step#0 sin16s_gen2::x#1 sin16s_gen2::sintab#0 sin16s_gen2::i#1 ] )
|
||||
to:sin16s_gen2::@return
|
||||
sin16s_gen2::@return: scope:[sin16s_gen2] from sin16s_gen2::@5
|
||||
[114] return [ ] ( main:2::sin16s_gen2:20 [ ] )
|
||||
to:@return
|
||||
mul16s: scope:[mul16s] from sin16s_gen2::@4
|
||||
[115] (word~) mul16u::a#8 ← (word)(signed word) mul16s::a#0 [ mul16s::a#0 mul16u::a#8 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::a#8 ] )
|
||||
[116] call mul16u [ mul16s::a#0 mul16u::res#2 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::res#2 ] )
|
||||
[117] (dword) mul16u::return#2 ← (dword) mul16u::res#2 [ mul16s::a#0 mul16u::return#2 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::return#2 ] )
|
||||
to:mul16s::@6
|
||||
mul16s::@6: scope:[mul16s] from mul16s
|
||||
[118] (dword) mul16s::m#0 ← (dword) mul16u::return#2 [ mul16s::a#0 mul16s::m#0 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16s::m#0 ] )
|
||||
[119] if((signed word) mul16s::a#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16s::@1 [ mul16s::m#0 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::m#0 ] )
|
||||
to:mul16s::@3
|
||||
mul16s::@3: scope:[mul16s] from mul16s::@6
|
||||
[120] (word~) mul16s::$6 ← > (dword) mul16s::m#0 [ mul16s::m#0 mul16s::$6 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::m#0 mul16s::$6 ] )
|
||||
[121] (word~) mul16s::$16 ← (word~) mul16s::$6 - ((word))(const signed word) sin16s_gen2::ampl#0 [ mul16s::m#0 mul16s::$16 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::m#0 mul16s::$16 ] )
|
||||
[122] (dword) mul16s::m#1 ← (dword) mul16s::m#0 hi= (word~) mul16s::$16 [ mul16s::m#1 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::m#1 ] )
|
||||
to:mul16s::@1
|
||||
mul16s::@1: scope:[mul16s] from mul16s::@3 mul16s::@6
|
||||
[123] (dword) mul16s::m#4 ← phi( mul16s::@3/(dword) mul16s::m#1 mul16s::@6/(dword) mul16s::m#0 ) [ mul16s::m#4 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::m#4 ] )
|
||||
to:mul16s::@2
|
||||
mul16s::@2: scope:[mul16s] from mul16s::@1
|
||||
[124] (signed dword) mul16s::return#0 ← ((signed dword)) (dword) mul16s::m#4 [ mul16s::return#0 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::return#0 ] )
|
||||
to:mul16s::@return
|
||||
mul16s::@return: scope:[mul16s] from mul16s::@2
|
||||
[125] return [ mul16s::return#0 ] ( main:2::sin16s_gen2:20::mul16s:104 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::return#0 ] )
|
||||
to:@return
|
||||
mul16u: scope:[mul16u] from mul16s mulu16_sel
|
||||
[126] (word) mul16u::a#6 ← phi( mul16s/(word~) mul16u::a#8 mulu16_sel/(word) mul16u::a#2 ) [ mul16u::b#2 mul16u::a#6 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] )
|
||||
[126] (word) mul16u::b#2 ← phi( mul16s/((word))(const signed word) sin16s_gen2::ampl#0 mulu16_sel/(word) mul16u::b#1 ) [ mul16u::b#2 mul16u::a#6 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::b#2 mul16u::a#6 ] )
|
||||
[127] (dword) mul16u::mb#0 ← ((dword)) (word) mul16u::b#2 [ mul16u::a#6 mul16u::mb#0 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::a#6 mul16u::mb#0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#6 mul16u::mb#0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#6 mul16u::mb#0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#6 mul16u::mb#0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#6 mul16u::mb#0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#6 mul16u::mb#0 ] )
|
||||
to:mul16u::@1
|
||||
mul16u::@1: scope:[mul16u] from mul16u mul16u::@4
|
||||
[128] (dword) mul16u::mb#2 ← phi( mul16u/(dword) mul16u::mb#0 mul16u::@4/(dword) mul16u::mb#1 ) [ mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] )
|
||||
[128] (dword) mul16u::res#2 ← phi( mul16u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul16u::@4/(dword) mul16u::res#6 ) [ mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] )
|
||||
[128] (word) mul16u::a#3 ← phi( mul16u/(word) mul16u::a#6 mul16u::@4/(word) mul16u::a#0 ) [ mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] )
|
||||
[129] if((word) mul16u::a#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@2 [ mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] )
|
||||
to:mul16u::@return
|
||||
mul16u::@return: scope:[mul16u] from mul16u::@1
|
||||
[130] return [ mul16u::res#2 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::res#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 ] )
|
||||
to:@return
|
||||
mul16u::@2: scope:[mul16u] from mul16u::@1
|
||||
[131] (byte/word~) mul16u::$1 ← (word) mul16u::a#3 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::res#2 mul16u::a#3 mul16u::mb#2 mul16u::$1 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::res#2 mul16u::a#3 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 mul16u::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 mul16u::$1 ] )
|
||||
[132] if((byte/word~) mul16u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul16u::@4 [ mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::res#2 mul16u::a#3 mul16u::mb#2 ] )
|
||||
to:mul16u::@7
|
||||
mul16u::@7: scope:[mul16u] from mul16u::@2
|
||||
[133] (dword) mul16u::res#1 ← (dword) mul16u::res#2 + (dword) mul16u::mb#2 [ mul16u::a#3 mul16u::mb#2 mul16u::res#1 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::a#3 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#1 ] )
|
||||
to:mul16u::@4
|
||||
mul16u::@4: scope:[mul16u] from mul16u::@2 mul16u::@7
|
||||
[134] (dword) mul16u::res#6 ← phi( mul16u::@2/(dword) mul16u::res#2 mul16u::@7/(dword) mul16u::res#1 ) [ mul16u::a#3 mul16u::mb#2 mul16u::res#6 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::a#3 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#3 mul16u::mb#2 mul16u::res#6 ] )
|
||||
[135] (word) mul16u::a#0 ← (word) mul16u::a#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::mb#2 mul16u::a#0 mul16u::res#6 ] )
|
||||
[136] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::sin16s_gen2:20::mul16s:104::mul16u:116 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 mul16s::a#0 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167::mul16u:180 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
|
||||
to:mul16u::@1
|
||||
sin16s: scope:[sin16s] from sin16s_gen2::@1
|
||||
[137] if((dword) sin16s::x#0<(const dword) PI_u4f28#0) goto sin16s::@1 [ sin16s::x#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#0 ] )
|
||||
to:sin16s::@4
|
||||
sin16s::@4: scope:[sin16s] from sin16s
|
||||
[138] (dword) sin16s::x#1 ← (dword) sin16s::x#0 - (const dword) PI_u4f28#0 [ sin16s::x#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#1 ] )
|
||||
to:sin16s::@1
|
||||
sin16s::@1: scope:[sin16s] from sin16s sin16s::@4
|
||||
[139] (byte) sin16s::isUpper#2 ← phi( sin16s/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin16s::x#4 sin16s::isUpper#2 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#4 sin16s::isUpper#2 ] )
|
||||
[139] (dword) sin16s::x#4 ← phi( sin16s/(dword) sin16s::x#0 sin16s::@4/(dword) sin16s::x#1 ) [ sin16s::x#4 sin16s::isUpper#2 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#4 sin16s::isUpper#2 ] )
|
||||
[140] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28#0) goto sin16s::@2 [ sin16s::x#4 sin16s::isUpper#2 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::x#4 sin16s::isUpper#2 ] )
|
||||
to:sin16s::@5
|
||||
sin16s::@5: scope:[sin16s] from sin16s::@1
|
||||
[141] (dword) sin16s::x#2 ← (const dword) PI_u4f28#0 - (dword) sin16s::x#4 [ sin16s::isUpper#2 sin16s::x#2 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x#2 ] )
|
||||
to:sin16s::@2
|
||||
sin16s::@2: scope:[sin16s] from sin16s::@1 sin16s::@5
|
||||
[142] (dword) sin16s::x#6 ← phi( sin16s::@1/(dword) sin16s::x#4 sin16s::@5/(dword) sin16s::x#2 ) [ sin16s::isUpper#2 sin16s::x#6 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x#6 ] )
|
||||
[143] (dword~) sin16s::$6 ← (dword) sin16s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin16s::isUpper#2 sin16s::$6 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::$6 ] )
|
||||
[144] (word) sin16s::x1#0 ← > (dword~) sin16s::$6 [ sin16s::isUpper#2 sin16s::x1#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 ] )
|
||||
[145] (word) mulu16_sel::v1#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 ] )
|
||||
[146] (word) mulu16_sel::v2#0 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#0 mulu16_sel::v2#0 ] )
|
||||
[147] call mulu16_sel [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] )
|
||||
[148] (word) mulu16_sel::return#0 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#0 ] )
|
||||
to:sin16s::@8
|
||||
sin16s::@8: scope:[sin16s] from sin16s::@2
|
||||
[149] (word) sin16s::x2#0 ← (word) mulu16_sel::return#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x2#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x2#0 ] )
|
||||
[150] (word) mulu16_sel::v1#1 ← (word) sin16s::x2#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 ] )
|
||||
[151] (word) mulu16_sel::v2#1 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 mulu16_sel::v2#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#1 mulu16_sel::v2#1 ] )
|
||||
[152] call mulu16_sel [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] )
|
||||
[153] (word) mulu16_sel::return#1 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#1 ] )
|
||||
to:sin16s::@9
|
||||
sin16s::@9: scope:[sin16s] from sin16s::@8
|
||||
[154] (word) sin16s::x3#0 ← (word) mulu16_sel::return#1 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 ] )
|
||||
[155] (word) mulu16_sel::v1#2 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#2 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#2 ] )
|
||||
[156] call mulu16_sel [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::x3#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::x3#0 ] )
|
||||
[157] (word) mulu16_sel::return#2 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#2 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#2 ] )
|
||||
to:sin16s::@10
|
||||
sin16s::@10: scope:[sin16s] from sin16s::@9
|
||||
[158] (word) sin16s::x3_6#0 ← (word) mulu16_sel::return#2 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::x3_6#0 ] )
|
||||
[159] (word) sin16s::usinx#0 ← (word) sin16s::x1#0 - (word) sin16s::x3_6#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 sin16s::usinx#0 ] )
|
||||
[160] (word) mulu16_sel::v1#3 ← (word) sin16s::x3#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 ] )
|
||||
[161] (word) mulu16_sel::v2#3 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 mulu16_sel::v2#3 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#3 mulu16_sel::v2#3 ] )
|
||||
[162] call mulu16_sel [ sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::usinx#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 sin16s::usinx#0 ] )
|
||||
[163] (word) mulu16_sel::return#10 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#10 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#10 ] )
|
||||
to:sin16s::@11
|
||||
sin16s::@11: scope:[sin16s] from sin16s::@10
|
||||
[164] (word) sin16s::x4#0 ← (word) mulu16_sel::return#10 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 sin16s::x4#0 ] )
|
||||
[165] (word) mulu16_sel::v1#4 ← (word) sin16s::x4#0 [ sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#4 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#4 ] )
|
||||
[166] (word) mulu16_sel::v2#4 ← (word) sin16s::x1#0 [ sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#4 mulu16_sel::v2#4 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#4 mulu16_sel::v2#4 ] )
|
||||
[167] call mulu16_sel [ sin16s::isUpper#2 mulu16_sel::return#12 sin16s::usinx#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 mulu16_sel::return#12 sin16s::usinx#0 ] )
|
||||
[168] (word) mulu16_sel::return#11 ← (word) mulu16_sel::return#12 [ sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#11 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#11 ] )
|
||||
to:sin16s::@12
|
||||
sin16s::@12: scope:[sin16s] from sin16s::@11
|
||||
[169] (word) sin16s::x5#0 ← (word) mulu16_sel::return#11 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5#0 ] )
|
||||
[170] (word) sin16s::x5_128#0 ← (word) sin16s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 sin16s::x5_128#0 ] )
|
||||
[171] (word) sin16s::usinx#1 ← (word) sin16s::usinx#0 + (word) sin16s::x5_128#0 [ sin16s::isUpper#2 sin16s::usinx#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#1 ] )
|
||||
[172] if((byte) sin16s::isUpper#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin16s::@15 [ sin16s::usinx#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::usinx#1 ] )
|
||||
to:sin16s::@6
|
||||
sin16s::@6: scope:[sin16s] from sin16s::@12
|
||||
[173] (signed word) sin16s::sinx#1 ← - (signed word)(word) sin16s::usinx#1 [ sin16s::sinx#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::sinx#1 ] )
|
||||
to:sin16s::@3
|
||||
sin16s::@3: scope:[sin16s] from sin16s::@15 sin16s::@6
|
||||
[174] (signed word) sin16s::return#1 ← phi( sin16s::@15/(signed word~) sin16s::return#5 sin16s::@6/(signed word) sin16s::sinx#1 ) [ sin16s::return#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::return#1 ] )
|
||||
to:sin16s::@return
|
||||
sin16s::@return: scope:[sin16s] from sin16s::@3
|
||||
[175] return [ sin16s::return#1 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::return#1 ] )
|
||||
to:@return
|
||||
sin16s::@15: scope:[sin16s] from sin16s::@12
|
||||
[176] (signed word~) sin16s::return#5 ← (signed word)(word) sin16s::usinx#1 [ sin16s::return#5 ] ( main:2::sin16s_gen2:20::sin16s:101 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::return#5 ] )
|
||||
to:sin16s::@3
|
||||
mulu16_sel: scope:[mulu16_sel] from sin16s::@10 sin16s::@11 sin16s::@2 sin16s::@8 sin16s::@9
|
||||
[177] (byte) mulu16_sel::select#5 ← phi( sin16s::@10/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@11/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 sin16s::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 sin16s::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
|
||||
[177] (word) mulu16_sel::v2#5 ← phi( sin16s::@10/(word) mulu16_sel::v2#3 sin16s::@11/(word) mulu16_sel::v2#4 sin16s::@2/(word) mulu16_sel::v2#0 sin16s::@8/(word) mulu16_sel::v2#1 sin16s::@9/(dword/signed dword) 65536/(byte/signed byte/word/signed word/dword/signed dword) 6 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
|
||||
[177] (word) mulu16_sel::v1#5 ← phi( sin16s::@10/(word) mulu16_sel::v1#3 sin16s::@11/(word) mulu16_sel::v1#4 sin16s::@2/(word) mulu16_sel::v1#0 sin16s::@8/(word) mulu16_sel::v1#1 sin16s::@9/(word) mulu16_sel::v1#2 ) [ mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::v1#5 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
|
||||
[178] (word) mul16u::a#2 ← (word) mulu16_sel::v1#5 [ mul16u::a#2 mulu16_sel::v2#5 mulu16_sel::select#5 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mul16u::a#2 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mul16u::a#2 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul16u::a#2 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul16u::a#2 mulu16_sel::v2#5 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul16u::a#2 mulu16_sel::v2#5 mulu16_sel::select#5 ] )
|
||||
[179] (word) mul16u::b#1 ← (word) mulu16_sel::v2#5 [ mul16u::b#1 mul16u::a#2 mulu16_sel::select#5 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mul16u::b#1 mul16u::a#2 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mul16u::b#1 mul16u::a#2 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul16u::b#1 mul16u::a#2 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul16u::b#1 mul16u::a#2 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul16u::b#1 mul16u::a#2 mulu16_sel::select#5 ] )
|
||||
[180] call mul16u [ mul16u::res#2 mulu16_sel::select#5 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mul16u::res#2 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mul16u::res#2 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mul16u::res#2 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mul16u::res#2 mulu16_sel::select#5 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mul16u::res#2 mulu16_sel::select#5 ] )
|
||||
[181] (dword) mul16u::return#3 ← (dword) mul16u::res#2 [ mulu16_sel::select#5 mul16u::return#3 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#3 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mul16u::return#3 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mul16u::return#3 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#3 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mul16u::return#3 ] )
|
||||
to:mulu16_sel::@2
|
||||
mulu16_sel::@2: scope:[mulu16_sel] from mulu16_sel
|
||||
[182] (dword~) mulu16_sel::$0 ← (dword) mul16u::return#3 [ mulu16_sel::select#5 mulu16_sel::$0 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::select#5 mulu16_sel::$0 ] )
|
||||
[183] (dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select#5 [ mulu16_sel::$1 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::$1 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::$1 ] )
|
||||
[184] (word) mulu16_sel::return#12 ← > (dword~) mulu16_sel::$1 [ mulu16_sel::return#12 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] )
|
||||
to:mulu16_sel::@return
|
||||
mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2
|
||||
[185] return [ mulu16_sel::return#12 ] ( main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:147 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:152 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 mulu16_sel::return#12 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:156 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::x3#0 mulu16_sel::return#12 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:162 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::x1#0 sin16s::usinx#0 mulu16_sel::return#12 ] main:2::sin16s_gen2:20::sin16s:101::mulu16_sel:167 [ sin16s_gen2::step#0 sin16s_gen2::x#2 sin16s_gen2::sintab#2 sin16s_gen2::i#2 sin16s::isUpper#2 sin16s::usinx#0 mulu16_sel::return#12 ] )
|
||||
to:@return
|
||||
div32u16u: scope:[div32u16u] from sin16s_gen2
|
||||
[186] phi() [ ] ( main:2::sin16s_gen2:20::div32u16u:96 [ ] )
|
||||
[187] call divr16u [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ divr16u::return#0 rem16u#1 ] )
|
||||
[188] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ divr16u::return#2 rem16u#1 ] )
|
||||
to:div32u16u::@2
|
||||
div32u16u::@2: scope:[div32u16u] from div32u16u
|
||||
[189] (word) div32u16u::quotient_hi#0 ← (word) divr16u::return#2 [ div32u16u::quotient_hi#0 rem16u#1 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ div32u16u::quotient_hi#0 rem16u#1 ] )
|
||||
[190] (word) divr16u::rem#4 ← (word) rem16u#1 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ div32u16u::quotient_hi#0 divr16u::rem#4 ] )
|
||||
[191] call divr16u [ divr16u::return#0 div32u16u::quotient_hi#0 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ divr16u::return#0 div32u16u::quotient_hi#0 ] )
|
||||
[192] (word) divr16u::return#3 ← (word) divr16u::return#0 [ div32u16u::quotient_hi#0 divr16u::return#3 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ div32u16u::quotient_hi#0 divr16u::return#3 ] )
|
||||
to:div32u16u::@3
|
||||
div32u16u::@3: scope:[div32u16u] from div32u16u::@2
|
||||
[193] (word) div32u16u::quotient_lo#0 ← (word) divr16u::return#3 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ div32u16u::quotient_hi#0 div32u16u::quotient_lo#0 ] )
|
||||
[194] (dword) div32u16u::return#0 ← (word) div32u16u::quotient_hi#0 dw= (word) div32u16u::quotient_lo#0 [ div32u16u::return#0 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ div32u16u::return#0 ] )
|
||||
to:div32u16u::@return
|
||||
div32u16u::@return: scope:[div32u16u] from div32u16u::@3
|
||||
[195] return [ div32u16u::return#0 ] ( main:2::sin16s_gen2:20::div32u16u:96 [ div32u16u::return#0 ] )
|
||||
to:@return
|
||||
divr16u: scope:[divr16u] from div32u16u div32u16u::@2
|
||||
[196] (word) divr16u::dividend#5 ← phi( div32u16u/>(const dword) PI2_u4f28#0 div32u16u::@2/<(const dword) PI2_u4f28#0 ) [ divr16u::rem#10 divr16u::dividend#5 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::rem#10 divr16u::dividend#5 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 ] )
|
||||
[196] (word) divr16u::rem#10 ← phi( div32u16u/(byte/signed byte/word/signed word/dword/signed dword) 0 div32u16u::@2/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::rem#10 divr16u::dividend#5 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::rem#10 divr16u::dividend#5 ] )
|
||||
to:divr16u::@1
|
||||
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
|
||||
[197] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[197] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[197] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[197] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
|
||||
[198] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
|
||||
[199] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
|
||||
[200] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
|
||||
[201] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
|
||||
to:divr16u::@4
|
||||
divr16u::@4: scope:[divr16u] from divr16u::@1
|
||||
[202] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
|
||||
to:divr16u::@2
|
||||
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
|
||||
[203] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] )
|
||||
[204] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] )
|
||||
[205] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
|
||||
[206] if((word) divr16u::rem#6<(const word) XSIN_SIZE#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
|
||||
to:divr16u::@5
|
||||
divr16u::@5: scope:[divr16u] from divr16u::@2
|
||||
[207] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] )
|
||||
[208] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (const word) XSIN_SIZE#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
|
||||
to:divr16u::@3
|
||||
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
|
||||
[209] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::return#0 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
|
||||
[209] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::return#0 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
|
||||
[210] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::return#0 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
|
||||
[211] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::return#0 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::return#0 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
|
||||
to:divr16u::@6
|
||||
divr16u::@6: scope:[divr16u] from divr16u::@3
|
||||
[212] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
|
||||
to:divr16u::@return
|
||||
divr16u::@return: scope:[divr16u] from divr16u::@6
|
||||
[213] return [ divr16u::return#0 rem16u#1 ] ( main:2::sin16s_gen2:20::div32u16u:96::divr16u:187 [ divr16u::return#0 rem16u#1 ] main:2::sin16s_gen2:20::div32u16u:96::divr16u:191 [ div32u16u::quotient_hi#0 divr16u::return#0 rem16u#1 ] )
|
||||
to:@return
|
||||
fill: scope:[fill] from main::@3 main::@4
|
||||
[214] (byte) fill::val#3 ← phi( main::@3/(const byte) BLACK#0 main::@4/(const byte) WHITE#0|(byte/signed byte/word/signed word/dword/signed dword) 8 ) [ fill::addr#0 fill::val#3 ] ( main:2::fill:12 [ fill::addr#0 fill::val#3 ] main:2::fill:14 [ fill::addr#0 fill::val#3 ] )
|
||||
[214] (byte*) fill::addr#0 ← phi( main::@3/(const byte*) SCREEN#0 main::@4/(const byte*) COLS#0 ) [ fill::addr#0 fill::val#3 ] ( main:2::fill:12 [ fill::addr#0 fill::val#3 ] main:2::fill:14 [ fill::addr#0 fill::val#3 ] )
|
||||
[215] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000 [ fill::addr#0 fill::val#3 fill::end#0 ] ( main:2::fill:12 [ fill::addr#0 fill::val#3 fill::end#0 ] main:2::fill:14 [ fill::addr#0 fill::val#3 fill::end#0 ] )
|
||||
to:fill::@1
|
||||
fill::@1: scope:[fill] from fill fill::@1
|
||||
[216] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 ) [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:2::fill:12 [ fill::val#3 fill::end#0 fill::addr#2 ] main:2::fill:14 [ fill::val#3 fill::end#0 fill::addr#2 ] )
|
||||
[217] *((byte*) fill::addr#2) ← (byte) fill::val#3 [ fill::val#3 fill::end#0 fill::addr#2 ] ( main:2::fill:12 [ fill::val#3 fill::end#0 fill::addr#2 ] main:2::fill:14 [ fill::val#3 fill::end#0 fill::addr#2 ] )
|
||||
[218] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:2::fill:12 [ fill::val#3 fill::end#0 fill::addr#1 ] main:2::fill:14 [ fill::val#3 fill::end#0 fill::addr#1 ] )
|
||||
[219] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1 [ fill::val#3 fill::end#0 fill::addr#1 ] ( main:2::fill:12 [ fill::val#3 fill::end#0 fill::addr#1 ] main:2::fill:14 [ fill::val#3 fill::end#0 fill::addr#1 ] )
|
||||
to:fill::@return
|
||||
fill::@return: scope:[fill] from fill::@1
|
||||
[220] return [ ] ( main:2::fill:12 [ ] main:2::fill:14 [ ] )
|
||||
to:@return
|
11773
src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log
Normal file
11773
src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log
Normal file
File diff suppressed because it is too large
Load Diff
374
src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.sym
Normal file
374
src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.sym
Normal file
@ -0,0 +1,374 @@
|
||||
(label) @27
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word/dword/signed dword) 53281
|
||||
(byte*) BGCOL2
|
||||
(const byte*) BGCOL2#0 BGCOL2 = ((byte*))(word/dword/signed dword) 53282
|
||||
(byte*) BGCOL3
|
||||
(const byte*) BGCOL3#0 BGCOL3 = ((byte*))(word/dword/signed dword) 53283
|
||||
(byte) BLACK
|
||||
(const byte) BLACK#0 BLACK = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte*) BORDERCOL
|
||||
(const byte*) BORDERCOL#0 BORDERCOL = ((byte*))(word/dword/signed dword) 53280
|
||||
(byte*) COLS
|
||||
(const byte*) COLS#0 COLS = ((byte*))(word/dword/signed dword) 55296
|
||||
(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) DARK_GREY
|
||||
(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11
|
||||
(byte*) LOGO
|
||||
(const byte*) LOGO#0 LOGO = ((byte*))(word/signed word/dword/signed dword) 8192
|
||||
(dword) PI2_u4f28
|
||||
(const dword) PI2_u4f28#0 PI2_u4f28 = (dword/signed dword) 1686629713
|
||||
(dword) PI_HALF_u4f28
|
||||
(const dword) PI_HALF_u4f28#0 PI_HALF_u4f28 = (dword/signed dword) 421657428
|
||||
(dword) PI_u4f28
|
||||
(const dword) PI_u4f28#0 PI_u4f28 = (dword/signed dword) 843314857
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
(byte) VIC_MCM
|
||||
(const byte) VIC_MCM#0 VIC_MCM = (byte/signed byte/word/signed word/dword/signed dword) 16
|
||||
(byte) WHITE
|
||||
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(word) XSIN_SIZE
|
||||
(const word) XSIN_SIZE#0 XSIN_SIZE = (word/signed word/dword/signed dword) 512
|
||||
(dword()) div32u16u((dword) div32u16u::dividend , (word) div32u16u::divisor)
|
||||
(label) div32u16u::@2
|
||||
(label) div32u16u::@3
|
||||
(label) div32u16u::@return
|
||||
(dword) div32u16u::dividend
|
||||
(word) div32u16u::divisor
|
||||
(dword) div32u16u::quotient
|
||||
(word) div32u16u::quotient_hi
|
||||
(word) div32u16u::quotient_hi#0 quotient_hi zp ZP_WORD:16 0.8
|
||||
(word) div32u16u::quotient_lo
|
||||
(word) div32u16u::quotient_lo#0 quotient_lo zp ZP_WORD:14 4.0
|
||||
(dword) div32u16u::return
|
||||
(dword) div32u16u::return#0 return zp ZP_DWORD:27 1.3333333333333333
|
||||
(dword) div32u16u::return#2 return zp ZP_DWORD:27 4.0
|
||||
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
||||
(byte~) divr16u::$1 reg byte a 22.0
|
||||
(byte~) divr16u::$2 reg byte a 22.0
|
||||
(label) divr16u::@1
|
||||
(label) divr16u::@2
|
||||
(label) divr16u::@3
|
||||
(label) divr16u::@4
|
||||
(label) divr16u::@5
|
||||
(label) divr16u::@6
|
||||
(label) divr16u::@return
|
||||
(word) divr16u::dividend
|
||||
(word) divr16u::dividend#0 dividend zp ZP_WORD:8 2.75
|
||||
(word) divr16u::dividend#3 dividend zp ZP_WORD:8 5.0
|
||||
(word) divr16u::dividend#5 dividend zp ZP_WORD:8 2.0
|
||||
(word) divr16u::divisor
|
||||
(byte) divr16u::i
|
||||
(byte) divr16u::i#1 reg byte x 16.5
|
||||
(byte) divr16u::i#2 reg byte x 1.6923076923076923
|
||||
(word) divr16u::quotient
|
||||
(word) divr16u::quotient#1 quotient zp ZP_WORD:14 16.5
|
||||
(word) divr16u::quotient#2 quotient zp ZP_WORD:14 11.0
|
||||
(word) divr16u::quotient#3 quotient zp ZP_WORD:14 2.75
|
||||
(word) divr16u::rem
|
||||
(word) divr16u::rem#0 rem zp ZP_WORD:2 8.25
|
||||
(word) divr16u::rem#1 rem zp ZP_WORD:2 22.0
|
||||
(word) divr16u::rem#10 rem zp ZP_WORD:2 4.0
|
||||
(word) divr16u::rem#11 rem zp ZP_WORD:2 11.666666666666666
|
||||
(word) divr16u::rem#2 rem zp ZP_WORD:2 22.0
|
||||
(word) divr16u::rem#4 rem zp ZP_WORD:2 4.0
|
||||
(word) divr16u::rem#5 rem zp ZP_WORD:2 24.0
|
||||
(word) divr16u::rem#6 rem zp ZP_WORD:2 11.0
|
||||
(word) divr16u::return
|
||||
(word) divr16u::return#0 return zp ZP_WORD:14 5.285714285714286
|
||||
(word) divr16u::return#2 return zp ZP_WORD:14 4.0
|
||||
(word) divr16u::return#3 return zp ZP_WORD:14 4.0
|
||||
(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
|
||||
(label) fill::@1
|
||||
(label) fill::@return
|
||||
(byte*) fill::addr
|
||||
(byte*) fill::addr#0 addr zp ZP_WORD:2 2.0
|
||||
(byte*) fill::addr#1 addr zp ZP_WORD:2 16.5
|
||||
(byte*) fill::addr#2 addr zp ZP_WORD:2 17.5
|
||||
(byte*) fill::end
|
||||
(byte*) fill::end#0 end zp ZP_WORD:8 2.6
|
||||
(word) fill::size
|
||||
(byte*) fill::start
|
||||
(byte) fill::val
|
||||
(byte) fill::val#3 reg byte x 1.8333333333333333
|
||||
(void()) loop()
|
||||
(signed word*~) loop::$1 $1 zp ZP_WORD:8 22.0
|
||||
(label) loop::@1
|
||||
(label) loop::@15
|
||||
(label) loop::@16
|
||||
(label) loop::@4
|
||||
(label) loop::@6
|
||||
(label) loop::@7
|
||||
(signed word) loop::xpos
|
||||
(signed word) loop::xpos#0 xpos zp ZP_WORD:8 22.0
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@6
|
||||
(label) main::@return
|
||||
(byte) main::ch
|
||||
(byte) main::ch#1 reg byte x 16.5
|
||||
(byte) main::ch#2 reg byte x 22.0
|
||||
(label) main::toD0181
|
||||
(word~) main::toD0181_$0
|
||||
(word~) main::toD0181_$1
|
||||
(word~) main::toD0181_$2
|
||||
(byte~) main::toD0181_$3
|
||||
(word~) main::toD0181_$4
|
||||
(byte~) main::toD0181_$5
|
||||
(byte~) main::toD0181_$6
|
||||
(byte~) main::toD0181_$7
|
||||
(byte~) main::toD0181_$8
|
||||
(byte*) main::toD0181_gfx
|
||||
(byte) main::toD0181_return
|
||||
(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) LOGO#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15
|
||||
(byte*) main::toD0181_screen
|
||||
(signed dword()) mul16s((signed word) mul16s::a , (signed word) mul16s::b)
|
||||
(word~) mul16s::$16 $16 zp ZP_WORD:14 4.0
|
||||
(word~) mul16s::$6 $6 zp ZP_WORD:14 4.0
|
||||
(label) mul16s::@1
|
||||
(label) mul16s::@2
|
||||
(label) mul16s::@3
|
||||
(label) mul16s::@6
|
||||
(label) mul16s::@return
|
||||
(signed word) mul16s::a
|
||||
(signed word) mul16s::a#0 a zp ZP_WORD:23 2.6
|
||||
(signed word) mul16s::b
|
||||
(dword) mul16s::m
|
||||
(dword) mul16s::m#0 m zp ZP_DWORD:10 2.0
|
||||
(dword) mul16s::m#1 m zp ZP_DWORD:10 4.0
|
||||
(dword) mul16s::m#4 m zp ZP_DWORD:10 6.0
|
||||
(signed dword) mul16s::return
|
||||
(signed dword) mul16s::return#0 return zp ZP_DWORD:10 4.333333333333333
|
||||
(signed dword) mul16s::return#2 return zp ZP_DWORD:10 22.0
|
||||
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
|
||||
(byte/word~) mul16u::$1 reg byte a 202.0
|
||||
(label) mul16u::@1
|
||||
(label) mul16u::@2
|
||||
(label) mul16u::@4
|
||||
(label) mul16u::@7
|
||||
(label) mul16u::@return
|
||||
(word) mul16u::a
|
||||
(word) mul16u::a#0 a zp ZP_WORD:16 101.0
|
||||
(word) mul16u::a#2 a zp ZP_WORD:16 2.0
|
||||
(word) mul16u::a#3 a zp ZP_WORD:16 67.66666666666666
|
||||
(word) mul16u::a#6 a zp ZP_WORD:16 3.0
|
||||
(word~) mul16u::a#8 a zp ZP_WORD:16 4.0
|
||||
(word) mul16u::b
|
||||
(word) mul16u::b#1 b zp ZP_WORD:14 4.0
|
||||
(word) mul16u::b#2 b zp ZP_WORD:14 4.0
|
||||
(dword) mul16u::mb
|
||||
(dword) mul16u::mb#0 mb zp ZP_DWORD:18 4.0
|
||||
(dword) mul16u::mb#1 mb zp ZP_DWORD:18 202.0
|
||||
(dword) mul16u::mb#2 mb zp ZP_DWORD:18 43.57142857142858
|
||||
(dword) mul16u::res
|
||||
(dword) mul16u::res#1 res zp ZP_DWORD:10 202.0
|
||||
(dword) mul16u::res#2 res zp ZP_DWORD:10 43.85714285714286
|
||||
(dword) mul16u::res#6 res zp ZP_DWORD:10 101.0
|
||||
(dword) mul16u::return
|
||||
(dword) mul16u::return#2 return zp ZP_DWORD:10 4.0
|
||||
(dword) mul16u::return#3 return zp ZP_DWORD:10 4.0
|
||||
(word()) mulu16_sel((word) mulu16_sel::v1 , (word) mulu16_sel::v2 , (byte) mulu16_sel::select)
|
||||
(dword~) mulu16_sel::$0 $0 zp ZP_DWORD:10 4.0
|
||||
(dword~) mulu16_sel::$1 $1 zp ZP_DWORD:10 4.0
|
||||
(label) mulu16_sel::@2
|
||||
(label) mulu16_sel::@return
|
||||
(word) mulu16_sel::return
|
||||
(word) mulu16_sel::return#0 return zp ZP_WORD:14 4.0
|
||||
(word) mulu16_sel::return#1 return#1 zp ZP_WORD:25 4.0
|
||||
(word) mulu16_sel::return#10 return#10 zp ZP_WORD:25 4.0
|
||||
(word) mulu16_sel::return#11 return zp ZP_WORD:14 4.0
|
||||
(word) mulu16_sel::return#12 return zp ZP_WORD:14 1.714285714285714
|
||||
(word) mulu16_sel::return#2 return zp ZP_WORD:14 4.0
|
||||
(byte) mulu16_sel::select
|
||||
(byte) mulu16_sel::select#5 reg byte x 0.3333333333333333
|
||||
(word) mulu16_sel::v1
|
||||
(word) mulu16_sel::v1#0 v1 zp ZP_WORD:25 2.0
|
||||
(word) mulu16_sel::v1#1 v1 zp ZP_WORD:25 2.0
|
||||
(word) mulu16_sel::v1#2 v1 zp ZP_WORD:25 4.0
|
||||
(word) mulu16_sel::v1#3 v1 zp ZP_WORD:25 2.0
|
||||
(word) mulu16_sel::v1#4 v1 zp ZP_WORD:25 2.0
|
||||
(word) mulu16_sel::v1#5 v1 zp ZP_WORD:25 12.0
|
||||
(word) mulu16_sel::v2
|
||||
(word) mulu16_sel::v2#0 v2 zp ZP_WORD:14 4.0
|
||||
(word) mulu16_sel::v2#1 v2 zp ZP_WORD:14 4.0
|
||||
(word) mulu16_sel::v2#3 v2 zp ZP_WORD:14 4.0
|
||||
(word) mulu16_sel::v2#4 v2 zp ZP_WORD:14 4.0
|
||||
(word) mulu16_sel::v2#5 v2 zp ZP_WORD:14 5.0
|
||||
(word) rem16u
|
||||
(word) rem16u#1 rem16u zp ZP_WORD:2 0.8
|
||||
(void()) render_logo((signed word) render_logo::xpos)
|
||||
(byte~) render_logo::$0 reg byte a 4.0
|
||||
(byte~) render_logo::$1 reg byte a 4.0
|
||||
(byte~) render_logo::$2 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) render_logo::$22 reg byte a 202.0
|
||||
(byte/signed word/word/dword/signed dword~) render_logo::$26 reg byte a 202.0
|
||||
(signed word~) render_logo::$3 $3 zp ZP_WORD:14 4.0
|
||||
(byte/signed word/word/dword/signed dword~) render_logo::$30 reg byte a 202.0
|
||||
(byte/word/signed word/dword/signed dword~) render_logo::$34 reg byte a 202.0
|
||||
(byte/word/signed word/dword/signed dword~) render_logo::$38 reg byte a 202.0
|
||||
(signed byte~) render_logo::$39 reg byte a 2.0
|
||||
(byte/signed word/word/dword/signed dword~) render_logo::$45 reg byte a 202.0
|
||||
(byte/signed word/word/dword/signed dword~) render_logo::$49 reg byte a 202.0
|
||||
(byte/signed word/word/dword/signed dword~) render_logo::$53 reg byte a 202.0
|
||||
(byte/word/signed word/dword/signed dword~) render_logo::$57 reg byte a 202.0
|
||||
(byte/word/signed word/dword/signed dword~) render_logo::$61 reg byte a 202.0
|
||||
(label) render_logo::@1
|
||||
(label) render_logo::@10
|
||||
(label) render_logo::@12
|
||||
(label) render_logo::@13
|
||||
(label) render_logo::@2
|
||||
(label) render_logo::@3
|
||||
(label) render_logo::@5
|
||||
(label) render_logo::@6
|
||||
(label) render_logo::@9
|
||||
(label) render_logo::@return
|
||||
(byte) render_logo::logo_idx
|
||||
(byte) render_logo::logo_idx#2 reg byte x 202.0
|
||||
(byte) render_logo::logo_idx#3 reg byte x 202.0
|
||||
(byte) render_logo::logo_idx#4 reg byte x 57.714285714285715
|
||||
(byte) render_logo::logo_idx#5 reg byte x 65.07142857142857
|
||||
(byte~) render_logo::logo_idx#9 reg byte x 4.0
|
||||
(byte) render_logo::logo_start
|
||||
(byte) render_logo::screen_idx
|
||||
(byte) render_logo::screen_idx#10 reg byte y 69.92307692307692
|
||||
(byte) render_logo::screen_idx#11 reg byte y 126.25
|
||||
(byte) render_logo::screen_idx#13 reg byte y 126.25
|
||||
(byte) render_logo::screen_idx#2 reg byte y 202.0
|
||||
(byte) render_logo::screen_idx#3 reg byte y 101.0
|
||||
(byte) render_logo::screen_idx#4 reg byte y 101.0
|
||||
(byte) render_logo::screen_idx#5 reg byte y 202.0
|
||||
(byte) render_logo::screen_idx#8 reg byte y 77.6923076923077
|
||||
(signed byte) render_logo::x_char
|
||||
(signed byte) render_logo::x_char#0 x_char zp ZP_BYTE:22 0.36363636363636365
|
||||
(signed word) render_logo::xpos
|
||||
(signed word) render_logo::xpos#0 xpos zp ZP_WORD:8 2.4285714285714284
|
||||
(signed word()) sin16s((dword) sin16s::x)
|
||||
(dword~) sin16s::$6 $6 zp ZP_DWORD:10 4.0
|
||||
(label) sin16s::@1
|
||||
(label) sin16s::@10
|
||||
(label) sin16s::@11
|
||||
(label) sin16s::@12
|
||||
(label) sin16s::@15
|
||||
(label) sin16s::@2
|
||||
(label) sin16s::@3
|
||||
(label) sin16s::@4
|
||||
(label) sin16s::@5
|
||||
(label) sin16s::@6
|
||||
(label) sin16s::@8
|
||||
(label) sin16s::@9
|
||||
(label) sin16s::@return
|
||||
(byte) sin16s::isUpper
|
||||
(byte) sin16s::isUpper#2 isUpper zp ZP_BYTE:22 0.06060606060606061
|
||||
(signed word) sin16s::return
|
||||
(signed word) sin16s::return#0 return zp ZP_WORD:23 22.0
|
||||
(signed word) sin16s::return#1 return zp ZP_WORD:23 5.0
|
||||
(signed word~) sin16s::return#5 return zp ZP_WORD:23 4.0
|
||||
(signed word) sin16s::sinx
|
||||
(signed word) sin16s::sinx#1 sinx zp ZP_WORD:23 4.0
|
||||
(word) sin16s::usinx
|
||||
(word) sin16s::usinx#0 usinx zp ZP_WORD:23 0.3333333333333333
|
||||
(word) sin16s::usinx#1 usinx zp ZP_WORD:23 1.0
|
||||
(dword) sin16s::x
|
||||
(dword) sin16s::x#0 x zp ZP_DWORD:10 8.5
|
||||
(dword) sin16s::x#1 x zp ZP_DWORD:10 4.0
|
||||
(dword) sin16s::x#2 x zp ZP_DWORD:10 4.0
|
||||
(dword) sin16s::x#4 x zp ZP_DWORD:10 5.0
|
||||
(dword) sin16s::x#6 x zp ZP_DWORD:10 6.0
|
||||
(word) sin16s::x1
|
||||
(word) sin16s::x1#0 x1 zp ZP_WORD:31 0.6363636363636365
|
||||
(word) sin16s::x2
|
||||
(word) sin16s::x2#0 x2 zp ZP_WORD:25 4.0
|
||||
(word) sin16s::x3
|
||||
(word) sin16s::x3#0 x3 zp ZP_WORD:25 1.0
|
||||
(word) sin16s::x3_6
|
||||
(word) sin16s::x3_6#0 x3_6 zp ZP_WORD:14 4.0
|
||||
(word) sin16s::x4
|
||||
(word) sin16s::x4#0 x4 zp ZP_WORD:25 4.0
|
||||
(word) sin16s::x5
|
||||
(word) sin16s::x5#0 x5 zp ZP_WORD:14 4.0
|
||||
(word) sin16s::x5_128
|
||||
(word) sin16s::x5_128#0 x5_128 zp ZP_WORD:14 4.0
|
||||
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
|
||||
(signed dword~) sin16s_gen2::$5 $5 zp ZP_DWORD:10 22.0
|
||||
(word~) sin16s_gen2::$6 $6 zp ZP_WORD:14 11.0
|
||||
(signed word~) sin16s_gen2::$8 $8 zp ZP_WORD:14 22.0
|
||||
(label) sin16s_gen2::@1
|
||||
(label) sin16s_gen2::@3
|
||||
(label) sin16s_gen2::@4
|
||||
(label) sin16s_gen2::@5
|
||||
(label) sin16s_gen2::@return
|
||||
(signed word) sin16s_gen2::ampl
|
||||
(const signed word) sin16s_gen2::ampl#0 ampl = (const signed word) sin16s_gen2::max#0-(const signed word) sin16s_gen2::min#0
|
||||
(word) sin16s_gen2::i
|
||||
(word) sin16s_gen2::i#1 i zp ZP_WORD:8 16.5
|
||||
(word) sin16s_gen2::i#2 i zp ZP_WORD:8 1.6923076923076923
|
||||
(signed word) sin16s_gen2::max
|
||||
(const signed word) sin16s_gen2::max#0 max = (word/signed word/dword/signed dword) 320
|
||||
(signed word) sin16s_gen2::min
|
||||
(const signed word) sin16s_gen2::min#0 min = -(word/signed word/dword/signed dword) 320
|
||||
(signed word) sin16s_gen2::offs
|
||||
(const signed word) sin16s_gen2::offs#0 offs = (const signed word) sin16s_gen2::min#0+(const signed word) sin16s_gen2::ampl#0>>(byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(signed word*) sin16s_gen2::sintab
|
||||
(signed word*) sin16s_gen2::sintab#0 sintab zp ZP_WORD:2 5.5
|
||||
(signed word*) sin16s_gen2::sintab#2 sintab zp ZP_WORD:2 3.0
|
||||
(dword) sin16s_gen2::step
|
||||
(dword) sin16s_gen2::step#0 step zp ZP_DWORD:27 0.8125
|
||||
(word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::x
|
||||
(dword) sin16s_gen2::x#1 x zp ZP_DWORD:4 7.333333333333333
|
||||
(dword) sin16s_gen2::x#2 x zp ZP_DWORD:4 2.75
|
||||
(signed word[512]) xsin
|
||||
(const signed word[512]) xsin#0 xsin = { fill( 512, 0) }
|
||||
(word) xsin_idx
|
||||
(word) xsin_idx#11 xsin_idx zp ZP_WORD:2 4.714285714285714
|
||||
(word) xsin_idx#19 xsin_idx zp ZP_WORD:2 11.0
|
||||
(word) xsin_idx#3 xsin_idx zp ZP_WORD:2 11.0
|
||||
|
||||
reg byte x [ main::ch#2 main::ch#1 ]
|
||||
zp ZP_WORD:2 [ xsin_idx#11 xsin_idx#19 xsin_idx#3 sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 fill::addr#2 fill::addr#0 fill::addr#1 ]
|
||||
reg byte y [ render_logo::screen_idx#8 render_logo::screen_idx#13 render_logo::screen_idx#2 render_logo::screen_idx#3 ]
|
||||
reg byte x [ render_logo::logo_idx#4 render_logo::logo_idx#2 ]
|
||||
reg byte x [ render_logo::logo_idx#5 render_logo::logo_idx#9 render_logo::logo_idx#3 ]
|
||||
reg byte y [ render_logo::screen_idx#11 render_logo::screen_idx#5 render_logo::screen_idx#10 render_logo::screen_idx#4 ]
|
||||
zp ZP_DWORD:4 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ]
|
||||
zp ZP_WORD:8 [ sin16s_gen2::i#2 sin16s_gen2::i#1 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 loop::$1 loop::xpos#0 render_logo::xpos#0 fill::end#0 ]
|
||||
zp ZP_DWORD:10 [ mul16s::m#4 mul16s::m#1 mul16s::m#0 mul16u::return#2 mul16s::return#0 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#3 mul16s::return#2 sin16s_gen2::$5 mulu16_sel::$0 mulu16_sel::$1 sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 sin16s::$6 ]
|
||||
zp ZP_WORD:14 [ mul16u::b#2 mul16u::b#1 mulu16_sel::v2#5 mulu16_sel::v2#3 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 render_logo::$3 sin16s_gen2::$6 sin16s_gen2::$8 mul16s::$6 mul16s::$16 mulu16_sel::return#0 mulu16_sel::return#12 mulu16_sel::return#2 sin16s::x3_6#0 mulu16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 ]
|
||||
zp ZP_WORD:16 [ mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 div32u16u::quotient_hi#0 ]
|
||||
zp ZP_DWORD:18 [ mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ]
|
||||
zp ZP_BYTE:22 [ sin16s::isUpper#2 render_logo::x_char#0 ]
|
||||
zp ZP_WORD:23 [ sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 mul16s::a#0 sin16s::usinx#0 ]
|
||||
zp ZP_WORD:25 [ mulu16_sel::v1#5 mulu16_sel::v1#3 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#1 mulu16_sel::return#10 ]
|
||||
reg byte x [ mulu16_sel::select#5 ]
|
||||
reg byte x [ divr16u::i#2 divr16u::i#1 ]
|
||||
reg byte x [ fill::val#3 ]
|
||||
reg byte a [ render_logo::$0 ]
|
||||
reg byte a [ render_logo::$1 ]
|
||||
reg byte a [ render_logo::$2 ]
|
||||
reg byte a [ render_logo::$22 ]
|
||||
reg byte a [ render_logo::$26 ]
|
||||
reg byte a [ render_logo::$30 ]
|
||||
reg byte a [ render_logo::$34 ]
|
||||
reg byte a [ render_logo::$38 ]
|
||||
reg byte a [ render_logo::$39 ]
|
||||
reg byte a [ render_logo::$45 ]
|
||||
reg byte a [ render_logo::$49 ]
|
||||
reg byte a [ render_logo::$53 ]
|
||||
reg byte a [ render_logo::$57 ]
|
||||
reg byte a [ render_logo::$61 ]
|
||||
zp ZP_DWORD:27 [ div32u16u::return#2 sin16s_gen2::step#0 div32u16u::return#0 ]
|
||||
reg byte a [ mul16u::$1 ]
|
||||
zp ZP_WORD:31 [ sin16s::x1#0 ]
|
||||
reg byte a [ divr16u::$1 ]
|
||||
reg byte a [ divr16u::$2 ]
|
@ -157,7 +157,7 @@ inline void vicSelectGfxBank(byte* gfx) {
|
||||
|
||||
Adding pre/post-modifier *((var) main::$10) ← ++ *((var) main::$10)
|
||||
Adding pre/post-modifier (byte*) fill::addr ← ++ (byte*) fill::addr
|
||||
Added resource C:\c64\kickc\src\test\java\dk\camelot64\kickc\test\kc\logo.png
|
||||
Added resource /Users/jespergravgaard/c64/kickc/src/test/java/dk/camelot64/kickc/test/kc/logo.png
|
||||
SYMBOLS
|
||||
(label) @1
|
||||
(label) @2
|
||||
@ -1217,7 +1217,7 @@ bbegin:
|
||||
jmp b5
|
||||
//SEG3 @5
|
||||
b5:
|
||||
//SEG4 kickasm {{ .label pc_restore = * .pc = $2000 logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) .pc = pc_restore }}
|
||||
//SEG4 kickasm {{ .label pc_restore = * .pc = $2000 logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) .pc = pc_restore }}
|
||||
.label pc_restore = *
|
||||
.pc = $2000
|
||||
logo:
|
||||
@ -1411,9 +1411,9 @@ Uplift Scope [fill] 36: zp ZP_WORD:6 [ fill::addr#2 fill::addr#0 fill::addr#1 ]
|
||||
Uplift Scope [main] 38.5: zp ZP_BYTE:2 [ main::ch#2 main::ch#1 ]
|
||||
Uplift Scope []
|
||||
|
||||
Uplifting [fill] best 2205 combination zp ZP_WORD:6 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:8 [ fill::end#0 ] zp ZP_WORD:3 [ fill::size#2 ] reg byte x [ fill::val#3 ]
|
||||
Uplifting [main] best 2085 combination reg byte x [ main::ch#2 main::ch#1 ]
|
||||
Uplifting [] best 2085 combination
|
||||
Uplifting [fill] best 3921 combination zp ZP_WORD:6 [ fill::addr#2 fill::addr#0 fill::addr#1 ] zp ZP_WORD:8 [ fill::end#0 ] zp ZP_WORD:3 [ fill::size#2 ] reg byte x [ fill::val#3 ]
|
||||
Uplifting [main] best 3801 combination reg byte x [ main::ch#2 main::ch#1 ]
|
||||
Uplifting [] best 3801 combination
|
||||
Coalescing zero page register with common assignment [ zp ZP_WORD:3 [ fill::size#2 ] ] with [ zp ZP_WORD:8 [ fill::end#0 ] ] - score: 1
|
||||
Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ fill::size#2 fill::end#0 ]
|
||||
Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ fill::addr#2 fill::addr#0 fill::addr#1 ]
|
||||
@ -1443,7 +1443,7 @@ bbegin:
|
||||
jmp b5
|
||||
//SEG3 @5
|
||||
b5:
|
||||
//SEG4 kickasm {{ .label pc_restore = * .pc = $2000 logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) .pc = pc_restore }}
|
||||
//SEG4 kickasm {{ .label pc_restore = * .pc = $2000 logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) .pc = pc_restore }}
|
||||
.label pc_restore = *
|
||||
.pc = $2000
|
||||
logo:
|
||||
@ -1711,7 +1711,7 @@ zp ZP_WORD:4 [ fill::addr#2 fill::addr#0 fill::addr#1 ]
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 1862
|
||||
Score: 3578
|
||||
|
||||
//SEG0 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
@ -1734,7 +1734,7 @@ Score: 1862
|
||||
.label LOGO = $2000
|
||||
//SEG2 @begin
|
||||
//SEG3 @5
|
||||
//SEG4 kickasm {{ .label pc_restore = * .pc = $2000 logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) .pc = pc_restore }}
|
||||
//SEG4 kickasm {{ .label pc_restore = * .pc = $2000 logo: .var logoPic = LoadPicture("logo.png", List().add($444444, $808080, $000000, $ffffff)) .for (var y=0; y<6 ; y++) .for (var x=0;x<40; x++) .for(var cp=0; cp<8; cp++) .byte logoPic.getMulticolorByte(x,cp+y*8) .pc = pc_restore }}
|
||||
.label pc_restore = *
|
||||
.pc = $2000
|
||||
logo:
|
||||
|
@ -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 [ ] ( )
|
||||
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 [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
|
@ -58,6 +58,23 @@ void sin16s_gen(signed word* sintab, word wavelength) {
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed word sinus table - with values in the range min-max.
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
void sin16s_gen2(signed word* sintab, word wavelength, signed word min, signed word max) {
|
||||
signed word ampl = max-min;
|
||||
signed word offs = min + ampl>>1; // ampl is always positive so shifting left does not alter the sign
|
||||
// u[4.28] step = PI*2/wavelength
|
||||
dword step = div32u16u(PI2_u4f28, wavelength); // u[4.28]
|
||||
// Iterate over the table
|
||||
dword x = 0; // u[4.28]
|
||||
for( word i=0; i<wavelength; i++) {
|
||||
*sintab = offs + (signed word)>mul16s(sin16s(x), ampl); // The signed sin() has values [-7fff;7fff] = [-1/2 ; 1/2], so ampl*sin has the right amplitude
|
||||
sintab = sintab + 2;
|
||||
x = x + step;
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed byte sinus table - on the full -$7f - $7f range
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
@ -380,6 +397,7 @@ signed dword mul16s(signed word a, signed word b) {
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (word) sin16s_gen::i ← ++ (word) sin16s_gen::i
|
||||
Adding pre/post-modifier (word) sin16s_gen2::i ← ++ (word) sin16s_gen2::i
|
||||
Adding pre/post-modifier (signed byte*) sin8s_gen::sintab ← ++ (signed byte*) sin8s_gen::sintab
|
||||
Adding pre/post-modifier (word) sin8s_gen::i ← ++ (word) sin8s_gen::i
|
||||
Adding pre/post-modifier (byte) sin8s::usinx ← -- (byte) sin8s::usinx
|
||||
@ -538,6 +556,7 @@ SYMBOLS
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @4
|
||||
(label) @5
|
||||
(label) @6
|
||||
@ -1069,6 +1088,31 @@ SYMBOLS
|
||||
(dword) sin16s_gen::step
|
||||
(word) sin16s_gen::wavelength
|
||||
(dword) sin16s_gen::x
|
||||
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
|
||||
(signed word~) sin16s_gen2::$0
|
||||
(signed word~) sin16s_gen2::$1
|
||||
(dword~) sin16s_gen2::$10
|
||||
(bool~) sin16s_gen2::$11
|
||||
(signed word~) sin16s_gen2::$2
|
||||
(dword~) sin16s_gen2::$3
|
||||
(signed word~) sin16s_gen2::$4
|
||||
(signed dword~) sin16s_gen2::$5
|
||||
(word~) sin16s_gen2::$6
|
||||
(signed word~) sin16s_gen2::$7
|
||||
(signed word~) sin16s_gen2::$8
|
||||
(signed word*~) sin16s_gen2::$9
|
||||
(label) sin16s_gen2::@1
|
||||
(label) sin16s_gen2::@2
|
||||
(label) sin16s_gen2::@return
|
||||
(signed word) sin16s_gen2::ampl
|
||||
(word) sin16s_gen2::i
|
||||
(signed word) sin16s_gen2::max
|
||||
(signed word) sin16s_gen2::min
|
||||
(signed word) sin16s_gen2::offs
|
||||
(signed word*) sin16s_gen2::sintab
|
||||
(dword) sin16s_gen2::step
|
||||
(word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::x
|
||||
(signed byte()) sin8s((word) sin8s::x)
|
||||
(bool~) sin8s::$0
|
||||
(bool~) sin8s::$1
|
||||
@ -1667,6 +1711,39 @@ sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@2
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
sin16s_gen2: scope:[sin16s_gen2] from
|
||||
(signed word~) sin16s_gen2::$0 ← (signed word) sin16s_gen2::max - (signed word) sin16s_gen2::min
|
||||
(signed word) sin16s_gen2::ampl ← (signed word~) sin16s_gen2::$0
|
||||
(signed word~) sin16s_gen2::$1 ← (signed word) sin16s_gen2::ampl >> (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(signed word~) sin16s_gen2::$2 ← (signed word) sin16s_gen2::min + (signed word~) sin16s_gen2::$1
|
||||
(signed word) sin16s_gen2::offs ← (signed word~) sin16s_gen2::$2
|
||||
(dword~) sin16s_gen2::$3 ← call div32u16u (dword) PI2_u4f28 (word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::step ← (dword~) sin16s_gen2::$3
|
||||
(dword) sin16s_gen2::x ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) sin16s_gen2::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:sin16s_gen2::@1
|
||||
sin16s_gen2::@1: scope:[sin16s_gen2] from sin16s_gen2 sin16s_gen2::@1
|
||||
(signed word~) sin16s_gen2::$4 ← call sin16s (dword) sin16s_gen2::x
|
||||
(signed dword~) sin16s_gen2::$5 ← call mul16s (signed word~) sin16s_gen2::$4 (signed word) sin16s_gen2::ampl
|
||||
(word~) sin16s_gen2::$6 ← > (signed dword~) sin16s_gen2::$5
|
||||
(signed word~) sin16s_gen2::$7 ← ((signed word)) (word~) sin16s_gen2::$6
|
||||
(signed word~) sin16s_gen2::$8 ← (signed word) sin16s_gen2::offs + (signed word~) sin16s_gen2::$7
|
||||
*((signed word*) sin16s_gen2::sintab) ← (signed word~) sin16s_gen2::$8
|
||||
(signed word*~) sin16s_gen2::$9 ← (signed word*) sin16s_gen2::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
(signed word*) sin16s_gen2::sintab ← (signed word*~) sin16s_gen2::$9
|
||||
(dword~) sin16s_gen2::$10 ← (dword) sin16s_gen2::x + (dword) sin16s_gen2::step
|
||||
(dword) sin16s_gen2::x ← (dword~) sin16s_gen2::$10
|
||||
(word) sin16s_gen2::i ← ++ (word) sin16s_gen2::i
|
||||
(bool~) sin16s_gen2::$11 ← (word) sin16s_gen2::i < (word) sin16s_gen2::wavelength
|
||||
if((bool~) sin16s_gen2::$11) goto sin16s_gen2::@1
|
||||
to:sin16s_gen2::@2
|
||||
sin16s_gen2::@2: scope:[sin16s_gen2] from sin16s_gen2::@1
|
||||
to:sin16s_gen2::@return
|
||||
sin16s_gen2::@return: scope:[sin16s_gen2] from sin16s_gen2::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
sin8s_gen: scope:[sin8s_gen] from
|
||||
(word~) sin8s_gen::$0 ← call div16u (word) PI2_u4f12 (word) sin8s_gen::wavelength
|
||||
(word) sin8s_gen::step ← (word~) sin8s_gen::$0
|
||||
@ -1688,8 +1765,8 @@ sin8s_gen::@2: scope:[sin8s_gen] from sin8s_gen::@1
|
||||
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
sin16s: scope:[sin16s] from
|
||||
(byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28
|
||||
@ -1751,8 +1828,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3 sin16s::@7
|
||||
to:@return
|
||||
sin16s::@7: scope:[sin16s] from
|
||||
to:sin16s::@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
sin8s: scope:[sin8s] from
|
||||
(byte) sin8s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin8s::$0 ← (word) sin8s::x >= (word) PI_u4f12
|
||||
@ -1822,8 +1899,8 @@ sin8s::@return: scope:[sin8s] from sin8s::@4 sin8s::@9
|
||||
to:@return
|
||||
sin8s::@9: scope:[sin8s] from
|
||||
to:sin8s::@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
mulu16_sel: scope:[mulu16_sel] from
|
||||
(dword~) mulu16_sel::$0 ← call mul16u (word) mulu16_sel::v1 (word) mulu16_sel::v2
|
||||
(dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select
|
||||
@ -1836,8 +1913,8 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel mulu16_sel::@1
|
||||
to:@return
|
||||
mulu16_sel::@1: scope:[mulu16_sel] from
|
||||
to:mulu16_sel::@return
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
mulu8_sel: scope:[mulu8_sel] from
|
||||
(word~) mulu8_sel::$0 ← call mul8u (byte) mulu8_sel::v1 (byte) mulu8_sel::v2
|
||||
(word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select
|
||||
@ -1850,11 +1927,11 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel mulu8_sel::@1
|
||||
to:@return
|
||||
mulu8_sel::@1: scope:[mulu8_sel] from
|
||||
to:mulu8_sel::@return
|
||||
@19: scope:[] from @18
|
||||
@20: scope:[] from @19
|
||||
(byte*) print_screen ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@20
|
||||
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
|
||||
@ -1892,8 +1969,8 @@ print_str_lines::@10: scope:[print_str_lines] from
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
@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
|
||||
@ -1901,8 +1978,8 @@ print_str_ln: scope:[print_str_ln] from
|
||||
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_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -1925,8 +2002,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@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
|
||||
@ -1949,8 +2026,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
|
||||
@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
|
||||
@ -1965,8 +2042,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
|
||||
(bool~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sword::$1 ← ! (bool~) print_sword::$0
|
||||
@ -1984,8 +2061,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
|
||||
(bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sbyte::$1 ← ! (bool~) print_sbyte::$0
|
||||
@ -2003,8 +2080,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
|
||||
@ -2014,8 +2091,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
|
||||
@ -2025,8 +2102,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
|
||||
(bool~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sdword::$1 ← ! (bool~) print_sdword::$0
|
||||
@ -2044,9 +2121,9 @@ 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
|
||||
@30: scope:[] from @29
|
||||
(byte[]) print_hextab ← (string) "0123456789abcdef"
|
||||
to:@30
|
||||
to:@31
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
(void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0)
|
||||
@ -2056,8 +2133,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
|
||||
@ -2065,8 +2142,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
|
||||
@ -2084,8 +2161,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
|
||||
@ -2094,8 +2171,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) }
|
||||
@ -2127,16 +2204,16 @@ 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
|
||||
Removing unused procedure mul8s
|
||||
Removing unused procedure mul8su
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin16s_gen2
|
||||
Removing unused procedure sin8s_gen
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
@ -2147,6 +2224,7 @@ Removing unused procedure print_set_screen
|
||||
Removing unused procedure div8u
|
||||
Removing unused procedure div16u
|
||||
Removing unused procedure divr16s
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin8s
|
||||
Removing unused procedure print_ln
|
||||
Removing unused procedure print_dword
|
||||
@ -2193,28 +2271,29 @@ Removing empty block @12
|
||||
Removing empty block sin16s_gen::@2
|
||||
Removing empty block @14
|
||||
Removing empty block @15
|
||||
Removing empty block sin16s::@7
|
||||
Removing empty block @16
|
||||
Removing empty block sin16s::@7
|
||||
Removing empty block @17
|
||||
Removing empty block mulu16_sel::@1
|
||||
Removing empty block @18
|
||||
Removing empty block @20
|
||||
Removing empty block mulu16_sel::@1
|
||||
Removing empty block @19
|
||||
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 @22
|
||||
Removing empty block @23
|
||||
Removing empty block @24
|
||||
Removing empty block @25
|
||||
Removing empty block @26
|
||||
Removing empty block @27
|
||||
Removing empty block @28
|
||||
Removing empty block @30
|
||||
Removing empty block @29
|
||||
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
|
||||
@ -2417,7 +2496,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3
|
||||
(dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713
|
||||
(dword) PI_u4f28#0 ← (dword/signed dword) 843314857
|
||||
(dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428
|
||||
to:@19
|
||||
to:@20
|
||||
sin16s_gen: scope:[sin16s_gen] from main
|
||||
(signed word*) sin16s_gen::sintab#5 ← phi( main/(signed word*) sin16s_gen::sintab#1 )
|
||||
(word) rem16u#21 ← phi( main/(word) rem16u#23 )
|
||||
@ -2616,12 +2695,12 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2
|
||||
(word) mulu16_sel::return#6 ← (word) mulu16_sel::return#12
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @13
|
||||
@20: scope:[] from @13
|
||||
(word) rem16u#29 ← phi( @13/(word) rem16u#31 )
|
||||
(byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
|
||||
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
|
||||
to:@29
|
||||
to:@30
|
||||
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 )
|
||||
@ -2704,13 +2783,13 @@ print_word::@return: scope:[print_word] from print_word::@2
|
||||
(byte*) print_char_cursor#8 ← (byte*) print_char_cursor#29
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @19
|
||||
(byte*) print_screen#7 ← phi( @19/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#55 ← phi( @19/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#15 ← phi( @19/(byte*) print_line_cursor#0 )
|
||||
(word) rem16u#28 ← phi( @19/(word) rem16u#29 )
|
||||
@30: scope:[] from @20
|
||||
(byte*) print_screen#7 ← phi( @20/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#55 ← phi( @20/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#15 ← phi( @20/(byte*) print_line_cursor#0 )
|
||||
(word) rem16u#28 ← phi( @20/(word) rem16u#29 )
|
||||
(byte[]) print_hextab#0 ← (const string) $0
|
||||
to:@34
|
||||
to:@35
|
||||
print_byte: scope:[print_byte] from print_word print_word::@1
|
||||
(byte*) print_char_cursor#46 ← phi( print_word/(byte*) print_char_cursor#45 print_word::@1/(byte*) print_char_cursor#6 )
|
||||
(byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 )
|
||||
@ -2771,11 +2850,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#53 ← phi( @34/(byte*) print_char_cursor#50 )
|
||||
(byte*) print_line_cursor#13 ← phi( @34/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#5 ← phi( @34/(byte*) print_screen#6 )
|
||||
(word) rem16u#23 ← phi( @34/(word) rem16u#25 )
|
||||
main: scope:[main] from @35
|
||||
(byte*) print_char_cursor#53 ← phi( @35/(byte*) print_char_cursor#50 )
|
||||
(byte*) print_line_cursor#13 ← phi( @35/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#5 ← phi( @35/(byte*) print_screen#6 )
|
||||
(word) rem16u#23 ← phi( @35/(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
|
||||
@ -2873,31 +2952,31 @@ main::@return: scope:[main] from main::@8
|
||||
(byte*) print_char_cursor#20 ← (byte*) print_char_cursor#40
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @29
|
||||
(byte*) print_screen#6 ← phi( @29/(byte*) print_screen#7 )
|
||||
(byte*) print_char_cursor#50 ← phi( @29/(byte*) print_char_cursor#55 )
|
||||
(byte*) print_line_cursor#12 ← phi( @29/(byte*) print_line_cursor#15 )
|
||||
(word) rem16u#25 ← phi( @29/(word) rem16u#28 )
|
||||
@35: scope:[] from @30
|
||||
(byte*) print_screen#6 ← phi( @30/(byte*) print_screen#7 )
|
||||
(byte*) print_char_cursor#50 ← phi( @30/(byte*) print_char_cursor#55 )
|
||||
(byte*) print_line_cursor#12 ← phi( @30/(byte*) print_line_cursor#15 )
|
||||
(word) rem16u#25 ← phi( @30/(word) rem16u#28 )
|
||||
call main
|
||||
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#19 ← phi( @34/(word) rem16u#9 )
|
||||
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#19 ← phi( @35/(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 @35
|
||||
@end: scope:[] from @36
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(const string) $0 = (string) "0123456789abcdef"
|
||||
(label) @13
|
||||
(label) @19
|
||||
(label) @2
|
||||
(label) @29
|
||||
(label) @34
|
||||
(label) @20
|
||||
(label) @30
|
||||
(label) @35
|
||||
(label) @36
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
@ -4000,15 +4079,15 @@ Succesful SSA optimization Pass2NopCastElimination
|
||||
Culled Empty Block (label) @2
|
||||
Culled Empty Block (label) mul16u::@3
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @19
|
||||
Culled Empty Block (label) @20
|
||||
Culled Empty Block (label) print_sword::@3
|
||||
Culled Empty Block (label) print_word::@2
|
||||
Culled Empty Block (label) @29
|
||||
Culled Empty Block (label) @30
|
||||
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) @35
|
||||
Culled Empty Block (label) @36
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: rem16u#1 divr16u::rem#11
|
||||
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
|
||||
@ -4253,7 +4332,7 @@ Constant inlined main::$8 = (const word) main::wavelength#0*(byte/signed byte/wo
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Identical Phi Values (word) divr16u::divisor#6 (const word) main::wavelength#0
|
||||
Succesful SSA optimization Pass2IdenticalPhiElimination
|
||||
Block Sequence Planned @begin @34 @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 @35 @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)
|
||||
@ -4267,9 +4346,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 @34 @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 @35 @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 @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
|
||||
@ -4403,9 +4482,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 @34 @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 @35 @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 @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
|
||||
@ -4452,14 +4531,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 [ ] ( )
|
||||
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 [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
@ -4772,76 +4851,76 @@ divr16u::@return: scope:[divr16u] from divr16u::@6
|
||||
|
||||
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::@1 dominated by main main::@1 main::@5 @34 @begin
|
||||
main::@3 dominated by main main::@1 main::@5 main::@3 @34 @begin
|
||||
main::@2 dominated by main main::@1 main::@2 main::@5 @34 @begin
|
||||
main::@7 dominated by main::@7 main main::@1 main::@2 main::@5 @34 @begin
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@2 main::@5 @34 @begin
|
||||
main::@return dominated by main::@7 main::@8 main main::@1 main::@2 main::@5 @34 @begin main::@return
|
||||
print_str dominated by main main::@1 main::@5 @34 @begin print_str
|
||||
print_str::@1 dominated by main main::@1 main::@5 @34 @begin print_str::@1 print_str
|
||||
print_str::@return dominated by main main::@1 main::@5 @34 @begin print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by main main::@1 main::@5 @34 @begin print_str::@1 print_str::@2 print_str
|
||||
print_sword dominated by main main::@1 main::@2 main::@5 @34 @begin print_sword
|
||||
print_sword::@2 dominated by print_sword::@2 main main::@1 main::@2 main::@5 @34 @begin print_sword
|
||||
print_sword::@4 dominated by print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 @34 @begin print_sword
|
||||
print_sword::@1 dominated by print_sword::@1 main main::@1 main::@2 main::@5 @34 @begin print_sword
|
||||
print_sword::@return dominated by print_sword::@1 main main::@1 main::@2 main::@5 @34 @begin print_sword::@return print_sword
|
||||
print_word dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @34 @begin print_sword
|
||||
print_word::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @34 @begin print_word::@1 print_sword
|
||||
print_word::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @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 @34 @begin print_byte print_sword
|
||||
print_byte::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @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 @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 @34 @begin print_sword
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 main::@5 @34 print_char::@return @begin print_sword
|
||||
print_cls dominated by main main::@5 @34 @begin print_cls
|
||||
print_cls::@1 dominated by main main::@5 @34 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 @34 @begin print_cls::@return print_cls::@1 print_cls
|
||||
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
|
||||
mulu16_sel dominated by main @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mulu16_sel::@2 dominated by main @34 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 @34 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 @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@1 dominated by main mul16u mul16u::@1 @34 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@return dominated by main mul16u mul16u::@1 @34 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 @34 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 @34 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 @34 sin16s @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
div32u16u dominated by main @34 @begin sin16s_gen div32u16u
|
||||
div32u16u::@2 dominated by main div32u16u::@2 @34 @begin sin16s_gen div32u16u
|
||||
div32u16u::@3 dominated by main div32u16u::@2 div32u16u::@3 @34 @begin sin16s_gen div32u16u
|
||||
div32u16u::@return dominated by main div32u16u::@2 div32u16u::@3 @34 @begin sin16s_gen div32u16u div32u16u::@return
|
||||
divr16u dominated by divr16u main @34 @begin sin16s_gen div32u16u
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @34 @begin sin16s_gen div32u16u
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @34 @begin sin16s_gen div32u16u
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @34 @begin sin16s_gen div32u16u
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @34 @begin sin16s_gen div32u16u
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @34 @begin sin16s_gen div32u16u
|
||||
divr16u::@6 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @34 @begin sin16s_gen div32u16u
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @34 @begin sin16s_gen div32u16u divr16u::@return
|
||||
@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::@1 dominated by main main::@1 main::@5 @35 @begin
|
||||
main::@3 dominated by main main::@1 main::@5 main::@3 @35 @begin
|
||||
main::@2 dominated by main main::@1 main::@2 main::@5 @35 @begin
|
||||
main::@7 dominated by main::@7 main main::@1 main::@2 main::@5 @35 @begin
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@2 main::@5 @35 @begin
|
||||
main::@return dominated by main::@7 main::@8 main main::@1 main::@2 main::@5 @35 @begin main::@return
|
||||
print_str dominated by main main::@1 main::@5 @35 @begin print_str
|
||||
print_str::@1 dominated by main main::@1 main::@5 @35 @begin print_str::@1 print_str
|
||||
print_str::@return dominated by main main::@1 main::@5 @35 @begin print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by main main::@1 main::@5 @35 @begin print_str::@1 print_str::@2 print_str
|
||||
print_sword dominated by main main::@1 main::@2 main::@5 @35 @begin print_sword
|
||||
print_sword::@2 dominated by print_sword::@2 main main::@1 main::@2 main::@5 @35 @begin print_sword
|
||||
print_sword::@4 dominated by print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 @35 @begin print_sword
|
||||
print_sword::@1 dominated by print_sword::@1 main main::@1 main::@2 main::@5 @35 @begin print_sword
|
||||
print_sword::@return dominated by print_sword::@1 main main::@1 main::@2 main::@5 @35 @begin print_sword::@return print_sword
|
||||
print_word dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @35 @begin print_sword
|
||||
print_word::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @35 @begin print_word::@1 print_sword
|
||||
print_word::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @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 @35 @begin print_byte print_sword
|
||||
print_byte::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 @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 @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 @35 @begin print_sword
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 main::@5 print_char::@return @35 @begin print_sword
|
||||
print_cls dominated by main main::@5 @35 @begin print_cls
|
||||
print_cls::@1 dominated by main main::@5 @35 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 @35 @begin print_cls::@return print_cls::@1 print_cls
|
||||
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
|
||||
mulu16_sel dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mulu16_sel::@2 dominated by main sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main sin16s @35 @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 sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@1 dominated by main mul16u mul16u::@1 sin16s @35 @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
mul16u::@return dominated by main mul16u mul16u::@1 sin16s @35 @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 sin16s @35 @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 sin16s @35 @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 sin16s @35 @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
|
||||
div32u16u dominated by main @35 @begin sin16s_gen div32u16u
|
||||
div32u16u::@2 dominated by main div32u16u::@2 @35 @begin sin16s_gen div32u16u
|
||||
div32u16u::@3 dominated by main div32u16u::@2 div32u16u::@3 @35 @begin sin16s_gen div32u16u
|
||||
div32u16u::@return dominated by main div32u16u::@2 div32u16u::@3 @35 @begin sin16s_gen div32u16u div32u16u::@return
|
||||
divr16u dominated by divr16u main @35 @begin sin16s_gen div32u16u
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @35 @begin sin16s_gen div32u16u
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @35 @begin sin16s_gen div32u16u
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @35 @begin sin16s_gen div32u16u
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @35 @begin sin16s_gen div32u16u
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @35 @begin sin16s_gen div32u16u
|
||||
divr16u::@6 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @35 @begin sin16s_gen div32u16u
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @35 @begin sin16s_gen div32u16u divr16u::@return
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@8 blocks: null
|
||||
@ -5271,17 +5350,17 @@ INITIAL ASM
|
||||
.label print_char_cursor = $a
|
||||
//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 [ ] ( )
|
||||
//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:
|
||||
@ -6789,17 +6868,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_char_cursor = 8
|
||||
//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 [ ] ( )
|
||||
//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:
|
||||
@ -7847,7 +7926,7 @@ divr16u: {
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b34
|
||||
Removing instruction jmp b35
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b5
|
||||
Removing instruction jmp b1
|
||||
@ -7931,9 +8010,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 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 print_cls_from_b5:
|
||||
Removing instruction b1_from_b8:
|
||||
@ -7964,7 +8043,7 @@ Removing instruction b2_from_b4:
|
||||
Removing instruction b3_from_b2:
|
||||
Removing instruction b3_from_b5:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b34:
|
||||
Removing instruction b35:
|
||||
Removing instruction bend:
|
||||
Removing instruction sin16s_gen_from_main:
|
||||
Removing instruction b5:
|
||||
@ -8041,7 +8120,7 @@ Removing unreachable instruction jmp b3
|
||||
Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
@ -8330,12 +8409,12 @@ Score: 20867
|
||||
.label rem16u = 2
|
||||
.label print_char_cursor = 8
|
||||
//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 [ ] ( )
|
||||
//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:@36
|
||||
@36: scope:[] from @begin
|
||||
to:@37
|
||||
@37: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @36
|
||||
@end: scope:[] from @37
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @36
|
||||
main: scope:[main] from @37
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin16s_gen [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
|
@ -65,6 +65,23 @@ void sin16s_gen(signed word* sintab, word wavelength) {
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed word sinus table - with values in the range min-max.
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
void sin16s_gen2(signed word* sintab, word wavelength, signed word min, signed word max) {
|
||||
signed word ampl = max-min;
|
||||
signed word offs = min + ampl>>1; // ampl is always positive so shifting left does not alter the sign
|
||||
// u[4.28] step = PI*2/wavelength
|
||||
dword step = div32u16u(PI2_u4f28, wavelength); // u[4.28]
|
||||
// Iterate over the table
|
||||
dword x = 0; // u[4.28]
|
||||
for( word i=0; i<wavelength; i++) {
|
||||
*sintab = offs + (signed word)>mul16s(sin16s(x), ampl); // The signed sin() has values [-7fff;7fff] = [-1/2 ; 1/2], so ampl*sin has the right amplitude
|
||||
sintab = sintab + 2;
|
||||
x = x + step;
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed byte sinus table - on the full -$7f - $7f range
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
@ -387,6 +404,7 @@ signed dword mul16s(signed word a, signed word b) {
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (word) sin16s_gen::i ← ++ (word) sin16s_gen::i
|
||||
Adding pre/post-modifier (word) sin16s_gen2::i ← ++ (word) sin16s_gen2::i
|
||||
Adding pre/post-modifier (signed byte*) sin8s_gen::sintab ← ++ (signed byte*) sin8s_gen::sintab
|
||||
Adding pre/post-modifier (word) sin8s_gen::i ← ++ (word) sin8s_gen::i
|
||||
Adding pre/post-modifier (byte) sin8s::usinx ← -- (byte) sin8s::usinx
|
||||
@ -604,6 +622,7 @@ SYMBOLS
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @36
|
||||
(label) @37
|
||||
(label) @4
|
||||
(label) @5
|
||||
(label) @6
|
||||
@ -1139,6 +1158,31 @@ SYMBOLS
|
||||
(dword) sin16s_gen::step
|
||||
(word) sin16s_gen::wavelength
|
||||
(dword) sin16s_gen::x
|
||||
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
|
||||
(signed word~) sin16s_gen2::$0
|
||||
(signed word~) sin16s_gen2::$1
|
||||
(dword~) sin16s_gen2::$10
|
||||
(bool~) sin16s_gen2::$11
|
||||
(signed word~) sin16s_gen2::$2
|
||||
(dword~) sin16s_gen2::$3
|
||||
(signed word~) sin16s_gen2::$4
|
||||
(signed dword~) sin16s_gen2::$5
|
||||
(word~) sin16s_gen2::$6
|
||||
(signed word~) sin16s_gen2::$7
|
||||
(signed word~) sin16s_gen2::$8
|
||||
(signed word*~) sin16s_gen2::$9
|
||||
(label) sin16s_gen2::@1
|
||||
(label) sin16s_gen2::@2
|
||||
(label) sin16s_gen2::@return
|
||||
(signed word) sin16s_gen2::ampl
|
||||
(word) sin16s_gen2::i
|
||||
(signed word) sin16s_gen2::max
|
||||
(signed word) sin16s_gen2::min
|
||||
(signed word) sin16s_gen2::offs
|
||||
(signed word*) sin16s_gen2::sintab
|
||||
(dword) sin16s_gen2::step
|
||||
(word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::x
|
||||
(void()) sin16s_genb((signed word*) sin16s_genb::sintab , (word) sin16s_genb::wavelength)
|
||||
(dword~) sin16s_genb::$0
|
||||
(word~) sin16s_genb::$1
|
||||
@ -1794,6 +1838,39 @@ sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@2
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
sin16s_gen2: scope:[sin16s_gen2] from
|
||||
(signed word~) sin16s_gen2::$0 ← (signed word) sin16s_gen2::max - (signed word) sin16s_gen2::min
|
||||
(signed word) sin16s_gen2::ampl ← (signed word~) sin16s_gen2::$0
|
||||
(signed word~) sin16s_gen2::$1 ← (signed word) sin16s_gen2::ampl >> (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(signed word~) sin16s_gen2::$2 ← (signed word) sin16s_gen2::min + (signed word~) sin16s_gen2::$1
|
||||
(signed word) sin16s_gen2::offs ← (signed word~) sin16s_gen2::$2
|
||||
(dword~) sin16s_gen2::$3 ← call div32u16u (dword) PI2_u4f28 (word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::step ← (dword~) sin16s_gen2::$3
|
||||
(dword) sin16s_gen2::x ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) sin16s_gen2::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:sin16s_gen2::@1
|
||||
sin16s_gen2::@1: scope:[sin16s_gen2] from sin16s_gen2 sin16s_gen2::@1
|
||||
(signed word~) sin16s_gen2::$4 ← call sin16s (dword) sin16s_gen2::x
|
||||
(signed dword~) sin16s_gen2::$5 ← call mul16s (signed word~) sin16s_gen2::$4 (signed word) sin16s_gen2::ampl
|
||||
(word~) sin16s_gen2::$6 ← > (signed dword~) sin16s_gen2::$5
|
||||
(signed word~) sin16s_gen2::$7 ← ((signed word)) (word~) sin16s_gen2::$6
|
||||
(signed word~) sin16s_gen2::$8 ← (signed word) sin16s_gen2::offs + (signed word~) sin16s_gen2::$7
|
||||
*((signed word*) sin16s_gen2::sintab) ← (signed word~) sin16s_gen2::$8
|
||||
(signed word*~) sin16s_gen2::$9 ← (signed word*) sin16s_gen2::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
(signed word*) sin16s_gen2::sintab ← (signed word*~) sin16s_gen2::$9
|
||||
(dword~) sin16s_gen2::$10 ← (dword) sin16s_gen2::x + (dword) sin16s_gen2::step
|
||||
(dword) sin16s_gen2::x ← (dword~) sin16s_gen2::$10
|
||||
(word) sin16s_gen2::i ← ++ (word) sin16s_gen2::i
|
||||
(bool~) sin16s_gen2::$11 ← (word) sin16s_gen2::i < (word) sin16s_gen2::wavelength
|
||||
if((bool~) sin16s_gen2::$11) goto sin16s_gen2::@1
|
||||
to:sin16s_gen2::@2
|
||||
sin16s_gen2::@2: scope:[sin16s_gen2] from sin16s_gen2::@1
|
||||
to:sin16s_gen2::@return
|
||||
sin16s_gen2::@return: scope:[sin16s_gen2] from sin16s_gen2::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
sin8s_gen: scope:[sin8s_gen] from
|
||||
(word~) sin8s_gen::$0 ← call div16u (word) PI2_u4f12 (word) sin8s_gen::wavelength
|
||||
(word) sin8s_gen::step ← (word~) sin8s_gen::$0
|
||||
@ -1815,8 +1892,8 @@ sin8s_gen::@2: scope:[sin8s_gen] from sin8s_gen::@1
|
||||
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
sin16s: scope:[sin16s] from
|
||||
(byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28
|
||||
@ -1878,8 +1955,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3 sin16s::@7
|
||||
to:@return
|
||||
sin16s::@7: scope:[sin16s] from
|
||||
to:sin16s::@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
sin8s: scope:[sin8s] from
|
||||
(byte) sin8s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin8s::$0 ← (word) sin8s::x >= (word) PI_u4f12
|
||||
@ -1949,8 +2026,8 @@ sin8s::@return: scope:[sin8s] from sin8s::@4 sin8s::@9
|
||||
to:@return
|
||||
sin8s::@9: scope:[sin8s] from
|
||||
to:sin8s::@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
mulu16_sel: scope:[mulu16_sel] from
|
||||
(dword~) mulu16_sel::$0 ← call mul16u (word) mulu16_sel::v1 (word) mulu16_sel::v2
|
||||
(dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select
|
||||
@ -1963,8 +2040,8 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel mulu16_sel::@1
|
||||
to:@return
|
||||
mulu16_sel::@1: scope:[mulu16_sel] from
|
||||
to:mulu16_sel::@return
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
mulu8_sel: scope:[mulu8_sel] from
|
||||
(word~) mulu8_sel::$0 ← call mul8u (byte) mulu8_sel::v1 (byte) mulu8_sel::v2
|
||||
(word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select
|
||||
@ -1977,8 +2054,8 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel mulu8_sel::@1
|
||||
to:@return
|
||||
mulu8_sel::@1: scope:[mulu8_sel] from
|
||||
to:mulu8_sel::@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
sin16s_genb: scope:[sin16s_genb] from
|
||||
(dword~) sin16s_genb::$0 ← call div32u16u (dword) PI2_u4f28 (word) sin16s_genb::wavelength
|
||||
(dword) sin16s_genb::step ← (dword~) sin16s_genb::$0
|
||||
@ -2002,8 +2079,8 @@ sin16s_genb::@2: scope:[sin16s_genb] from sin16s_genb::@1
|
||||
sin16s_genb::@return: scope:[sin16s_genb] from sin16s_genb::@2
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
sin16sb: scope:[sin16sb] from
|
||||
(byte) sin16sb::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin16sb::$0 ← (word) sin16sb::x >= (word) PI_u4f12
|
||||
@ -2064,11 +2141,11 @@ sin16sb::@return: scope:[sin16sb] from sin16sb::@3 sin16sb::@7
|
||||
to:@return
|
||||
sin16sb::@7: scope:[sin16sb] from
|
||||
to:sin16sb::@return
|
||||
@21: scope:[] from @20
|
||||
@22: scope:[] from @21
|
||||
(byte*) print_screen ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@22
|
||||
to:@23
|
||||
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
|
||||
@ -2106,8 +2183,8 @@ print_str_lines::@10: scope:[print_str_lines] from
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
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
|
||||
@ -2115,8 +2192,8 @@ print_str_ln: scope:[print_str_ln] from
|
||||
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_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -2139,8 +2216,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
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
|
||||
@ -2163,8 +2240,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
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
print_ln: scope:[print_ln] from
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
@ -2179,8 +2256,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
return
|
||||
to:@return
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
print_sword: scope:[print_sword] from
|
||||
(bool~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sword::$1 ← ! (bool~) print_sword::$0
|
||||
@ -2198,8 +2275,8 @@ print_sword::@2: scope:[print_sword] from print_sword
|
||||
print_sword::@return: scope:[print_sword] from print_sword::@1
|
||||
return
|
||||
to:@return
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
print_sbyte: scope:[print_sbyte] from
|
||||
(bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sbyte::$1 ← ! (bool~) print_sbyte::$0
|
||||
@ -2217,8 +2294,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
|
||||
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
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
|
||||
@ -2228,8 +2305,8 @@ print_word: scope:[print_word] from
|
||||
print_word::@return: scope:[print_word] from print_word
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
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
|
||||
@ -2239,8 +2316,8 @@ print_dword: scope:[print_dword] from
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
print_sdword: scope:[print_sdword] from
|
||||
(bool~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sdword::$1 ← ! (bool~) print_sdword::$0
|
||||
@ -2258,9 +2335,9 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
|
||||
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @30
|
||||
@32: scope:[] from @31
|
||||
(byte[]) print_hextab ← (string) "0123456789abcdef"
|
||||
to:@32
|
||||
to:@33
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
(void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0)
|
||||
@ -2270,8 +2347,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) print_char_cursor) ← (byte) print_char::ch
|
||||
(byte*) print_char_cursor ← ++ (byte*) print_char_cursor
|
||||
@ -2279,8 +2356,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) print_screen
|
||||
to:print_cls::@1
|
||||
@ -2298,8 +2375,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
print_set_screen: scope:[print_set_screen] from
|
||||
(byte*) print_screen ← (byte*) print_set_screen::screen
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
@ -2308,8 +2385,8 @@ print_set_screen: scope:[print_set_screen] from
|
||||
print_set_screen::@return: scope:[print_set_screen] from print_set_screen
|
||||
return
|
||||
to:@return
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
@36: scope:[] from @35
|
||||
to:@37
|
||||
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) }
|
||||
@ -2347,16 +2424,16 @@ main::@4: scope:[main] from main::@2
|
||||
main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
@36: scope:[] from @35
|
||||
@37: scope:[] from @36
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @36
|
||||
@end: scope:[] from @37
|
||||
|
||||
Removing unused procedure div8s
|
||||
Removing unused procedure div16s
|
||||
Removing unused procedure mul8s
|
||||
Removing unused procedure mul8su
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin16s_gen2
|
||||
Removing unused procedure sin8s_gen
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
@ -2367,6 +2444,7 @@ Removing unused procedure print_set_screen
|
||||
Removing unused procedure div8u
|
||||
Removing unused procedure div16u
|
||||
Removing unused procedure divr16s
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin8s
|
||||
Removing unused procedure print_ln
|
||||
Removing unused procedure print_dword
|
||||
@ -2412,32 +2490,33 @@ Removing empty block @12
|
||||
Removing empty block sin16s_gen::@2
|
||||
Removing empty block @14
|
||||
Removing empty block @15
|
||||
Removing empty block sin16s::@7
|
||||
Removing empty block @16
|
||||
Removing empty block sin16s::@7
|
||||
Removing empty block @17
|
||||
Removing empty block mulu16_sel::@1
|
||||
Removing empty block @18
|
||||
Removing empty block mulu16_sel::@1
|
||||
Removing empty block @19
|
||||
Removing empty block sin16s_genb::@2
|
||||
Removing empty block @20
|
||||
Removing empty block sin16s_genb::@2
|
||||
Removing empty block @21
|
||||
Removing empty block sin16sb::@7
|
||||
Removing empty block @22
|
||||
Removing empty block @23
|
||||
Removing empty block @24
|
||||
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 @24
|
||||
Removing empty block @25
|
||||
Removing empty block @26
|
||||
Removing empty block @27
|
||||
Removing empty block @28
|
||||
Removing empty block @29
|
||||
Removing empty block @30
|
||||
Removing empty block @32
|
||||
Removing empty block @31
|
||||
Removing empty block @33
|
||||
Removing empty block @34
|
||||
Removing empty block @35
|
||||
Removing empty block @36
|
||||
Removing empty block main::@4
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
divr16u modifies rem16u
|
||||
@ -2643,7 +2722,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3
|
||||
(dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428
|
||||
(word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868
|
||||
(word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434
|
||||
to:@21
|
||||
to:@22
|
||||
sin16s_gen: scope:[sin16s_gen] from main
|
||||
(signed word*) sin16s_gen::sintab#5 ← phi( main/(signed word*) sin16s_gen::sintab#1 )
|
||||
(word) rem16u#27 ← phi( main/(word) rem16u#31 )
|
||||
@ -3018,12 +3097,12 @@ sin16sb::@return: scope:[sin16sb] from sin16sb::@3
|
||||
(signed word) sin16sb::return#2 ← (signed word) sin16sb::return#4
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @13
|
||||
@22: scope:[] from @13
|
||||
(word) rem16u#38 ← phi( @13/(word) rem16u#40 )
|
||||
(byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
|
||||
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
|
||||
to:@31
|
||||
to:@32
|
||||
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 )
|
||||
@ -3106,13 +3185,13 @@ print_word::@return: scope:[print_word] from print_word::@2
|
||||
(byte*) print_char_cursor#8 ← (byte*) print_char_cursor#29
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @21
|
||||
(byte*) print_screen#8 ← phi( @21/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#55 ← phi( @21/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#15 ← phi( @21/(byte*) print_line_cursor#0 )
|
||||
(word) rem16u#37 ← phi( @21/(word) rem16u#38 )
|
||||
@32: scope:[] from @22
|
||||
(byte*) print_screen#8 ← phi( @22/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#55 ← phi( @22/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#15 ← phi( @22/(byte*) print_line_cursor#0 )
|
||||
(word) rem16u#37 ← phi( @22/(word) rem16u#38 )
|
||||
(byte[]) print_hextab#0 ← (const string) $0
|
||||
to:@36
|
||||
to:@37
|
||||
print_byte: scope:[print_byte] from print_word print_word::@1
|
||||
(byte*) print_char_cursor#46 ← phi( print_word/(byte*) print_char_cursor#45 print_word::@1/(byte*) print_char_cursor#6 )
|
||||
(byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 )
|
||||
@ -3173,11 +3252,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 @36
|
||||
(byte*) print_char_cursor#56 ← phi( @36/(byte*) print_char_cursor#50 )
|
||||
(byte*) print_line_cursor#16 ← phi( @36/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#6 ← phi( @36/(byte*) print_screen#7 )
|
||||
(word) rem16u#31 ← phi( @36/(word) rem16u#33 )
|
||||
main: scope:[main] from @37
|
||||
(byte*) print_char_cursor#56 ← phi( @37/(byte*) print_char_cursor#50 )
|
||||
(byte*) print_line_cursor#16 ← phi( @37/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#6 ← phi( @37/(byte*) print_screen#7 )
|
||||
(word) rem16u#31 ← phi( @37/(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) }
|
||||
@ -3295,31 +3374,31 @@ main::@return: scope:[main] from main::@9
|
||||
(byte*) print_char_cursor#20 ← (byte*) print_char_cursor#40
|
||||
return
|
||||
to:@return
|
||||
@36: scope:[] from @31
|
||||
(byte*) print_screen#7 ← phi( @31/(byte*) print_screen#8 )
|
||||
(byte*) print_char_cursor#50 ← phi( @31/(byte*) print_char_cursor#55 )
|
||||
(byte*) print_line_cursor#12 ← phi( @31/(byte*) print_line_cursor#15 )
|
||||
(word) rem16u#33 ← phi( @31/(word) rem16u#37 )
|
||||
@37: scope:[] from @32
|
||||
(byte*) print_screen#7 ← phi( @32/(byte*) print_screen#8 )
|
||||
(byte*) print_char_cursor#50 ← phi( @32/(byte*) print_char_cursor#55 )
|
||||
(byte*) print_line_cursor#12 ← phi( @32/(byte*) print_line_cursor#15 )
|
||||
(word) rem16u#33 ← phi( @32/(word) rem16u#37 )
|
||||
call main
|
||||
to:@37
|
||||
@37: scope:[] from @36
|
||||
(byte*) print_char_cursor#41 ← phi( @36/(byte*) print_char_cursor#20 )
|
||||
(byte*) print_line_cursor#9 ← phi( @36/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#25 ← phi( @36/(word) rem16u#12 )
|
||||
to:@38
|
||||
@38: scope:[] from @37
|
||||
(byte*) print_char_cursor#41 ← phi( @37/(byte*) print_char_cursor#20 )
|
||||
(byte*) print_line_cursor#9 ← phi( @37/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#25 ← phi( @37/(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 @37
|
||||
@end: scope:[] from @38
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(const string) $0 = (string) "0123456789abcdef"
|
||||
(label) @13
|
||||
(label) @2
|
||||
(label) @21
|
||||
(label) @31
|
||||
(label) @36
|
||||
(label) @22
|
||||
(label) @32
|
||||
(label) @37
|
||||
(label) @38
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
@ -4782,15 +4861,15 @@ Succesful SSA optimization Pass2NopCastElimination
|
||||
Culled Empty Block (label) @2
|
||||
Culled Empty Block (label) mul16u::@3
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @21
|
||||
Culled Empty Block (label) @22
|
||||
Culled Empty Block (label) print_sword::@3
|
||||
Culled Empty Block (label) print_word::@2
|
||||
Culled Empty Block (label) @31
|
||||
Culled Empty Block (label) @32
|
||||
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) @37
|
||||
Culled Empty Block (label) @38
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: divr16u::dividend#5 divr16u::dividend#1
|
||||
Not aliassing across scopes: divr16u::divisor#6 divr16u::divisor#0
|
||||
@ -5213,7 +5292,7 @@ Constant inlined divr16u::dividend#2 = <(const dword) PI2_u4f28#0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Identical Phi Values (word) divr16u::divisor#6 (const word) main::wavelength#0
|
||||
Succesful SSA optimization Pass2IdenticalPhiElimination
|
||||
Block Sequence Planned @begin @36 @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 @37 @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)
|
||||
@ -5232,9 +5311,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 @36 @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 @37 @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 @36
|
||||
Adding NOP phi() at start of @37
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -5394,9 +5473,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 @36 @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::@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 sin16s::@15
|
||||
Block Sequence Planned @begin @37 @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::@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 sin16s::@15
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @36
|
||||
Adding NOP phi() at start of @37
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@5
|
||||
@ -5445,14 +5524,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@36
|
||||
@36: scope:[] from @begin
|
||||
to:@37
|
||||
@37: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @36
|
||||
@end: scope:[] from @37
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @36
|
||||
main: scope:[main] from @37
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call sin16s_gen [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
@ -5868,96 +5947,96 @@ sin16s::@15: scope:[sin16s] from sin16s::@12
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@36 dominated by @begin @36
|
||||
@end dominated by @end @begin @36
|
||||
main dominated by main @begin @36
|
||||
main::@5 dominated by main main::@5 @begin @36
|
||||
main::@6 dominated by main main::@5 main::@6 @begin @36
|
||||
main::@1 dominated by main main::@1 main::@5 main::@6 @begin @36
|
||||
main::@3 dominated by main main::@1 main::@5 main::@6 main::@3 @begin @36
|
||||
main::@2 dominated by main main::@1 main::@2 main::@5 main::@6 @begin @36
|
||||
main::@8 dominated by main::@8 main main::@1 main::@2 main::@5 main::@6 @begin @36
|
||||
main::@9 dominated by main::@9 main::@8 main main::@1 main::@2 main::@5 main::@6 @begin @36
|
||||
main::@return dominated by main::@9 main::@8 main main::@1 main::@2 main::@5 main::@6 @begin @36 main::@return
|
||||
print_str dominated by main main::@1 main::@5 main::@6 @begin @36 print_str
|
||||
print_str::@1 dominated by main main::@1 main::@5 main::@6 @begin @36 print_str::@1 print_str
|
||||
print_str::@return dominated by main main::@1 main::@5 main::@6 @begin @36 print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by main main::@1 main::@5 main::@6 @begin @36 print_str::@1 print_str::@2 print_str
|
||||
print_sword dominated by main main::@1 main::@2 main::@5 main::@6 @begin @36 print_sword
|
||||
print_sword::@2 dominated by print_sword::@2 main main::@1 main::@2 main::@5 main::@6 @begin @36 print_sword
|
||||
print_sword::@4 dominated by print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 main::@6 @begin @36 print_sword
|
||||
print_sword::@1 dominated by print_sword::@1 main main::@1 main::@2 main::@5 main::@6 @begin @36 print_sword
|
||||
print_sword::@return dominated by print_sword::@1 main main::@1 main::@2 main::@5 main::@6 @begin @36 print_sword::@return print_sword
|
||||
print_word dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @begin @36 print_sword
|
||||
print_word::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @begin @36 print_word::@1 print_sword
|
||||
print_word::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @begin @36 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 @begin @36 print_byte print_sword
|
||||
print_byte::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @begin @36 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 @begin @36 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 @begin @36 print_sword
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 main::@5 main::@6 print_char::@return @begin @36 print_sword
|
||||
print_cls dominated by main main::@5 main::@6 @begin @36 print_cls
|
||||
print_cls::@1 dominated by main main::@5 main::@6 @begin @36 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 main::@6 @begin @36 print_cls::@return print_cls::@1 print_cls
|
||||
sin16s_genb dominated by main sin16s_genb main::@5 @begin @36
|
||||
sin16s_genb::@3 dominated by main sin16s_genb main::@5 @begin @36 sin16s_genb::@3
|
||||
sin16s_genb::@1 dominated by main sin16s_genb main::@5 @begin @36 sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16s_genb::@4 dominated by main sin16s_genb main::@5 @begin @36 sin16s_genb::@3 sin16s_genb::@4 sin16s_genb::@1
|
||||
sin16s_genb::@return dominated by sin16s_genb::@return main sin16s_genb main::@5 @begin @36 sin16s_genb::@3 sin16s_genb::@4 sin16s_genb::@1
|
||||
sin16sb dominated by main sin16s_genb main::@5 @begin @36 sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@4 dominated by main sin16s_genb main::@5 @begin @36 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@4
|
||||
sin16sb::@1 dominated by main sin16s_genb sin16sb::@1 main::@5 @begin @36 sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@5 dominated by main sin16s_genb sin16sb::@1 main::@5 @begin @36 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@5
|
||||
sin16sb::@2 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @begin @36 sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@8 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @begin @36 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@8
|
||||
sin16sb::@9 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @begin @36 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@10 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @begin @36 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 sin16sb::@11 @begin @36 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 sin16sb::@11 @begin @36 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 sin16sb::@11 @begin @36 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 sin16sb::@11 @begin @36 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 sin16sb::@11 @begin @36 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 sin16sb::@11 @begin @36 sin16sb::@12 sin16sb::@10 sin16sb::@15 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
mulu16_sel dominated by main @begin @36 mulu16_sel
|
||||
mulu16_sel::@2 dominated by main @begin @36 mulu16_sel mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main @begin @36 mulu16_sel mulu16_sel::@return mulu16_sel::@2
|
||||
mul16u dominated by main mul16u @begin @36 mulu16_sel
|
||||
mul16u::@1 dominated by main mul16u mul16u::@1 @begin @36 mulu16_sel
|
||||
mul16u::@return dominated by main mul16u mul16u::@1 @begin @36 mulu16_sel mul16u::@return
|
||||
mul16u::@2 dominated by main mul16u mul16u::@1 mul16u::@2 @begin @36 mulu16_sel
|
||||
mul16u::@7 dominated by main mul16u mul16u::@1 mul16u::@2 @begin @36 mul16u::@7 mulu16_sel
|
||||
mul16u::@4 dominated by main mul16u mul16u::@1 mul16u::@2 @begin @36 mul16u::@4 mulu16_sel
|
||||
div32u16u dominated by main @begin @36 div32u16u
|
||||
div32u16u::@2 dominated by main div32u16u::@2 @begin @36 div32u16u
|
||||
div32u16u::@3 dominated by main div32u16u::@2 div32u16u::@3 @begin @36 div32u16u
|
||||
div32u16u::@return dominated by main div32u16u::@2 div32u16u::@3 @begin @36 div32u16u div32u16u::@return
|
||||
divr16u dominated by divr16u main @begin @36 div32u16u
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @begin @36 div32u16u
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @begin @36 div32u16u
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @begin @36 div32u16u
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @begin @36 div32u16u
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @begin @36 div32u16u
|
||||
divr16u::@6 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin @36 div32u16u
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin @36 div32u16u divr16u::@return
|
||||
sin16s_gen dominated by main @begin @36 sin16s_gen
|
||||
sin16s_gen::@3 dominated by main @begin @36 sin16s_gen sin16s_gen::@3
|
||||
sin16s_gen::@1 dominated by main @begin @36 sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s_gen::@4 dominated by main @begin @36 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s_gen::@return dominated by main sin16s_gen::@return @begin @36 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s dominated by main sin16s @begin @36 sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s::@4 dominated by main sin16s @begin @36 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4
|
||||
sin16s::@1 dominated by main sin16s @begin @36 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1
|
||||
sin16s::@5 dominated by main sin16s @begin @36 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5
|
||||
sin16s::@2 dominated by main sin16s @begin @36 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2
|
||||
sin16s::@8 dominated by main sin16s @begin @36 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2
|
||||
sin16s::@9 dominated by main sin16s @begin @36 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2
|
||||
sin16s::@10 dominated by main sin16s @begin @36 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2
|
||||
sin16s::@11 dominated by main sin16s @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
|
||||
@37 dominated by @begin @37
|
||||
@end dominated by @end @begin @37
|
||||
main dominated by main @begin @37
|
||||
main::@5 dominated by main main::@5 @begin @37
|
||||
main::@6 dominated by main main::@5 main::@6 @begin @37
|
||||
main::@1 dominated by main main::@1 main::@5 main::@6 @begin @37
|
||||
main::@3 dominated by main main::@1 main::@5 main::@6 main::@3 @begin @37
|
||||
main::@2 dominated by main main::@1 main::@2 main::@5 main::@6 @begin @37
|
||||
main::@8 dominated by main::@8 main main::@1 main::@2 main::@5 main::@6 @begin @37
|
||||
main::@9 dominated by main::@9 main::@8 main main::@1 main::@2 main::@5 main::@6 @begin @37
|
||||
main::@return dominated by main::@9 main::@8 main main::@1 main::@2 main::@5 main::@6 @begin @37 main::@return
|
||||
print_str dominated by main main::@1 main::@5 main::@6 @begin @37 print_str
|
||||
print_str::@1 dominated by main main::@1 main::@5 main::@6 @begin @37 print_str::@1 print_str
|
||||
print_str::@return dominated by main main::@1 main::@5 main::@6 @begin @37 print_str::@return print_str::@1 print_str
|
||||
print_str::@2 dominated by main main::@1 main::@5 main::@6 @begin @37 print_str::@1 print_str::@2 print_str
|
||||
print_sword dominated by main main::@1 main::@2 main::@5 main::@6 @begin @37 print_sword
|
||||
print_sword::@2 dominated by print_sword::@2 main main::@1 main::@2 main::@5 main::@6 @begin @37 print_sword
|
||||
print_sword::@4 dominated by print_sword::@2 print_sword::@4 main main::@1 main::@2 main::@5 main::@6 @begin @37 print_sword
|
||||
print_sword::@1 dominated by print_sword::@1 main main::@1 main::@2 main::@5 main::@6 @begin @37 print_sword
|
||||
print_sword::@return dominated by print_sword::@1 main main::@1 main::@2 main::@5 main::@6 @begin @37 print_sword::@return print_sword
|
||||
print_word dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @begin @37 print_sword
|
||||
print_word::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @begin @37 print_word::@1 print_sword
|
||||
print_word::@return dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @begin @37 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 @begin @37 print_byte print_sword
|
||||
print_byte::@1 dominated by print_sword::@1 main print_word main::@1 main::@2 main::@5 main::@6 @begin @37 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 @begin @37 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 @begin @37 print_sword
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 main::@5 main::@6 print_char::@return @begin @37 print_sword
|
||||
print_cls dominated by main main::@5 main::@6 @begin @37 print_cls
|
||||
print_cls::@1 dominated by main main::@5 main::@6 @begin @37 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main main::@5 main::@6 @begin @37 print_cls::@return print_cls::@1 print_cls
|
||||
sin16s_genb dominated by main sin16s_genb main::@5 @begin @37
|
||||
sin16s_genb::@3 dominated by main sin16s_genb main::@5 @begin @37 sin16s_genb::@3
|
||||
sin16s_genb::@1 dominated by main sin16s_genb main::@5 @begin @37 sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16s_genb::@4 dominated by main sin16s_genb main::@5 @begin @37 sin16s_genb::@3 sin16s_genb::@4 sin16s_genb::@1
|
||||
sin16s_genb::@return dominated by sin16s_genb::@return main sin16s_genb main::@5 @begin @37 sin16s_genb::@3 sin16s_genb::@4 sin16s_genb::@1
|
||||
sin16sb dominated by main sin16s_genb main::@5 @begin @37 sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@4 dominated by main sin16s_genb main::@5 @begin @37 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@4
|
||||
sin16sb::@1 dominated by main sin16s_genb sin16sb::@1 main::@5 @begin @37 sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@5 dominated by main sin16s_genb sin16sb::@1 main::@5 @begin @37 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@5
|
||||
sin16sb::@2 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @begin @37 sin16sb sin16s_genb::@3 sin16s_genb::@1
|
||||
sin16sb::@8 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @begin @37 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@8
|
||||
sin16sb::@9 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @begin @37 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
sin16sb::@10 dominated by main sin16s_genb sin16sb::@2 sin16sb::@1 main::@5 @begin @37 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 sin16sb::@11 @begin @37 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 sin16sb::@11 @begin sin16sb::@12 @37 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 sin16sb::@11 @begin sin16sb::@12 @37 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 sin16sb::@11 @begin sin16sb::@12 @37 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 sin16sb::@11 @begin sin16sb::@12 @37 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 sin16sb::@11 @begin sin16sb::@12 @37 sin16sb::@10 sin16sb::@15 sin16sb sin16s_genb::@3 sin16s_genb::@1 sin16sb::@9 sin16sb::@8
|
||||
mulu16_sel dominated by main @begin @37 mulu16_sel
|
||||
mulu16_sel::@2 dominated by main @begin @37 mulu16_sel mulu16_sel::@2
|
||||
mulu16_sel::@return dominated by main @begin @37 mulu16_sel mulu16_sel::@return mulu16_sel::@2
|
||||
mul16u dominated by main mul16u @begin @37 mulu16_sel
|
||||
mul16u::@1 dominated by main mul16u mul16u::@1 @begin @37 mulu16_sel
|
||||
mul16u::@return dominated by main mul16u mul16u::@1 @begin @37 mulu16_sel mul16u::@return
|
||||
mul16u::@2 dominated by main mul16u mul16u::@1 mul16u::@2 @begin @37 mulu16_sel
|
||||
mul16u::@7 dominated by main mul16u mul16u::@1 mul16u::@2 @begin @37 mul16u::@7 mulu16_sel
|
||||
mul16u::@4 dominated by main mul16u mul16u::@1 mul16u::@2 @begin @37 mul16u::@4 mulu16_sel
|
||||
div32u16u dominated by main @begin @37 div32u16u
|
||||
div32u16u::@2 dominated by main div32u16u::@2 @begin @37 div32u16u
|
||||
div32u16u::@3 dominated by main div32u16u::@2 div32u16u::@3 @begin @37 div32u16u
|
||||
div32u16u::@return dominated by main div32u16u::@2 div32u16u::@3 @begin @37 div32u16u div32u16u::@return
|
||||
divr16u dominated by divr16u main @begin @37 div32u16u
|
||||
divr16u::@1 dominated by divr16u divr16u::@1 main @begin @37 div32u16u
|
||||
divr16u::@4 dominated by divr16u divr16u::@1 main divr16u::@4 @begin @37 div32u16u
|
||||
divr16u::@2 dominated by divr16u divr16u::@2 divr16u::@1 main @begin @37 div32u16u
|
||||
divr16u::@5 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@5 @begin @37 div32u16u
|
||||
divr16u::@3 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 @begin @37 div32u16u
|
||||
divr16u::@6 dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin @37 div32u16u
|
||||
divr16u::@return dominated by divr16u divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin @37 div32u16u divr16u::@return
|
||||
sin16s_gen dominated by main @begin @37 sin16s_gen
|
||||
sin16s_gen::@3 dominated by main @begin @37 sin16s_gen sin16s_gen::@3
|
||||
sin16s_gen::@1 dominated by main @begin @37 sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s_gen::@4 dominated by main @begin @37 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s_gen::@return dominated by main sin16s_gen::@return @begin @37 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
|
||||
sin16s dominated by main sin16s @begin @37 sin16s_gen sin16s_gen::@3 sin16s_gen::@1
|
||||
sin16s::@4 dominated by main sin16s @begin @37 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4
|
||||
sin16s::@1 dominated by main sin16s @begin @37 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1
|
||||
sin16s::@5 dominated by main sin16s @begin @37 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5
|
||||
sin16s::@2 dominated by main sin16s @begin @37 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2
|
||||
sin16s::@8 dominated by main sin16s @begin @37 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2
|
||||
sin16s::@9 dominated by main sin16s @begin @37 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2
|
||||
sin16s::@10 dominated by main sin16s @begin @37 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2
|
||||
sin16s::@11 dominated by main sin16s @begin @37 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 @begin @37 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 @begin @37 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 @begin @37 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 @begin @37 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 @begin @37 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
|
||||
@ -6544,17 +6623,17 @@ INITIAL ASM
|
||||
.label print_char_cursor = $d
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
b36_from_bbegin:
|
||||
jmp b36
|
||||
//SEG4 @36
|
||||
b36:
|
||||
//SEG3 [1] phi from @begin to @37 [phi:@begin->@37]
|
||||
b37_from_bbegin:
|
||||
jmp b37
|
||||
//SEG4 @37
|
||||
b37:
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
main_from_b36:
|
||||
//SEG6 [4] phi from @37 to main [phi:@37->main]
|
||||
main_from_b37:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
bend_from_b36:
|
||||
//SEG7 [3] phi from @37 to @end [phi:@37->@end]
|
||||
bend_from_b37:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -8684,17 +8763,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_char_cursor = $b
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
b36_from_bbegin:
|
||||
jmp b36
|
||||
//SEG4 @36
|
||||
b36:
|
||||
//SEG3 [1] phi from @begin to @37 [phi:@begin->@37]
|
||||
b37_from_bbegin:
|
||||
jmp b37
|
||||
//SEG4 @37
|
||||
b37:
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
main_from_b36:
|
||||
//SEG6 [4] phi from @37 to main [phi:@37->main]
|
||||
main_from_b37:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
bend_from_b36:
|
||||
//SEG7 [3] phi from @37 to @end [phi:@37->@end]
|
||||
bend_from_b37:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -10145,7 +10224,7 @@ sin16s: {
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b36
|
||||
Removing instruction jmp b37
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b5
|
||||
Removing instruction jmp b6
|
||||
@ -10252,9 +10331,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 b36_from_bbegin:
|
||||
Removing instruction main_from_b36:
|
||||
Removing instruction bend_from_b36:
|
||||
Removing instruction b37_from_bbegin:
|
||||
Removing instruction main_from_b37:
|
||||
Removing instruction bend_from_b37:
|
||||
Removing instruction b5_from_main:
|
||||
Removing instruction sin16s_genb_from_b5:
|
||||
Removing instruction b6_from_b5:
|
||||
@ -10293,7 +10372,7 @@ Removing instruction b3_from_b15:
|
||||
Removing instruction b3_from_b6:
|
||||
Removing instruction breturn:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b36:
|
||||
Removing instruction b37:
|
||||
Removing instruction bend:
|
||||
Removing instruction sin16s_gen_from_main:
|
||||
Removing instruction b5:
|
||||
@ -10395,7 +10474,7 @@ Removing unreachable instruction jmp b3
|
||||
Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @36
|
||||
(label) @37
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(dword) PI2_u4f28
|
||||
@ -10777,12 +10856,12 @@ Score: 23127
|
||||
.label rem16u = 2
|
||||
.label print_char_cursor = $b
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
//SEG4 @36
|
||||
//SEG3 [1] phi from @begin to @37 [phi:@begin->@37]
|
||||
//SEG4 @37
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
//SEG6 [4] phi from @37 to main [phi:@37->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
//SEG7 [3] phi from @37 to @end [phi:@37->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @36
|
||||
(label) @37
|
||||
(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 [ ] ( )
|
||||
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 sin8s_gen [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
|
@ -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 [ ] ( )
|
||||
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 sin8s_gen [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
|
@ -61,6 +61,23 @@ void sin16s_gen(signed word* sintab, word wavelength) {
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed word sinus table - with values in the range min-max.
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
void sin16s_gen2(signed word* sintab, word wavelength, signed word min, signed word max) {
|
||||
signed word ampl = max-min;
|
||||
signed word offs = min + ampl>>1; // ampl is always positive so shifting left does not alter the sign
|
||||
// u[4.28] step = PI*2/wavelength
|
||||
dword step = div32u16u(PI2_u4f28, wavelength); // u[4.28]
|
||||
// Iterate over the table
|
||||
dword x = 0; // u[4.28]
|
||||
for( word i=0; i<wavelength; i++) {
|
||||
*sintab = offs + (signed word)>mul16s(sin16s(x), ampl); // The signed sin() has values [-7fff;7fff] = [-1/2 ; 1/2], so ampl*sin has the right amplitude
|
||||
sintab = sintab + 2;
|
||||
x = x + step;
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed byte sinus table - on the full -$7f - $7f range
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
@ -383,6 +400,7 @@ signed dword mul16s(signed word a, signed word b) {
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (word) sin16s_gen::i ← ++ (word) sin16s_gen::i
|
||||
Adding pre/post-modifier (word) sin16s_gen2::i ← ++ (word) sin16s_gen2::i
|
||||
Adding pre/post-modifier (signed byte*) sin8s_gen::sintab ← ++ (signed byte*) sin8s_gen::sintab
|
||||
Adding pre/post-modifier (word) sin8s_gen::i ← ++ (word) sin8s_gen::i
|
||||
Adding pre/post-modifier (byte) sin8s::usinx ← -- (byte) sin8s::usinx
|
||||
@ -541,6 +559,7 @@ SYMBOLS
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @4
|
||||
(label) @5
|
||||
(label) @6
|
||||
@ -1079,6 +1098,31 @@ SYMBOLS
|
||||
(dword) sin16s_gen::step
|
||||
(word) sin16s_gen::wavelength
|
||||
(dword) sin16s_gen::x
|
||||
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
|
||||
(signed word~) sin16s_gen2::$0
|
||||
(signed word~) sin16s_gen2::$1
|
||||
(dword~) sin16s_gen2::$10
|
||||
(bool~) sin16s_gen2::$11
|
||||
(signed word~) sin16s_gen2::$2
|
||||
(dword~) sin16s_gen2::$3
|
||||
(signed word~) sin16s_gen2::$4
|
||||
(signed dword~) sin16s_gen2::$5
|
||||
(word~) sin16s_gen2::$6
|
||||
(signed word~) sin16s_gen2::$7
|
||||
(signed word~) sin16s_gen2::$8
|
||||
(signed word*~) sin16s_gen2::$9
|
||||
(label) sin16s_gen2::@1
|
||||
(label) sin16s_gen2::@2
|
||||
(label) sin16s_gen2::@return
|
||||
(signed word) sin16s_gen2::ampl
|
||||
(word) sin16s_gen2::i
|
||||
(signed word) sin16s_gen2::max
|
||||
(signed word) sin16s_gen2::min
|
||||
(signed word) sin16s_gen2::offs
|
||||
(signed word*) sin16s_gen2::sintab
|
||||
(dword) sin16s_gen2::step
|
||||
(word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::x
|
||||
(signed byte()) sin8s((word) sin8s::x)
|
||||
(bool~) sin8s::$0
|
||||
(bool~) sin8s::$1
|
||||
@ -1677,6 +1721,39 @@ sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@2
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
sin16s_gen2: scope:[sin16s_gen2] from
|
||||
(signed word~) sin16s_gen2::$0 ← (signed word) sin16s_gen2::max - (signed word) sin16s_gen2::min
|
||||
(signed word) sin16s_gen2::ampl ← (signed word~) sin16s_gen2::$0
|
||||
(signed word~) sin16s_gen2::$1 ← (signed word) sin16s_gen2::ampl >> (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(signed word~) sin16s_gen2::$2 ← (signed word) sin16s_gen2::min + (signed word~) sin16s_gen2::$1
|
||||
(signed word) sin16s_gen2::offs ← (signed word~) sin16s_gen2::$2
|
||||
(dword~) sin16s_gen2::$3 ← call div32u16u (dword) PI2_u4f28 (word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::step ← (dword~) sin16s_gen2::$3
|
||||
(dword) sin16s_gen2::x ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) sin16s_gen2::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:sin16s_gen2::@1
|
||||
sin16s_gen2::@1: scope:[sin16s_gen2] from sin16s_gen2 sin16s_gen2::@1
|
||||
(signed word~) sin16s_gen2::$4 ← call sin16s (dword) sin16s_gen2::x
|
||||
(signed dword~) sin16s_gen2::$5 ← call mul16s (signed word~) sin16s_gen2::$4 (signed word) sin16s_gen2::ampl
|
||||
(word~) sin16s_gen2::$6 ← > (signed dword~) sin16s_gen2::$5
|
||||
(signed word~) sin16s_gen2::$7 ← ((signed word)) (word~) sin16s_gen2::$6
|
||||
(signed word~) sin16s_gen2::$8 ← (signed word) sin16s_gen2::offs + (signed word~) sin16s_gen2::$7
|
||||
*((signed word*) sin16s_gen2::sintab) ← (signed word~) sin16s_gen2::$8
|
||||
(signed word*~) sin16s_gen2::$9 ← (signed word*) sin16s_gen2::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
(signed word*) sin16s_gen2::sintab ← (signed word*~) sin16s_gen2::$9
|
||||
(dword~) sin16s_gen2::$10 ← (dword) sin16s_gen2::x + (dword) sin16s_gen2::step
|
||||
(dword) sin16s_gen2::x ← (dword~) sin16s_gen2::$10
|
||||
(word) sin16s_gen2::i ← ++ (word) sin16s_gen2::i
|
||||
(bool~) sin16s_gen2::$11 ← (word) sin16s_gen2::i < (word) sin16s_gen2::wavelength
|
||||
if((bool~) sin16s_gen2::$11) goto sin16s_gen2::@1
|
||||
to:sin16s_gen2::@2
|
||||
sin16s_gen2::@2: scope:[sin16s_gen2] from sin16s_gen2::@1
|
||||
to:sin16s_gen2::@return
|
||||
sin16s_gen2::@return: scope:[sin16s_gen2] from sin16s_gen2::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
sin8s_gen: scope:[sin8s_gen] from
|
||||
(word~) sin8s_gen::$0 ← call div16u (word) PI2_u4f12 (word) sin8s_gen::wavelength
|
||||
(word) sin8s_gen::step ← (word~) sin8s_gen::$0
|
||||
@ -1698,8 +1775,8 @@ sin8s_gen::@2: scope:[sin8s_gen] from sin8s_gen::@1
|
||||
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
sin16s: scope:[sin16s] from
|
||||
(byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28
|
||||
@ -1761,8 +1838,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3 sin16s::@7
|
||||
to:@return
|
||||
sin16s::@7: scope:[sin16s] from
|
||||
to:sin16s::@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
sin8s: scope:[sin8s] from
|
||||
(byte) sin8s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin8s::$0 ← (word) sin8s::x >= (word) PI_u4f12
|
||||
@ -1832,8 +1909,8 @@ sin8s::@return: scope:[sin8s] from sin8s::@4 sin8s::@9
|
||||
to:@return
|
||||
sin8s::@9: scope:[sin8s] from
|
||||
to:sin8s::@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
mulu16_sel: scope:[mulu16_sel] from
|
||||
(dword~) mulu16_sel::$0 ← call mul16u (word) mulu16_sel::v1 (word) mulu16_sel::v2
|
||||
(dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select
|
||||
@ -1846,8 +1923,8 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel mulu16_sel::@1
|
||||
to:@return
|
||||
mulu16_sel::@1: scope:[mulu16_sel] from
|
||||
to:mulu16_sel::@return
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
mulu8_sel: scope:[mulu8_sel] from
|
||||
(word~) mulu8_sel::$0 ← call mul8u (byte) mulu8_sel::v1 (byte) mulu8_sel::v2
|
||||
(word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select
|
||||
@ -1860,11 +1937,11 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel mulu8_sel::@1
|
||||
to:@return
|
||||
mulu8_sel::@1: scope:[mulu8_sel] from
|
||||
to:mulu8_sel::@return
|
||||
@19: scope:[] from @18
|
||||
@20: scope:[] from @19
|
||||
(byte*) print_screen ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@20
|
||||
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
|
||||
@ -1902,8 +1979,8 @@ print_str_lines::@10: scope:[print_str_lines] from
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
@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
|
||||
@ -1911,8 +1988,8 @@ print_str_ln: scope:[print_str_ln] from
|
||||
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_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -1935,8 +2012,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@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
|
||||
@ -1959,8 +2036,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
|
||||
@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
|
||||
@ -1975,8 +2052,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
|
||||
(bool~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sword::$1 ← ! (bool~) print_sword::$0
|
||||
@ -1994,8 +2071,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
|
||||
(bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sbyte::$1 ← ! (bool~) print_sbyte::$0
|
||||
@ -2013,8 +2090,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
|
||||
@ -2024,8 +2101,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
|
||||
@ -2035,8 +2112,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
|
||||
(bool~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sdword::$1 ← ! (bool~) print_sdword::$0
|
||||
@ -2054,9 +2131,9 @@ 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
|
||||
@30: scope:[] from @29
|
||||
(byte[]) print_hextab ← (string) "0123456789abcdef"
|
||||
to:@30
|
||||
to:@31
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
(void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0)
|
||||
@ -2066,8 +2143,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
|
||||
@ -2075,8 +2152,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
|
||||
@ -2094,8 +2171,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
|
||||
@ -2104,8 +2181,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/word/signed word/dword/signed dword) 192
|
||||
(signed byte[192]) main::sintabb ← { fill( 192, 0) }
|
||||
@ -2144,16 +2221,16 @@ 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
|
||||
Removing unused procedure mul8s
|
||||
Removing unused procedure mul8su
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin16s_gen2
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
Removing unused procedure print_str_at
|
||||
@ -2162,6 +2239,7 @@ Removing unused procedure print_sdword
|
||||
Removing unused procedure print_set_screen
|
||||
Removing unused procedure div8u
|
||||
Removing unused procedure divr16s
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure print_ln
|
||||
Removing unused procedure print_dword
|
||||
Removing unused procedure divr8u
|
||||
@ -2206,32 +2284,33 @@ Removing empty block mul16u::@9
|
||||
Removing empty block @12
|
||||
Removing empty block sin16s_gen::@2
|
||||
Removing empty block @14
|
||||
Removing empty block sin8s_gen::@2
|
||||
Removing empty block @15
|
||||
Removing empty block sin16s::@7
|
||||
Removing empty block sin8s_gen::@2
|
||||
Removing empty block @16
|
||||
Removing empty block sin8s::@9
|
||||
Removing empty block sin16s::@7
|
||||
Removing empty block @17
|
||||
Removing empty block mulu16_sel::@1
|
||||
Removing empty block sin8s::@9
|
||||
Removing empty block @18
|
||||
Removing empty block mulu16_sel::@1
|
||||
Removing empty block @19
|
||||
Removing empty block mulu8_sel::@1
|
||||
Removing empty block @20
|
||||
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 @22
|
||||
Removing empty block @23
|
||||
Removing empty block @24
|
||||
Removing empty block @25
|
||||
Removing empty block @26
|
||||
Removing empty block @27
|
||||
Removing empty block @28
|
||||
Removing empty block @30
|
||||
Removing empty block @29
|
||||
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
|
||||
@ -2510,7 +2589,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3
|
||||
(word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736
|
||||
(word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868
|
||||
(word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434
|
||||
to:@19
|
||||
to:@20
|
||||
sin16s_gen: scope:[sin16s_gen] from main::@5
|
||||
(signed word*) sin16s_gen::sintab#5 ← phi( main::@5/(signed word*) sin16s_gen::sintab#1 )
|
||||
(word) rem16u#32 ← phi( main::@5/(word) rem16u#12 )
|
||||
@ -2918,12 +2997,12 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2
|
||||
(byte) mulu8_sel::return#6 ← (byte) mulu8_sel::return#12
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @13
|
||||
@20: scope:[] from @13
|
||||
(word) rem16u#43 ← phi( @13/(word) rem16u#45 )
|
||||
(byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
|
||||
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
|
||||
to:@29
|
||||
to:@30
|
||||
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 )
|
||||
@ -2982,13 +3061,13 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@3
|
||||
(byte*) print_char_cursor#5 ← (byte*) print_char_cursor#23
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @19
|
||||
(byte*) print_screen#8 ← phi( @19/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#48 ← phi( @19/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#15 ← phi( @19/(byte*) print_line_cursor#0 )
|
||||
(word) rem16u#42 ← phi( @19/(word) rem16u#43 )
|
||||
@30: scope:[] from @20
|
||||
(byte*) print_screen#8 ← phi( @20/(byte*) print_screen#0 )
|
||||
(byte*) print_char_cursor#48 ← phi( @20/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#15 ← phi( @20/(byte*) print_line_cursor#0 )
|
||||
(word) rem16u#42 ← phi( @20/(word) rem16u#43 )
|
||||
(byte[]) print_hextab#0 ← (const string) $0
|
||||
to:@34
|
||||
to:@35
|
||||
print_byte: scope:[print_byte] from print_sbyte::@1
|
||||
(byte*) print_char_cursor#39 ← phi( print_sbyte::@1/(byte*) print_char_cursor#37 )
|
||||
(byte) print_byte::b#1 ← phi( print_sbyte::@1/(byte) print_byte::b#0 )
|
||||
@ -3049,11 +3128,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 @34
|
||||
(byte*) print_char_cursor#49 ← phi( @34/(byte*) print_char_cursor#43 )
|
||||
(byte*) print_line_cursor#16 ← phi( @34/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#6 ← phi( @34/(byte*) print_screen#7 )
|
||||
(word) rem16u#36 ← phi( @34/(word) rem16u#38 )
|
||||
main: scope:[main] from @35
|
||||
(byte*) print_char_cursor#49 ← phi( @35/(byte*) print_char_cursor#43 )
|
||||
(byte*) print_line_cursor#16 ← phi( @35/(byte*) print_line_cursor#12 )
|
||||
(byte*) print_screen#6 ← phi( @35/(byte*) print_screen#7 )
|
||||
(word) rem16u#36 ← phi( @35/(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
|
||||
@ -3160,31 +3239,31 @@ main::@return: scope:[main] from main::@9
|
||||
(byte*) print_char_cursor#17 ← (byte*) print_char_cursor#34
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @29
|
||||
(byte*) print_screen#7 ← phi( @29/(byte*) print_screen#8 )
|
||||
(byte*) print_char_cursor#43 ← phi( @29/(byte*) print_char_cursor#48 )
|
||||
(byte*) print_line_cursor#12 ← phi( @29/(byte*) print_line_cursor#15 )
|
||||
(word) rem16u#38 ← phi( @29/(word) rem16u#42 )
|
||||
@35: scope:[] from @30
|
||||
(byte*) print_screen#7 ← phi( @30/(byte*) print_screen#8 )
|
||||
(byte*) print_char_cursor#43 ← phi( @30/(byte*) print_char_cursor#48 )
|
||||
(byte*) print_line_cursor#12 ← phi( @30/(byte*) print_line_cursor#15 )
|
||||
(word) rem16u#38 ← phi( @30/(word) rem16u#42 )
|
||||
call main
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
(byte*) print_char_cursor#35 ← phi( @34/(byte*) print_char_cursor#17 )
|
||||
(byte*) print_line_cursor#9 ← phi( @34/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#29 ← phi( @34/(word) rem16u#14 )
|
||||
to:@36
|
||||
@36: scope:[] from @35
|
||||
(byte*) print_char_cursor#35 ← phi( @35/(byte*) print_char_cursor#17 )
|
||||
(byte*) print_line_cursor#9 ← phi( @35/(byte*) print_line_cursor#4 )
|
||||
(word) rem16u#29 ← phi( @35/(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 @35
|
||||
@end: scope:[] from @36
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(const string) $0 = (string) "0123456789abcdef"
|
||||
(label) @13
|
||||
(label) @19
|
||||
(label) @2
|
||||
(label) @29
|
||||
(label) @34
|
||||
(label) @20
|
||||
(label) @30
|
||||
(label) @35
|
||||
(label) @36
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
@ -4779,14 +4858,14 @@ Culled Empty Block (label) @2
|
||||
Culled Empty Block (label) mul8u::@3
|
||||
Culled Empty Block (label) mul16u::@3
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @19
|
||||
Culled Empty Block (label) @20
|
||||
Culled Empty Block (label) print_sbyte::@3
|
||||
Culled Empty Block (label) @29
|
||||
Culled Empty Block (label) @30
|
||||
Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) main::@7
|
||||
Culled Empty Block (label) main::@10
|
||||
Culled Empty Block (label) @35
|
||||
Culled Empty Block (label) @36
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: rem16u#1 divr16u::rem#10
|
||||
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
|
||||
@ -5195,7 +5274,7 @@ Constant inlined sin8s_gen::i#0 = (byte/signed byte/word/signed word/dword/signe
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Identical Phi Values (word) divr16u::divisor#7 (const word) main::wavelength#0
|
||||
Succesful SSA optimization Pass2IdenticalPhiElimination
|
||||
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_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 @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_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)
|
||||
@ -5216,9 +5295,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 @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_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 @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_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 @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
|
||||
@ -5387,9 +5466,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 @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_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 @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_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 @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
|
||||
@ -5441,14 +5520,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 [ ] ( )
|
||||
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 sin8s_gen [ ] ( main:2 [ ] )
|
||||
to:main::@5
|
||||
@ -5913,107 +5992,107 @@ div16u::@return: scope:[div16u] from div16u::@2
|
||||
|
||||
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::@5 main @34 @begin
|
||||
main::@6 dominated by main::@5 main::@6 main @34 @begin
|
||||
main::@1 dominated by main::@1 main::@5 main::@6 main @34 @begin
|
||||
main::@3 dominated by main::@1 main::@5 main::@6 main::@3 main @34 @begin
|
||||
main::@2 dominated by main::@1 main::@2 main::@5 main::@6 main @34 @begin
|
||||
main::@8 dominated by main::@8 main::@1 main::@2 main::@5 main::@6 main @34 @begin
|
||||
main::@9 dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main @34 @begin
|
||||
main::@return dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main::@return main @34 @begin
|
||||
print_str dominated by main::@1 main::@5 main::@6 print_str main @34 @begin
|
||||
print_str::@1 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str main @34 @begin
|
||||
print_str::@return dominated by main::@1 main::@5 main::@6 print_str::@return print_str::@1 print_str main @34 @begin
|
||||
print_str::@2 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str::@2 print_str main @34 @begin
|
||||
print_sbyte dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main @34 @begin
|
||||
print_sbyte::@2 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@2 @34 @begin
|
||||
print_sbyte::@4 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@4 print_sbyte::@2 @34 @begin
|
||||
print_sbyte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@1 @34 @begin
|
||||
print_sbyte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@1 @34 @begin print_sbyte::@return
|
||||
print_byte dominated by main::@1 main::@2 main::@5 main::@6 print_byte print_sbyte main print_sbyte::@1 @34 @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 @34 @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 @34 @begin print_byte::@return
|
||||
print_char dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_char @34 @begin
|
||||
print_char::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_char @34 print_char::@return @begin
|
||||
print_cls dominated by main::@5 main::@6 print_cls main @34 @begin
|
||||
print_cls::@1 dominated by main::@5 main::@6 print_cls main @34 @begin print_cls::@1
|
||||
print_cls::@return dominated by main::@5 main::@6 print_cls main @34 @begin print_cls::@return print_cls::@1
|
||||
sin16s_gen dominated by main::@5 sin16s_gen main @34 @begin
|
||||
sin16s_gen::@3 dominated by main::@5 sin16s_gen sin16s_gen::@3 main @34 @begin
|
||||
sin16s_gen::@1 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 main @34 @begin
|
||||
sin16s_gen::@4 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 main @34 @begin
|
||||
sin16s_gen::@return dominated by main::@5 sin16s_gen::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 main @34 @begin
|
||||
sin16s dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 main @34 @begin
|
||||
sin16s::@4 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4 main @34 @begin
|
||||
sin16s::@1 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 main @34 @begin
|
||||
sin16s::@5 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5 main @34 @begin
|
||||
sin16s::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 main @34 @begin
|
||||
sin16s::@8 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2 main @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @begin
|
||||
mulu16_sel::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @begin mul16u::@4
|
||||
div32u16u dominated by main::@5 sin16s_gen div32u16u main @34 @begin
|
||||
div32u16u::@2 dominated by main::@5 sin16s_gen div32u16u main div32u16u::@2 @34 @begin
|
||||
div32u16u::@3 dominated by main::@5 sin16s_gen div32u16u main div32u16u::@2 div32u16u::@3 @34 @begin
|
||||
div32u16u::@return dominated by main::@5 sin16s_gen div32u16u div32u16u::@return main div32u16u::@2 div32u16u::@3 @34 @begin
|
||||
divr16u dominated by divr16u main @34 @begin
|
||||
divr16u::@1 dominated by divr16u::@1 divr16u main @34 @begin
|
||||
divr16u::@4 dominated by divr16u::@1 divr16u::@4 divr16u main @34 @begin
|
||||
divr16u::@2 dominated by divr16u::@2 divr16u::@1 divr16u main @34 @begin
|
||||
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 divr16u main @34 @begin
|
||||
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u main @34 @begin
|
||||
divr16u::@6 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u main @34 @begin
|
||||
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u::@return divr16u main @34 @begin
|
||||
sin8s_gen dominated by sin8s_gen main @34 @begin
|
||||
sin8s_gen::@3 dominated by sin8s_gen main @34 @begin sin8s_gen::@3
|
||||
sin8s_gen::@1 dominated by sin8s_gen main @34 @begin sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s_gen::@4 dominated by sin8s_gen main @34 @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
|
||||
sin8s_gen::@return dominated by sin8s_gen sin8s_gen::@return main @34 @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
|
||||
sin8s dominated by sin8s_gen main sin8s @34 @begin sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@5 dominated by sin8s_gen main sin8s @34 @begin sin8s::@5 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@1 dominated by sin8s_gen main sin8s @34 @begin sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@6 dominated by sin8s_gen main sin8s @34 @begin sin8s::@1 sin8s::@6 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@2 dominated by sin8s_gen main sin8s @34 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@10 dominated by sin8s_gen sin8s::@10 main sin8s @34 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@11 dominated by sin8s_gen sin8s::@11 sin8s::@10 main sin8s @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @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 @34 @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
mulu8_sel dominated by sin8s_gen mulu8_sel main sin8s @34 @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 @34 @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 @34 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mul8u dominated by sin8s_gen mul8u mulu8_sel main sin8s @34 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mul8u::@1 dominated by sin8s_gen mul8u mulu8_sel main sin8s @34 @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 @34 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
|
||||
mul8u::@2 dominated by sin8s_gen mul8u mulu8_sel main sin8s @34 @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 @34 @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 @34 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1 mul8u::@4
|
||||
div16u dominated by div16u sin8s_gen main @34 @begin
|
||||
div16u::@2 dominated by div16u sin8s_gen div16u::@2 main @34 @begin
|
||||
div16u::@return dominated by div16u::@return div16u sin8s_gen div16u::@2 main @34 @begin
|
||||
@35 dominated by @35 @begin
|
||||
@end dominated by @end @35 @begin
|
||||
main dominated by main @35 @begin
|
||||
main::@5 dominated by main::@5 main @35 @begin
|
||||
main::@6 dominated by main::@5 main::@6 main @35 @begin
|
||||
main::@1 dominated by main::@1 main::@5 main::@6 main @35 @begin
|
||||
main::@3 dominated by main::@1 main::@5 main::@6 main::@3 main @35 @begin
|
||||
main::@2 dominated by main::@1 main::@2 main::@5 main::@6 main @35 @begin
|
||||
main::@8 dominated by main::@8 main::@1 main::@2 main::@5 main::@6 main @35 @begin
|
||||
main::@9 dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main @35 @begin
|
||||
main::@return dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main::@return main @35 @begin
|
||||
print_str dominated by main::@1 main::@5 main::@6 print_str main @35 @begin
|
||||
print_str::@1 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str main @35 @begin
|
||||
print_str::@return dominated by main::@1 main::@5 main::@6 print_str::@return print_str::@1 print_str main @35 @begin
|
||||
print_str::@2 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str::@2 print_str main @35 @begin
|
||||
print_sbyte dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main @35 @begin
|
||||
print_sbyte::@2 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@2 @35 @begin
|
||||
print_sbyte::@4 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@4 print_sbyte::@2 @35 @begin
|
||||
print_sbyte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@1 @35 @begin
|
||||
print_sbyte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_sbyte::@1 @35 @begin print_sbyte::@return
|
||||
print_byte dominated by main::@1 main::@2 main::@5 main::@6 print_byte print_sbyte main print_sbyte::@1 @35 @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 @35 @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 @35 @begin print_byte::@return
|
||||
print_char dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_char @35 @begin
|
||||
print_char::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte main print_char print_char::@return @35 @begin
|
||||
print_cls dominated by main::@5 main::@6 print_cls main @35 @begin
|
||||
print_cls::@1 dominated by main::@5 main::@6 print_cls main @35 @begin print_cls::@1
|
||||
print_cls::@return dominated by main::@5 main::@6 print_cls main @35 @begin print_cls::@return print_cls::@1
|
||||
sin16s_gen dominated by main::@5 sin16s_gen main @35 @begin
|
||||
sin16s_gen::@3 dominated by main::@5 sin16s_gen sin16s_gen::@3 main @35 @begin
|
||||
sin16s_gen::@1 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 main @35 @begin
|
||||
sin16s_gen::@4 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 main @35 @begin
|
||||
sin16s_gen::@return dominated by main::@5 sin16s_gen::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 main @35 @begin
|
||||
sin16s dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 main @35 @begin
|
||||
sin16s::@4 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4 main @35 @begin
|
||||
sin16s::@1 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 main @35 @begin
|
||||
sin16s::@5 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5 main @35 @begin
|
||||
sin16s::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 main @35 @begin
|
||||
sin16s::@8 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2 main @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @begin
|
||||
mulu16_sel::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 main @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @begin mul16u::@4
|
||||
div32u16u dominated by main::@5 sin16s_gen div32u16u main @35 @begin
|
||||
div32u16u::@2 dominated by main::@5 sin16s_gen div32u16u main div32u16u::@2 @35 @begin
|
||||
div32u16u::@3 dominated by main::@5 sin16s_gen div32u16u main div32u16u::@2 div32u16u::@3 @35 @begin
|
||||
div32u16u::@return dominated by main::@5 sin16s_gen div32u16u div32u16u::@return main div32u16u::@2 div32u16u::@3 @35 @begin
|
||||
divr16u dominated by divr16u main @35 @begin
|
||||
divr16u::@1 dominated by divr16u::@1 divr16u main @35 @begin
|
||||
divr16u::@4 dominated by divr16u::@1 divr16u::@4 divr16u main @35 @begin
|
||||
divr16u::@2 dominated by divr16u::@2 divr16u::@1 divr16u main @35 @begin
|
||||
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 divr16u main @35 @begin
|
||||
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u main @35 @begin
|
||||
divr16u::@6 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u main @35 @begin
|
||||
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u::@return divr16u main @35 @begin
|
||||
sin8s_gen dominated by sin8s_gen main @35 @begin
|
||||
sin8s_gen::@3 dominated by sin8s_gen main @35 @begin sin8s_gen::@3
|
||||
sin8s_gen::@1 dominated by sin8s_gen main @35 @begin sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s_gen::@4 dominated by sin8s_gen main @35 @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
|
||||
sin8s_gen::@return dominated by sin8s_gen sin8s_gen::@return main @35 @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
|
||||
sin8s dominated by sin8s_gen main sin8s @35 @begin sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@5 dominated by sin8s_gen main sin8s @35 @begin sin8s::@5 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@1 dominated by sin8s_gen main sin8s @35 @begin sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@6 dominated by sin8s_gen main sin8s @35 @begin sin8s::@1 sin8s::@6 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@2 dominated by sin8s_gen main sin8s @35 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@10 dominated by sin8s_gen sin8s::@10 main sin8s @35 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
sin8s::@11 dominated by sin8s_gen sin8s::@11 sin8s::@10 main sin8s @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
|
||||
mulu8_sel dominated by sin8s_gen mulu8_sel main sin8s @35 @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 @35 @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 @35 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mul8u dominated by sin8s_gen mul8u mulu8_sel main sin8s @35 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
|
||||
mul8u::@1 dominated by sin8s_gen mul8u mulu8_sel main sin8s @35 @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 @35 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
|
||||
mul8u::@2 dominated by sin8s_gen mul8u mulu8_sel main sin8s @35 @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 @35 @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 @35 @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1 mul8u::@4
|
||||
div16u dominated by div16u sin8s_gen main @35 @begin
|
||||
div16u::@2 dominated by div16u sin8s_gen div16u::@2 main @35 @begin
|
||||
div16u::@return dominated by div16u::@return div16u sin8s_gen div16u::@2 main @35 @begin
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@9 blocks: null
|
||||
@ -6698,17 +6777,17 @@ INITIAL ASM
|
||||
.label print_char_cursor = 7
|
||||
//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 [ ] ( )
|
||||
//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:
|
||||
@ -8942,17 +9021,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_char_cursor = 5
|
||||
//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 [ ] ( )
|
||||
//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:
|
||||
@ -10459,7 +10538,7 @@ div16u: {
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b34
|
||||
Removing instruction jmp b35
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b5
|
||||
Removing instruction jmp b6
|
||||
@ -10582,9 +10661,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 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_gen_from_b5:
|
||||
Removing instruction b6_from_b5:
|
||||
@ -10627,7 +10706,7 @@ Removing instruction breturn:
|
||||
Removing instruction b4_from_b2:
|
||||
Removing instruction b4_from_b7:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b34:
|
||||
Removing instruction b35:
|
||||
Removing instruction bend:
|
||||
Removing instruction sin8s_gen_from_main:
|
||||
Removing instruction b5:
|
||||
@ -10733,7 +10812,7 @@ Removing unreachable instruction jmp b3
|
||||
Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
@ -11188,12 +11267,12 @@ Score: 28323
|
||||
.label rem16u = 2
|
||||
.label print_char_cursor = 5
|
||||
//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 [ ] ( )
|
||||
//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
|
||||
(word) PI2_u4f12
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@35
|
||||
@35: scope:[] from @begin
|
||||
to:@36
|
||||
@36: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @35
|
||||
@end: scope:[] from @36
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @35
|
||||
main: scope:[main] from @36
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -105,6 +105,23 @@ void sin16s_gen(signed word* sintab, word wavelength) {
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed word sinus table - with values in the range min-max.
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
void sin16s_gen2(signed word* sintab, word wavelength, signed word min, signed word max) {
|
||||
signed word ampl = max-min;
|
||||
signed word offs = min + ampl>>1; // ampl is always positive so shifting left does not alter the sign
|
||||
// u[4.28] step = PI*2/wavelength
|
||||
dword step = div32u16u(PI2_u4f28, wavelength); // u[4.28]
|
||||
// Iterate over the table
|
||||
dword x = 0; // u[4.28]
|
||||
for( word i=0; i<wavelength; i++) {
|
||||
*sintab = offs + (signed word)>mul16s(sin16s(x), ampl); // The signed sin() has values [-7fff;7fff] = [-1/2 ; 1/2], so ampl*sin has the right amplitude
|
||||
sintab = sintab + 2;
|
||||
x = x + step;
|
||||
}
|
||||
}
|
||||
|
||||
// Generate signed byte sinus table - on the full -$7f - $7f range
|
||||
// sintab - the table to generate into
|
||||
// wavelength - the number of sinus points in a total sinus wavelength (the size of the table)
|
||||
@ -427,6 +444,7 @@ signed dword mul16s(signed word a, signed word b) {
|
||||
}
|
||||
|
||||
Adding pre/post-modifier (word) sin16s_gen::i ← ++ (word) sin16s_gen::i
|
||||
Adding pre/post-modifier (word) sin16s_gen2::i ← ++ (word) sin16s_gen2::i
|
||||
Adding pre/post-modifier (signed byte*) sin8s_gen::sintab ← ++ (signed byte*) sin8s_gen::sintab
|
||||
Adding pre/post-modifier (word) sin8s_gen::i ← ++ (word) sin8s_gen::i
|
||||
Adding pre/post-modifier (byte) sin8s::usinx ← -- (byte) sin8s::usinx
|
||||
@ -589,6 +607,7 @@ SYMBOLS
|
||||
(label) @33
|
||||
(label) @34
|
||||
(label) @35
|
||||
(label) @36
|
||||
(label) @4
|
||||
(label) @5
|
||||
(label) @6
|
||||
@ -1105,6 +1124,31 @@ SYMBOLS
|
||||
(dword) sin16s_gen::step
|
||||
(word) sin16s_gen::wavelength
|
||||
(dword) sin16s_gen::x
|
||||
(void()) sin16s_gen2((signed word*) sin16s_gen2::sintab , (word) sin16s_gen2::wavelength , (signed word) sin16s_gen2::min , (signed word) sin16s_gen2::max)
|
||||
(signed word~) sin16s_gen2::$0
|
||||
(signed word~) sin16s_gen2::$1
|
||||
(dword~) sin16s_gen2::$10
|
||||
(bool~) sin16s_gen2::$11
|
||||
(signed word~) sin16s_gen2::$2
|
||||
(dword~) sin16s_gen2::$3
|
||||
(signed word~) sin16s_gen2::$4
|
||||
(signed dword~) sin16s_gen2::$5
|
||||
(word~) sin16s_gen2::$6
|
||||
(signed word~) sin16s_gen2::$7
|
||||
(signed word~) sin16s_gen2::$8
|
||||
(signed word*~) sin16s_gen2::$9
|
||||
(label) sin16s_gen2::@1
|
||||
(label) sin16s_gen2::@2
|
||||
(label) sin16s_gen2::@return
|
||||
(signed word) sin16s_gen2::ampl
|
||||
(word) sin16s_gen2::i
|
||||
(signed word) sin16s_gen2::max
|
||||
(signed word) sin16s_gen2::min
|
||||
(signed word) sin16s_gen2::offs
|
||||
(signed word*) sin16s_gen2::sintab
|
||||
(dword) sin16s_gen2::step
|
||||
(word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::x
|
||||
(signed byte()) sin8s((word) sin8s::x)
|
||||
(bool~) sin8s::$0
|
||||
(bool~) sin8s::$1
|
||||
@ -1754,6 +1798,39 @@ sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@2
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
sin16s_gen2: scope:[sin16s_gen2] from
|
||||
(signed word~) sin16s_gen2::$0 ← (signed word) sin16s_gen2::max - (signed word) sin16s_gen2::min
|
||||
(signed word) sin16s_gen2::ampl ← (signed word~) sin16s_gen2::$0
|
||||
(signed word~) sin16s_gen2::$1 ← (signed word) sin16s_gen2::ampl >> (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(signed word~) sin16s_gen2::$2 ← (signed word) sin16s_gen2::min + (signed word~) sin16s_gen2::$1
|
||||
(signed word) sin16s_gen2::offs ← (signed word~) sin16s_gen2::$2
|
||||
(dword~) sin16s_gen2::$3 ← call div32u16u (dword) PI2_u4f28 (word) sin16s_gen2::wavelength
|
||||
(dword) sin16s_gen2::step ← (dword~) sin16s_gen2::$3
|
||||
(dword) sin16s_gen2::x ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) sin16s_gen2::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:sin16s_gen2::@1
|
||||
sin16s_gen2::@1: scope:[sin16s_gen2] from sin16s_gen2 sin16s_gen2::@1
|
||||
(signed word~) sin16s_gen2::$4 ← call sin16s (dword) sin16s_gen2::x
|
||||
(signed dword~) sin16s_gen2::$5 ← call mul16s (signed word~) sin16s_gen2::$4 (signed word) sin16s_gen2::ampl
|
||||
(word~) sin16s_gen2::$6 ← > (signed dword~) sin16s_gen2::$5
|
||||
(signed word~) sin16s_gen2::$7 ← ((signed word)) (word~) sin16s_gen2::$6
|
||||
(signed word~) sin16s_gen2::$8 ← (signed word) sin16s_gen2::offs + (signed word~) sin16s_gen2::$7
|
||||
*((signed word*) sin16s_gen2::sintab) ← (signed word~) sin16s_gen2::$8
|
||||
(signed word*~) sin16s_gen2::$9 ← (signed word*) sin16s_gen2::sintab + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
(signed word*) sin16s_gen2::sintab ← (signed word*~) sin16s_gen2::$9
|
||||
(dword~) sin16s_gen2::$10 ← (dword) sin16s_gen2::x + (dword) sin16s_gen2::step
|
||||
(dword) sin16s_gen2::x ← (dword~) sin16s_gen2::$10
|
||||
(word) sin16s_gen2::i ← ++ (word) sin16s_gen2::i
|
||||
(bool~) sin16s_gen2::$11 ← (word) sin16s_gen2::i < (word) sin16s_gen2::wavelength
|
||||
if((bool~) sin16s_gen2::$11) goto sin16s_gen2::@1
|
||||
to:sin16s_gen2::@2
|
||||
sin16s_gen2::@2: scope:[sin16s_gen2] from sin16s_gen2::@1
|
||||
to:sin16s_gen2::@return
|
||||
sin16s_gen2::@return: scope:[sin16s_gen2] from sin16s_gen2::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
sin8s_gen: scope:[sin8s_gen] from
|
||||
(word~) sin8s_gen::$0 ← call div16u (word) PI2_u4f12 (word) sin8s_gen::wavelength
|
||||
(word) sin8s_gen::step ← (word~) sin8s_gen::$0
|
||||
@ -1775,8 +1852,8 @@ sin8s_gen::@2: scope:[sin8s_gen] from sin8s_gen::@1
|
||||
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
sin16s: scope:[sin16s] from
|
||||
(byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28
|
||||
@ -1838,8 +1915,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3 sin16s::@7
|
||||
to:@return
|
||||
sin16s::@7: scope:[sin16s] from
|
||||
to:sin16s::@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
sin8s: scope:[sin8s] from
|
||||
(byte) sin8s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) sin8s::$0 ← (word) sin8s::x >= (word) PI_u4f12
|
||||
@ -1909,8 +1986,8 @@ sin8s::@return: scope:[sin8s] from sin8s::@4 sin8s::@9
|
||||
to:@return
|
||||
sin8s::@9: scope:[sin8s] from
|
||||
to:sin8s::@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
mulu16_sel: scope:[mulu16_sel] from
|
||||
(dword~) mulu16_sel::$0 ← call mul16u (word) mulu16_sel::v1 (word) mulu16_sel::v2
|
||||
(dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select
|
||||
@ -1923,8 +2000,8 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel mulu16_sel::@1
|
||||
to:@return
|
||||
mulu16_sel::@1: scope:[mulu16_sel] from
|
||||
to:mulu16_sel::@return
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
mulu8_sel: scope:[mulu8_sel] from
|
||||
(word~) mulu8_sel::$0 ← call mul8u (byte) mulu8_sel::v1 (byte) mulu8_sel::v2
|
||||
(word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select
|
||||
@ -1937,11 +2014,11 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel mulu8_sel::@1
|
||||
to:@return
|
||||
mulu8_sel::@1: scope:[mulu8_sel] from
|
||||
to:mulu8_sel::@return
|
||||
@19: scope:[] from @18
|
||||
@20: scope:[] from @19
|
||||
(byte*) print_screen ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor ← (byte*) print_screen
|
||||
(byte*) print_char_cursor ← (byte*) print_line_cursor
|
||||
to:@20
|
||||
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
|
||||
@ -1979,8 +2056,8 @@ print_str_lines::@10: scope:[print_str_lines] from
|
||||
print_str_lines::@return: scope:[print_str_lines] from print_str_lines::@3
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
@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
|
||||
@ -1988,8 +2065,8 @@ print_str_ln: scope:[print_str_ln] from
|
||||
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_str: scope:[print_str] from
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
@ -2012,8 +2089,8 @@ print_str::@6: scope:[print_str] from
|
||||
print_str::@return: scope:[print_str] from print_str::@3
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@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
|
||||
@ -2036,8 +2113,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
|
||||
@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
|
||||
@ -2052,8 +2129,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
|
||||
(bool~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sword::$1 ← ! (bool~) print_sword::$0
|
||||
@ -2071,8 +2148,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
|
||||
(bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sbyte::$1 ← ! (bool~) print_sbyte::$0
|
||||
@ -2090,8 +2167,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
|
||||
@ -2101,8 +2178,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
|
||||
@ -2112,8 +2189,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
|
||||
(bool~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(bool~) print_sdword::$1 ← ! (bool~) print_sdword::$0
|
||||
@ -2131,9 +2208,9 @@ 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
|
||||
@30: scope:[] from @29
|
||||
(byte[]) print_hextab ← (string) "0123456789abcdef"
|
||||
to:@30
|
||||
to:@31
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
(void~) print_byte::$1 ← call print_char *((byte[]) print_hextab + (byte~) print_byte::$0)
|
||||
@ -2143,8 +2220,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
|
||||
@ -2152,8 +2229,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
|
||||
@ -2171,8 +2248,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
|
||||
@ -2181,8 +2258,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::tabsize ← (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
(byte[20]) main::sintab ← { fill( 20, 0) }
|
||||
@ -2192,8 +2269,8 @@ main: scope:[main] from
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
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
|
||||
@ -2251,16 +2328,16 @@ sin8u_table::@2: scope:[sin8u_table] from sin8u_table::@1
|
||||
sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@2
|
||||
return
|
||||
to:@return
|
||||
@35: scope:[] from @34
|
||||
@36: scope:[] from @35
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @35
|
||||
@end: scope:[] from @36
|
||||
|
||||
Removing unused procedure div8s
|
||||
Removing unused procedure div16s
|
||||
Removing unused procedure mul8s
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin16s_gen
|
||||
Removing unused procedure sin16s_gen2
|
||||
Removing unused procedure sin8s_gen
|
||||
Removing unused procedure print_str_lines
|
||||
Removing unused procedure print_str_ln
|
||||
@ -2270,6 +2347,7 @@ Removing unused procedure print_set_screen
|
||||
Removing unused procedure div8u
|
||||
Removing unused procedure div32u16u
|
||||
Removing unused procedure divr16s
|
||||
Removing unused procedure mul16s
|
||||
Removing unused procedure sin16s
|
||||
Removing unused procedure print_dword
|
||||
Removing unused procedure divr8u
|
||||
@ -2343,28 +2421,29 @@ Removing empty block @12
|
||||
Removing empty block @14
|
||||
Removing empty block @15
|
||||
Removing empty block @16
|
||||
Removing empty block sin8s::@9
|
||||
Removing empty block @17
|
||||
Removing empty block sin8s::@9
|
||||
Removing empty block @18
|
||||
Removing empty block @19
|
||||
Removing empty block mulu8_sel::@1
|
||||
Removing empty block @20
|
||||
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 @22
|
||||
Removing empty block @23
|
||||
Removing empty block @24
|
||||
Removing empty block @25
|
||||
Removing empty block @26
|
||||
Removing empty block @27
|
||||
Removing empty block @28
|
||||
Removing empty block @30
|
||||
Removing empty block @29
|
||||
Removing empty block @31
|
||||
Removing empty block @32
|
||||
Removing empty block @33
|
||||
Removing empty block @34
|
||||
Removing empty block @35
|
||||
Removing empty block sin8u_table::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
divr16u modifies rem16u
|
||||
@ -2609,7 +2688,7 @@ mul8su::@return: scope:[mul8su] from mul8su::@1
|
||||
(word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736
|
||||
(word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868
|
||||
(word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434
|
||||
to:@19
|
||||
to:@20
|
||||
sin8s: scope:[sin8s] from sin8u_table::@1
|
||||
(word) sin8s::x#3 ← phi( sin8u_table::@1/(word) sin8s::x#2 )
|
||||
(byte) sin8s::isUpper#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -2766,12 +2845,12 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2
|
||||
(byte) mulu8_sel::return#6 ← (byte) mulu8_sel::return#12
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @13
|
||||
@20: scope:[] from @13
|
||||
(word) rem16u#26 ← phi( @13/(word) rem16u#28 )
|
||||
(byte*) print_screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) print_line_cursor#0 ← (byte*) print_screen#0
|
||||
(byte*) print_char_cursor#0 ← (byte*) print_line_cursor#0
|
||||
to:@29
|
||||
to:@30
|
||||
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 )
|
||||
@ -2913,13 +2992,13 @@ print_word::@return: scope:[print_word] from print_word::@2
|
||||
(byte*) print_char_cursor#13 ← (byte*) print_char_cursor#58
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @19
|
||||
(byte*) print_screen#6 ← phi( @19/(byte*) print_screen#0 )
|
||||
(word) rem16u#25 ← phi( @19/(word) rem16u#26 )
|
||||
(byte*) print_char_cursor#107 ← phi( @19/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#30 ← phi( @19/(byte*) print_line_cursor#0 )
|
||||
@30: scope:[] from @20
|
||||
(byte*) print_screen#6 ← phi( @20/(byte*) print_screen#0 )
|
||||
(word) rem16u#25 ← phi( @20/(word) rem16u#26 )
|
||||
(byte*) print_char_cursor#107 ← phi( @20/(byte*) print_char_cursor#0 )
|
||||
(byte*) print_line_cursor#30 ← phi( @20/(byte*) print_line_cursor#0 )
|
||||
(byte[]) print_hextab#0 ← (const string) $0
|
||||
to:@35
|
||||
to:@36
|
||||
print_byte: scope:[print_byte] from print_sbyte::@1 print_word print_word::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@23 sin8u_table::@6 sin8u_table::@8
|
||||
(byte*) print_char_cursor#97 ← phi( print_sbyte::@1/(byte*) print_char_cursor#94 print_word/(byte*) print_char_cursor#96 print_word::@1/(byte*) print_char_cursor#11 sin8u_table::@10/(byte*) print_char_cursor#30 sin8u_table::@12/(byte*) print_char_cursor#32 sin8u_table::@23/(byte*) print_char_cursor#41 sin8u_table::@6/(byte*) print_char_cursor#26 sin8u_table::@8/(byte*) print_char_cursor#28 )
|
||||
(byte) print_byte::b#8 ← phi( print_sbyte::@1/(byte) print_byte::b#0 print_word/(byte) print_byte::b#1 print_word::@1/(byte) print_byte::b#2 sin8u_table::@10/(byte) print_byte::b#5 sin8u_table::@12/(byte) print_byte::b#6 sin8u_table::@23/(byte) print_byte::b#7 sin8u_table::@6/(byte) print_byte::b#3 sin8u_table::@8/(byte) print_byte::b#4 )
|
||||
@ -2980,11 +3059,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 @35
|
||||
(word) rem16u#23 ← phi( @35/(word) rem16u#22 )
|
||||
(byte*) print_char_cursor#98 ← phi( @35/(byte*) print_char_cursor#101 )
|
||||
(byte*) print_line_cursor#24 ← phi( @35/(byte*) print_line_cursor#27 )
|
||||
(byte*) print_screen#4 ← phi( @35/(byte*) print_screen#5 )
|
||||
main: scope:[main] from @36
|
||||
(word) rem16u#23 ← phi( @36/(word) rem16u#22 )
|
||||
(byte*) print_char_cursor#98 ← phi( @36/(byte*) print_char_cursor#101 )
|
||||
(byte*) print_line_cursor#24 ← phi( @36/(byte*) print_line_cursor#27 )
|
||||
(byte*) print_screen#4 ← phi( @36/(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
|
||||
@ -3429,31 +3508,31 @@ sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@25
|
||||
(byte*) print_line_cursor#10 ← (byte*) print_line_cursor#21
|
||||
return
|
||||
to:@return
|
||||
@35: scope:[] from @29
|
||||
(byte*) print_screen#5 ← phi( @29/(byte*) print_screen#6 )
|
||||
(word) rem16u#22 ← phi( @29/(word) rem16u#25 )
|
||||
(byte*) print_char_cursor#101 ← phi( @29/(byte*) print_char_cursor#107 )
|
||||
(byte*) print_line_cursor#27 ← phi( @29/(byte*) print_line_cursor#30 )
|
||||
@36: scope:[] from @30
|
||||
(byte*) print_screen#5 ← phi( @30/(byte*) print_screen#6 )
|
||||
(word) rem16u#22 ← phi( @30/(word) rem16u#25 )
|
||||
(byte*) print_char_cursor#101 ← phi( @30/(byte*) print_char_cursor#107 )
|
||||
(byte*) print_line_cursor#27 ← phi( @30/(byte*) print_line_cursor#30 )
|
||||
call main
|
||||
to:@36
|
||||
@36: scope:[] from @35
|
||||
(word) rem16u#17 ← phi( @35/(word) rem16u#6 )
|
||||
(byte*) print_char_cursor#89 ← phi( @35/(byte*) print_char_cursor#23 )
|
||||
(byte*) print_line_cursor#22 ← phi( @35/(byte*) print_line_cursor#7 )
|
||||
to:@37
|
||||
@37: scope:[] from @36
|
||||
(word) rem16u#17 ← phi( @36/(word) rem16u#6 )
|
||||
(byte*) print_char_cursor#89 ← phi( @36/(byte*) print_char_cursor#23 )
|
||||
(byte*) print_line_cursor#22 ← phi( @36/(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 @36
|
||||
@end: scope:[] from @37
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(const string) $0 = (string) "0123456789abcdef"
|
||||
(label) @13
|
||||
(label) @19
|
||||
(label) @2
|
||||
(label) @29
|
||||
(label) @35
|
||||
(label) @20
|
||||
(label) @30
|
||||
(label) @36
|
||||
(label) @37
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
@ -5117,17 +5196,17 @@ Culled Empty Block (label) @2
|
||||
Culled Empty Block (label) divr16u::@6
|
||||
Culled Empty Block (label) mul8u::@3
|
||||
Culled Empty Block (label) @13
|
||||
Culled Empty Block (label) @19
|
||||
Culled Empty Block (label) @20
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) print_sword::@3
|
||||
Culled Empty Block (label) print_sbyte::@3
|
||||
Culled Empty Block (label) print_word::@2
|
||||
Culled Empty Block (label) @29
|
||||
Culled Empty Block (label) @30
|
||||
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) @36
|
||||
Culled Empty Block (label) @37
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
|
||||
Not aliassing across scopes: div16u::return#0 divr16u::return#2
|
||||
@ -5383,7 +5462,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 @35 @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 @36 @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)
|
||||
@ -5399,9 +5478,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 @35 @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 @36 @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 @35
|
||||
Adding NOP phi() at start of @36
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -5582,9 +5661,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 @35 @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 @36 @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 @35
|
||||
Adding NOP phi() at start of @36
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -5663,14 +5742,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@35
|
||||
@35: scope:[] from @begin
|
||||
to:@36
|
||||
@36: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @35
|
||||
@end: scope:[] from @36
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @35
|
||||
main: scope:[main] from @36
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -6096,104 +6175,104 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@35 dominated by @35 @begin
|
||||
@end dominated by @end @35 @begin
|
||||
main dominated by main @35 @begin
|
||||
main::@1 dominated by main::@1 main @35 @begin
|
||||
main::@return dominated by main::@1 main::@return main @35 @begin
|
||||
sin8u_table dominated by main::@1 sin8u_table main @35 @begin
|
||||
sin8u_table::@3 dominated by main::@1 sin8u_table main @35 @begin sin8u_table::@3
|
||||
sin8u_table::@4 dominated by main::@1 sin8u_table main @35 @begin sin8u_table::@3 sin8u_table::@4
|
||||
sin8u_table::@5 dominated by main::@1 sin8u_table main @35 @begin sin8u_table::@3 sin8u_table::@4 sin8u_table::@5
|
||||
sin8u_table::@6 dominated by main::@1 sin8u_table main @35 @begin sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6
|
||||
sin8u_table::@7 dominated by main::@1 sin8u_table main @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_byte::@1 dominated by main::@1 sin8u_table print_byte::@1 print_byte main @35 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_byte::@return dominated by main::@1 sin8u_table print_byte::@1 print_byte main @35 @begin print_byte::@return sin8u_table::@3 sin8u_table::@4
|
||||
print_char dominated by main::@1 sin8u_table main print_char @35 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_char::@return dominated by main::@1 sin8u_table main print_char print_char::@return @35 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_str dominated by main::@1 sin8u_table print_str main @35 @begin sin8u_table::@3
|
||||
print_str::@1 dominated by main::@1 print_str::@1 sin8u_table print_str main @35 @begin sin8u_table::@3
|
||||
print_str::@return dominated by main::@1 print_str::@return print_str::@1 sin8u_table print_str main @35 @begin sin8u_table::@3
|
||||
print_str::@2 dominated by main::@1 print_str::@1 print_str::@2 sin8u_table print_str main @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @begin sin8u_table::@3 sin8u_table::@4
|
||||
print_word::@1 dominated by print_word main::@1 sin8u_table print_word::@1 main @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @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 @35 @begin
|
||||
div16u::@2 dominated by main::@1 div16u div16u::@2 sin8u_table main @35 @begin
|
||||
div16u::@return dominated by div16u::@return main::@1 div16u div16u::@2 sin8u_table main @35 @begin
|
||||
divr16u dominated by main::@1 div16u sin8u_table divr16u main @35 @begin
|
||||
divr16u::@1 dominated by divr16u::@1 main::@1 div16u sin8u_table divr16u main @35 @begin
|
||||
divr16u::@4 dominated by divr16u::@1 divr16u::@4 main::@1 div16u sin8u_table divr16u main @35 @begin
|
||||
divr16u::@2 dominated by divr16u::@2 divr16u::@1 main::@1 div16u sin8u_table divr16u main @35 @begin
|
||||
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 main::@1 div16u sin8u_table divr16u main @35 @begin
|
||||
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 main::@1 div16u sin8u_table divr16u main @35 @begin
|
||||
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 main::@1 div16u sin8u_table divr16u::@return divr16u main @35 @begin
|
||||
print_cls dominated by print_cls main @35 @begin
|
||||
print_cls::@1 dominated by print_cls main @35 @begin print_cls::@1
|
||||
print_cls::@return dominated by print_cls main @35 @begin print_cls::@return print_cls::@1
|
||||
@36 dominated by @begin @36
|
||||
@end dominated by @end @begin @36
|
||||
main dominated by main @begin @36
|
||||
main::@1 dominated by main::@1 main @begin @36
|
||||
main::@return dominated by main::@1 main::@return main @begin @36
|
||||
sin8u_table dominated by main::@1 sin8u_table main @begin @36
|
||||
sin8u_table::@3 dominated by main::@1 sin8u_table main @begin @36 sin8u_table::@3
|
||||
sin8u_table::@4 dominated by main::@1 sin8u_table main @begin @36 sin8u_table::@3 sin8u_table::@4
|
||||
sin8u_table::@5 dominated by main::@1 sin8u_table main @begin @36 sin8u_table::@3 sin8u_table::@4 sin8u_table::@5
|
||||
sin8u_table::@6 dominated by main::@1 sin8u_table main @begin @36 sin8u_table::@3 sin8u_table::@4 sin8u_table::@5 sin8u_table::@6
|
||||
sin8u_table::@7 dominated by main::@1 sin8u_table main @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 sin8u_table::@3 sin8u_table::@4
|
||||
print_byte::@1 dominated by main::@1 sin8u_table print_byte::@1 print_byte main @begin @36 sin8u_table::@3 sin8u_table::@4
|
||||
print_byte::@return dominated by main::@1 sin8u_table print_byte::@1 print_byte main @begin @36 print_byte::@return sin8u_table::@3 sin8u_table::@4
|
||||
print_char dominated by main::@1 sin8u_table main print_char @begin @36 sin8u_table::@3 sin8u_table::@4
|
||||
print_char::@return dominated by main::@1 sin8u_table main print_char print_char::@return @begin @36 sin8u_table::@3 sin8u_table::@4
|
||||
print_str dominated by main::@1 sin8u_table print_str main @begin @36 sin8u_table::@3
|
||||
print_str::@1 dominated by main::@1 print_str::@1 sin8u_table print_str main @begin @36 sin8u_table::@3
|
||||
print_str::@return dominated by main::@1 print_str::@return print_str::@1 sin8u_table print_str main @begin @36 sin8u_table::@3
|
||||
print_str::@2 dominated by main::@1 print_str::@1 print_str::@2 sin8u_table print_str main @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 sin8u_table::@3 sin8u_table::@4
|
||||
print_word::@1 dominated by print_word main::@1 sin8u_table print_word::@1 main @begin @36 sin8u_table::@3 sin8u_table::@4
|
||||
print_word::@return dominated by print_word main::@1 print_word::@return sin8u_table print_word::@1 main @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36 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 @begin @36
|
||||
div16u::@2 dominated by main::@1 div16u div16u::@2 sin8u_table main @begin @36
|
||||
div16u::@return dominated by div16u::@return main::@1 div16u div16u::@2 sin8u_table main @begin @36
|
||||
divr16u dominated by main::@1 div16u sin8u_table divr16u main @begin @36
|
||||
divr16u::@1 dominated by divr16u::@1 main::@1 div16u sin8u_table divr16u main @begin @36
|
||||
divr16u::@4 dominated by divr16u::@1 divr16u::@4 main::@1 div16u sin8u_table divr16u main @begin @36
|
||||
divr16u::@2 dominated by divr16u::@2 divr16u::@1 main::@1 div16u sin8u_table divr16u main @begin @36
|
||||
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 main::@1 div16u sin8u_table divr16u main @begin @36
|
||||
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 main::@1 div16u sin8u_table divr16u main @begin @36
|
||||
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 main::@1 div16u sin8u_table divr16u::@return divr16u main @begin @36
|
||||
print_cls dominated by print_cls main @begin @36
|
||||
print_cls::@1 dominated by print_cls main @begin @36 print_cls::@1
|
||||
print_cls::@return dominated by print_cls main @begin @36 print_cls::@return print_cls::@1
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: sin8u_table::@1 tails: sin8u_table::@25 blocks: null
|
||||
@ -6674,17 +6753,17 @@ INITIAL ASM
|
||||
.label print_line_cursor = 8
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @35 [phi:@begin->@35]
|
||||
b35_from_bbegin:
|
||||
jmp b35
|
||||
//SEG4 @35
|
||||
b35:
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
b36_from_bbegin:
|
||||
jmp b36
|
||||
//SEG4 @36
|
||||
b36:
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
//SEG6 [4] phi from @35 to main [phi:@35->main]
|
||||
main_from_b35:
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
main_from_b36:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @35 to @end [phi:@35->@end]
|
||||
bend_from_b35:
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
bend_from_b36:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -8375,17 +8454,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label print_line_cursor = 8
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @35 [phi:@begin->@35]
|
||||
b35_from_bbegin:
|
||||
jmp b35
|
||||
//SEG4 @35
|
||||
b35:
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
b36_from_bbegin:
|
||||
jmp b36
|
||||
//SEG4 @36
|
||||
b36:
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
//SEG6 [4] phi from @35 to main [phi:@35->main]
|
||||
main_from_b35:
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
main_from_b36:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @35 to @end [phi:@35->@end]
|
||||
bend_from_b35:
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
bend_from_b36:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -9635,7 +9714,7 @@ print_cls: {
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b35
|
||||
Removing instruction jmp b36
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp breturn
|
||||
@ -9748,9 +9827,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 b35_from_bbegin:
|
||||
Removing instruction main_from_b35:
|
||||
Removing instruction bend_from_b35:
|
||||
Removing instruction b36_from_bbegin:
|
||||
Removing instruction main_from_b36:
|
||||
Removing instruction bend_from_b36:
|
||||
Removing instruction b1_from_main:
|
||||
Removing instruction sin8u_table_from_b1:
|
||||
Removing instruction b5_from_b4:
|
||||
@ -9811,7 +9890,7 @@ Removing instruction b3_from_b2:
|
||||
Removing instruction b3_from_b5:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b35:
|
||||
Removing instruction b36:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1:
|
||||
@ -9912,7 +9991,7 @@ Fixing long branch [163] bcc b1 to bcs
|
||||
Fixing long branch [169] bcc b1 to bcs
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @35
|
||||
(label) @36
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
@ -10291,12 +10370,12 @@ Score: 19469
|
||||
.label print_char_cursor = $d
|
||||
.label print_line_cursor = 8
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @35 [phi:@begin->@35]
|
||||
//SEG4 @35
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
//SEG4 @36
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
//SEG6 [4] phi from @35 to main [phi:@35->main]
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @35 to @end [phi:@35->@end]
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @35
|
||||
(label) @36
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(word) PI2_u4f12
|
||||
|
@ -179,7 +179,7 @@ bbegin:
|
||||
jmp b1
|
||||
//SEG3 @1
|
||||
b1:
|
||||
//SEG4 kickasm {{ .byte 1, 2, 3 }}
|
||||
//SEG4 kickasm {{ .byte 1, 2, 3 }}
|
||||
.byte 1, 2, 3
|
||||
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
@ -196,7 +196,7 @@ main: {
|
||||
jmp b2
|
||||
//SEG10 main::@2
|
||||
b2:
|
||||
//SEG11 kickasm {{ inc $d020 }}
|
||||
//SEG11 kickasm {{ inc $d020 }}
|
||||
inc $d020
|
||||
|
||||
jmp b2
|
||||
@ -208,8 +208,8 @@ REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [main]
|
||||
Uplift Scope []
|
||||
|
||||
Uplifting [main] best 1199 combination
|
||||
Uplifting [] best 1199 combination
|
||||
Uplifting [main] best 2915 combination
|
||||
Uplifting [] best 2915 combination
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 Basic Upstart
|
||||
@ -222,7 +222,7 @@ bbegin:
|
||||
jmp b1
|
||||
//SEG3 @1
|
||||
b1:
|
||||
//SEG4 kickasm {{ .byte 1, 2, 3 }}
|
||||
//SEG4 kickasm {{ .byte 1, 2, 3 }}
|
||||
.byte 1, 2, 3
|
||||
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
@ -239,7 +239,7 @@ main: {
|
||||
jmp b2
|
||||
//SEG10 main::@2
|
||||
b2:
|
||||
//SEG11 kickasm {{ inc $d020 }}
|
||||
//SEG11 kickasm {{ inc $d020 }}
|
||||
inc $d020
|
||||
|
||||
jmp b2
|
||||
@ -268,7 +268,7 @@ FINAL SYMBOL TABLE
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 1136
|
||||
Score: 2852
|
||||
|
||||
//SEG0 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
@ -277,7 +277,7 @@ Score: 1136
|
||||
//SEG1 Global Constants & labels
|
||||
//SEG2 @begin
|
||||
//SEG3 @1
|
||||
//SEG4 kickasm {{ .byte 1, 2, 3 }}
|
||||
//SEG4 kickasm {{ .byte 1, 2, 3 }}
|
||||
.byte 1, 2, 3
|
||||
|
||||
//SEG5 [2] call main [ ] ( )
|
||||
@ -289,7 +289,7 @@ Score: 1136
|
||||
main: {
|
||||
//SEG10 main::@2
|
||||
b2:
|
||||
//SEG11 kickasm {{ inc $d020 }}
|
||||
//SEG11 kickasm {{ inc $d020 }}
|
||||
inc $d020
|
||||
|
||||
jmp b2
|
||||
|
Loading…
x
Reference in New Issue
Block a user