mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-12-28 16:31:36 +00:00
Added support for cross-scope references inside inline ASM.
This commit is contained in:
parent
71743540c6
commit
f6dd66f3cb
@ -7,12 +7,13 @@ import dk.camelot64.kickc.model.Program;
|
||||
* Resolved in {@link dk.camelot64.kickc.passes.Pass1ResolveForwardReferences}.
|
||||
* After this point they are never present in the program.
|
||||
* */
|
||||
public class ForwardVariableRef implements LValue {
|
||||
public class ForwardVariableRef extends SymbolVariableRef implements LValue {
|
||||
|
||||
/** The referenced unresolved variable name. */
|
||||
private String name;
|
||||
|
||||
public ForwardVariableRef(String name) {
|
||||
super(name);
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,7 @@ import dk.camelot64.kickc.parser.KickCParser;
|
||||
import org.antlr.v4.runtime.CommonTokenStream;
|
||||
import org.antlr.v4.runtime.ParserRuleContext;
|
||||
import org.antlr.v4.runtime.Token;
|
||||
import org.antlr.v4.runtime.tree.ParseTree;
|
||||
import org.antlr.v4.runtime.tree.TerminalNode;
|
||||
import sun.reflect.generics.tree.VoidDescriptor;
|
||||
|
||||
@ -691,22 +692,38 @@ public class Pass0GenerateStatementSequence extends KickCBaseVisitor<Object> {
|
||||
|
||||
@Override
|
||||
public Object visitStmtAsm(KickCParser.StmtAsmContext ctx) {
|
||||
|
||||
// ALl defined labels in the ASM
|
||||
List<String> definedLabels = new ArrayList<>();
|
||||
KickCBaseVisitor<Void> findDefinedLabels = new KickCBaseVisitor<Void>() {
|
||||
@Override
|
||||
public Void visitAsmLabelName(KickCParser.AsmLabelNameContext ctx) {
|
||||
String label = ctx.NAME().getText();
|
||||
definedLabels.add(label);
|
||||
return super.visitAsmLabelName(ctx);
|
||||
}
|
||||
};
|
||||
findDefinedLabels.visit(ctx.asmLines());
|
||||
|
||||
// Find all defined labels in the ASM
|
||||
List<String> definedLabels = gatAsmDefinedLabels(ctx);
|
||||
// Find all referenced symbols in the ASM
|
||||
Map<String, SymbolVariableRef> referenced = getAsmReferencedSymbolVariables(ctx, definedLabels);
|
||||
List<Comment> comments = ensureUnusedComments(getCommentsSymbol(ctx));
|
||||
StatementAsm statementAsm = new StatementAsm(ctx.asmLines(), referenced, new StatementSource(ctx), comments);
|
||||
sequence.addStatement(statementAsm);
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find all referenced symbol variables
|
||||
* @param ctx An ASM statement
|
||||
* @param definedLabels All labels defined in the ASM
|
||||
* @return All variables/constants referenced in the ASM. Some may be ForwardVariableRefs to be resolved later.
|
||||
*/
|
||||
private Map<String, SymbolVariableRef> getAsmReferencedSymbolVariables(KickCParser.StmtAsmContext ctx, List<String> definedLabels) {
|
||||
Map<String, SymbolVariableRef> referenced = new LinkedHashMap<>();
|
||||
KickCBaseVisitor<Void> findReferenced = new KickCBaseVisitor<Void>() {
|
||||
|
||||
@Override
|
||||
public Void visitAsmExprBinary(KickCParser.AsmExprBinaryContext ctx) {
|
||||
ParseTree operator = ctx.getChild(1);
|
||||
if(operator.getText().equals(".")) {
|
||||
// Skip any . operator for now as it accesses data in another scope.
|
||||
// TODO Implement checking of labels/constants in other scopes
|
||||
return null;
|
||||
} else {
|
||||
return super.visitAsmExprBinary(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Void visitAsmExprLabel(KickCParser.AsmExprLabelContext ctxLabel) {
|
||||
String label = ctxLabel.NAME().toString();
|
||||
@ -717,18 +734,34 @@ public class Pass0GenerateStatementSequence extends KickCBaseVisitor<Object> {
|
||||
Variable variable = (Variable) symbol;
|
||||
referenced.put(label, variable.getRef());
|
||||
} else {
|
||||
throw new CompileError("Symbol referenced in inline ASM not found " + label, new StatementSource(ctxLabel));
|
||||
// Either forward reference or a non-existing variable. Create a forward reference for later resolving.
|
||||
referenced.put(label, new ForwardVariableRef(ctxLabel.NAME().getText()));
|
||||
}
|
||||
}
|
||||
return super.visitAsmExprLabel(ctxLabel);
|
||||
}
|
||||
};
|
||||
findReferenced.visit(ctx.asmLines());
|
||||
return referenced;
|
||||
}
|
||||
|
||||
List<Comment> comments = ensureUnusedComments(getCommentsSymbol(ctx));
|
||||
StatementAsm statementAsm = new StatementAsm(ctx.asmLines(), referenced, new StatementSource(ctx), comments);
|
||||
sequence.addStatement(statementAsm);
|
||||
return null;
|
||||
/**
|
||||
* Find all labels defined in the ASM (not multilabels).
|
||||
* @param ctx An ASM statement
|
||||
* @return All labels defined in the ASM.
|
||||
*/
|
||||
private List<String> gatAsmDefinedLabels(KickCParser.StmtAsmContext ctx) {
|
||||
List<String> definedLabels = new ArrayList<>();
|
||||
KickCBaseVisitor<Void> findDefinedLabels = new KickCBaseVisitor<Void>() {
|
||||
@Override
|
||||
public Void visitAsmLabelName(KickCParser.AsmLabelNameContext ctx) {
|
||||
String label = ctx.NAME().getText();
|
||||
definedLabels.add(label);
|
||||
return super.visitAsmLabelName(ctx);
|
||||
}
|
||||
};
|
||||
findDefinedLabels.visit(ctx.asmLines());
|
||||
return definedLabels;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -44,6 +44,11 @@ public class TestPrograms {
|
||||
AsmFragmentTemplateUsages.logUsages(log, false, false, false, false, false, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInlineAsmRefScoped() throws IOException, URISyntaxException {
|
||||
compileAndCompare("inline-asm-ref-scoped");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInlineAsmRefoutLabel() throws IOException, URISyntaxException {
|
||||
compileAndCompare("inline-asm-label");
|
||||
@ -61,7 +66,7 @@ public class TestPrograms {
|
||||
|
||||
@Test
|
||||
public void testInlineAsmRefoutUndef() throws IOException, URISyntaxException {
|
||||
assertError("inline-asm-refout-undef", "Symbol referenced in inline ASM not found");
|
||||
assertError("inline-asm-refout-undef", "Unknown variable qwe");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
17
src/test/kc/inline-asm-ref-scoped.kc
Normal file
17
src/test/kc/inline-asm-ref-scoped.kc
Normal file
@ -0,0 +1,17 @@
|
||||
// Tests that references to labels in other scopes is possible from inline ASM
|
||||
|
||||
void main() {
|
||||
asm {
|
||||
lda #'c'
|
||||
sta sub.ll+1
|
||||
}
|
||||
sub();
|
||||
}
|
||||
|
||||
void sub() {
|
||||
asm {
|
||||
ll:
|
||||
lda #0
|
||||
sta $400
|
||||
}
|
||||
}
|
@ -86,6 +86,9 @@ Resolved forward reference COSH_HI to (byte*) COSH_HI
|
||||
Resolved forward reference COSH_LO to (byte*) COSH_LO
|
||||
Resolved forward reference COSH_HI to (byte*) COSH_HI
|
||||
Resolved forward reference COSH_LO to (byte*) COSH_LO
|
||||
Resolved forward reference mulf_sqr1 to (byte*) mulf_sqr1
|
||||
Resolved forward reference mulf_sqr2 to (byte*) mulf_sqr2
|
||||
Resolved forward reference PERSP_Z to (signed byte*) PERSP_Z
|
||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||
Inlined call call print_sbyte_pos (signed byte) sx (byte/signed byte/word/signed word/dword/signed dword) 0 (byte/signed byte/word/signed word/dword/signed dword) $25
|
||||
Inlined call call print_sbyte_pos (signed byte) sy (byte/signed byte/word/signed word/dword/signed dword) 1 (byte/signed byte/word/signed word/dword/signed dword) $25
|
||||
@ -327,9 +330,10 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) $400
|
||||
to:@24
|
||||
main: scope:[main] from @33
|
||||
(signed byte*) yp#19 ← phi( @33/(signed byte*) yp#20 )
|
||||
(signed byte*) xp#19 ← phi( @33/(signed byte*) xp#20 )
|
||||
(signed byte*) pp#19 ← phi( @33/(signed byte*) pp#20 )
|
||||
(signed byte*) PERSP_Z#20 ← phi( @33/(signed byte*) PERSP_Z#0 )
|
||||
(signed byte*) yp#20 ← phi( @33/(signed byte*) yp#21 )
|
||||
(signed byte*) xp#20 ← phi( @33/(signed byte*) xp#21 )
|
||||
(signed byte*) pp#20 ← phi( @33/(signed byte*) pp#21 )
|
||||
(signed byte*) zr#20 ← phi( @33/(signed byte*) zr#21 )
|
||||
(signed byte*) yr#20 ← phi( @33/(signed byte*) yr#21 )
|
||||
(signed byte*) xr#20 ← phi( @33/(signed byte*) xr#21 )
|
||||
@ -345,17 +349,18 @@ main: scope:[main] from @33
|
||||
(byte*) SPRITE#3 ← phi( @33/(byte*) SPRITE#0 )
|
||||
(byte*) print_char_cursor#19 ← phi( @33/(byte*) print_char_cursor#18 )
|
||||
(byte*) print_line_cursor#19 ← phi( @33/(byte*) print_line_cursor#18 )
|
||||
(word*) psp2#2 ← phi( @33/(word*) psp2#3 )
|
||||
(byte*) mulf_sqr2#2 ← phi( @33/(byte*) mulf_sqr2#0 )
|
||||
(word*) psp1#2 ← phi( @33/(word*) psp1#3 )
|
||||
(byte*) mulf_sqr1#2 ← phi( @33/(byte*) mulf_sqr1#0 )
|
||||
(word*) psp2#3 ← phi( @33/(word*) psp2#5 )
|
||||
(byte*) mulf_sqr2#3 ← phi( @33/(byte*) mulf_sqr2#0 )
|
||||
(word*) psp1#3 ← phi( @33/(word*) psp1#5 )
|
||||
(byte*) mulf_sqr1#3 ← phi( @33/(byte*) mulf_sqr1#0 )
|
||||
asm { sei }
|
||||
call sprites_init
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(signed byte*) yp#18 ← phi( main/(signed byte*) yp#19 )
|
||||
(signed byte*) xp#18 ← phi( main/(signed byte*) xp#19 )
|
||||
(signed byte*) pp#18 ← phi( main/(signed byte*) pp#19 )
|
||||
(signed byte*) PERSP_Z#19 ← phi( main/(signed byte*) PERSP_Z#20 )
|
||||
(signed byte*) yp#19 ← phi( main/(signed byte*) yp#20 )
|
||||
(signed byte*) xp#19 ← phi( main/(signed byte*) xp#20 )
|
||||
(signed byte*) pp#19 ← phi( main/(signed byte*) pp#20 )
|
||||
(signed byte*) zr#19 ← phi( main/(signed byte*) zr#20 )
|
||||
(signed byte*) yr#19 ← phi( main/(signed byte*) yr#20 )
|
||||
(signed byte*) xr#19 ← phi( main/(signed byte*) xr#20 )
|
||||
@ -370,10 +375,10 @@ main::@1: scope:[main] from main
|
||||
(signed byte) sx#18 ← phi( main/(signed byte) sx#24 )
|
||||
(byte*) print_char_cursor#14 ← phi( main/(byte*) print_char_cursor#19 )
|
||||
(byte*) print_line_cursor#14 ← phi( main/(byte*) print_line_cursor#19 )
|
||||
(word*) psp2#1 ← phi( main/(word*) psp2#2 )
|
||||
(byte*) mulf_sqr2#1 ← phi( main/(byte*) mulf_sqr2#2 )
|
||||
(word*) psp1#1 ← phi( main/(word*) psp1#2 )
|
||||
(byte*) mulf_sqr1#1 ← phi( main/(byte*) mulf_sqr1#2 )
|
||||
(word*) psp2#1 ← phi( main/(word*) psp2#3 )
|
||||
(byte*) mulf_sqr2#1 ← phi( main/(byte*) mulf_sqr2#3 )
|
||||
(word*) psp1#1 ← phi( main/(word*) psp1#3 )
|
||||
(byte*) mulf_sqr1#1 ← phi( main/(byte*) mulf_sqr1#3 )
|
||||
(word~) main::$1 ← ((word)) (byte*) mulf_sqr1#1
|
||||
*((word*) psp1#1) ← (word~) main::$1
|
||||
(word~) main::$2 ← ((word)) (byte*) mulf_sqr2#1
|
||||
@ -383,9 +388,14 @@ main::@1: scope:[main] from main
|
||||
main::@2: scope:[main] from main::@1
|
||||
(byte*) SCREEN#73 ← phi( main::@1/(byte*) SCREEN#17 )
|
||||
(byte*) print_screen#63 ← phi( main::@1/(byte*) print_screen#29 )
|
||||
(signed byte*) yp#16 ← phi( main::@1/(signed byte*) yp#18 )
|
||||
(signed byte*) xp#16 ← phi( main::@1/(signed byte*) xp#18 )
|
||||
(signed byte*) pp#16 ← phi( main::@1/(signed byte*) pp#18 )
|
||||
(word*) psp2#22 ← phi( main::@1/(word*) psp2#1 )
|
||||
(word*) psp1#22 ← phi( main::@1/(word*) psp1#1 )
|
||||
(signed byte*) PERSP_Z#17 ← phi( main::@1/(signed byte*) PERSP_Z#19 )
|
||||
(byte*) mulf_sqr2#19 ← phi( main::@1/(byte*) mulf_sqr2#1 )
|
||||
(byte*) mulf_sqr1#19 ← phi( main::@1/(byte*) mulf_sqr1#1 )
|
||||
(signed byte*) yp#17 ← phi( main::@1/(signed byte*) yp#19 )
|
||||
(signed byte*) xp#17 ← phi( main::@1/(signed byte*) xp#19 )
|
||||
(signed byte*) pp#17 ← phi( main::@1/(signed byte*) pp#19 )
|
||||
(signed byte*) zr#17 ← phi( main::@1/(signed byte*) zr#19 )
|
||||
(signed byte*) yr#17 ← phi( main::@1/(signed byte*) yr#19 )
|
||||
(signed byte*) xr#17 ← phi( main::@1/(signed byte*) xr#19 )
|
||||
@ -422,16 +432,16 @@ main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
@24: scope:[] from @23
|
||||
(signed byte*) yp#22 ← phi( @23/(signed byte*) yp#0 )
|
||||
(signed byte*) xp#22 ← phi( @23/(signed byte*) xp#0 )
|
||||
(signed byte*) pp#22 ← phi( @23/(signed byte*) pp#0 )
|
||||
(signed byte*) yp#23 ← phi( @23/(signed byte*) yp#0 )
|
||||
(signed byte*) xp#23 ← phi( @23/(signed byte*) xp#0 )
|
||||
(signed byte*) pp#23 ← phi( @23/(signed byte*) pp#0 )
|
||||
(signed byte*) zr#23 ← phi( @23/(signed byte*) zr#0 )
|
||||
(signed byte*) yr#23 ← phi( @23/(signed byte*) yr#0 )
|
||||
(signed byte*) xr#23 ← phi( @23/(signed byte*) xr#0 )
|
||||
(byte*) SCREEN#26 ← phi( @23/(byte*) SCREEN#0 )
|
||||
(byte*) print_screen#49 ← phi( @23/(byte*) print_screen#50 )
|
||||
(word*) psp2#5 ← phi( @23/(word*) psp2#0 )
|
||||
(word*) psp1#5 ← phi( @23/(word*) psp1#0 )
|
||||
(word*) psp2#11 ← phi( @23/(word*) psp2#0 )
|
||||
(word*) psp1#11 ← phi( @23/(word*) psp1#0 )
|
||||
(byte*) print_char_cursor#23 ← phi( @23/(byte*) print_char_cursor#24 )
|
||||
(byte*) print_line_cursor#23 ← phi( @23/(byte*) print_line_cursor#24 )
|
||||
(signed byte/signed word/signed dword~) $0 ← - (byte/signed byte/word/signed word/dword/signed dword) $34
|
||||
@ -456,9 +466,14 @@ main::@return: scope:[main] from main::@3
|
||||
anim: scope:[anim] from main::@2
|
||||
(byte*) SCREEN#71 ← phi( main::@2/(byte*) SCREEN#73 )
|
||||
(byte*) print_screen#61 ← phi( main::@2/(byte*) print_screen#63 )
|
||||
(signed byte*) yp#14 ← phi( main::@2/(signed byte*) yp#16 )
|
||||
(signed byte*) xp#14 ← phi( main::@2/(signed byte*) xp#16 )
|
||||
(signed byte*) pp#14 ← phi( main::@2/(signed byte*) pp#16 )
|
||||
(word*) psp2#20 ← phi( main::@2/(word*) psp2#22 )
|
||||
(word*) psp1#20 ← phi( main::@2/(word*) psp1#22 )
|
||||
(signed byte*) PERSP_Z#15 ← phi( main::@2/(signed byte*) PERSP_Z#17 )
|
||||
(byte*) mulf_sqr2#17 ← phi( main::@2/(byte*) mulf_sqr2#19 )
|
||||
(byte*) mulf_sqr1#17 ← phi( main::@2/(byte*) mulf_sqr1#19 )
|
||||
(signed byte*) yp#15 ← phi( main::@2/(signed byte*) yp#17 )
|
||||
(signed byte*) xp#15 ← phi( main::@2/(signed byte*) xp#17 )
|
||||
(signed byte*) pp#15 ← phi( main::@2/(signed byte*) pp#17 )
|
||||
(signed byte*) zr#15 ← phi( main::@2/(signed byte*) zr#17 )
|
||||
(signed byte*) yr#15 ← phi( main::@2/(signed byte*) yr#17 )
|
||||
(signed byte*) xr#15 ← phi( main::@2/(signed byte*) xr#17 )
|
||||
@ -473,9 +488,14 @@ anim: scope:[anim] from main::@2
|
||||
anim::@1: scope:[anim] from anim anim::@30
|
||||
(byte*) SCREEN#70 ← phi( anim/(byte*) SCREEN#71 anim::@30/(byte*) SCREEN#72 )
|
||||
(byte*) print_screen#60 ← phi( anim/(byte*) print_screen#61 anim::@30/(byte*) print_screen#62 )
|
||||
(signed byte*) yp#13 ← phi( anim/(signed byte*) yp#14 anim::@30/(signed byte*) yp#15 )
|
||||
(signed byte*) xp#13 ← phi( anim/(signed byte*) xp#14 anim::@30/(signed byte*) xp#15 )
|
||||
(signed byte*) pp#13 ← phi( anim/(signed byte*) pp#14 anim::@30/(signed byte*) pp#15 )
|
||||
(word*) psp2#19 ← phi( anim/(word*) psp2#20 anim::@30/(word*) psp2#21 )
|
||||
(word*) psp1#19 ← phi( anim/(word*) psp1#20 anim::@30/(word*) psp1#21 )
|
||||
(signed byte*) PERSP_Z#14 ← phi( anim/(signed byte*) PERSP_Z#15 anim::@30/(signed byte*) PERSP_Z#16 )
|
||||
(byte*) mulf_sqr2#16 ← phi( anim/(byte*) mulf_sqr2#17 anim::@30/(byte*) mulf_sqr2#18 )
|
||||
(byte*) mulf_sqr1#16 ← phi( anim/(byte*) mulf_sqr1#17 anim::@30/(byte*) mulf_sqr1#18 )
|
||||
(signed byte*) yp#14 ← phi( anim/(signed byte*) yp#15 anim::@30/(signed byte*) yp#16 )
|
||||
(signed byte*) xp#14 ← phi( anim/(signed byte*) xp#15 anim::@30/(signed byte*) xp#16 )
|
||||
(signed byte*) pp#14 ← phi( anim/(signed byte*) pp#15 anim::@30/(signed byte*) pp#16 )
|
||||
(signed byte*) zr#14 ← phi( anim/(signed byte*) zr#15 anim::@30/(signed byte*) zr#16 )
|
||||
(signed byte*) yr#14 ← phi( anim/(signed byte*) yr#15 anim::@30/(signed byte*) yr#16 )
|
||||
(signed byte*) xr#14 ← phi( anim/(signed byte*) xr#15 anim::@30/(signed byte*) xr#16 )
|
||||
@ -491,9 +511,14 @@ anim::@1: scope:[anim] from anim anim::@30
|
||||
anim::@2: scope:[anim] from anim::@1
|
||||
(byte*) SCREEN#68 ← phi( anim::@1/(byte*) SCREEN#70 )
|
||||
(byte*) print_screen#58 ← phi( anim::@1/(byte*) print_screen#60 )
|
||||
(signed byte*) yp#11 ← phi( anim::@1/(signed byte*) yp#13 )
|
||||
(signed byte*) xp#11 ← phi( anim::@1/(signed byte*) xp#13 )
|
||||
(signed byte*) pp#11 ← phi( anim::@1/(signed byte*) pp#13 )
|
||||
(word*) psp2#17 ← phi( anim::@1/(word*) psp2#19 )
|
||||
(word*) psp1#17 ← phi( anim::@1/(word*) psp1#19 )
|
||||
(signed byte*) PERSP_Z#12 ← phi( anim::@1/(signed byte*) PERSP_Z#14 )
|
||||
(byte*) mulf_sqr2#14 ← phi( anim::@1/(byte*) mulf_sqr2#16 )
|
||||
(byte*) mulf_sqr1#14 ← phi( anim::@1/(byte*) mulf_sqr1#16 )
|
||||
(signed byte*) yp#12 ← phi( anim::@1/(signed byte*) yp#14 )
|
||||
(signed byte*) xp#12 ← phi( anim::@1/(signed byte*) xp#14 )
|
||||
(signed byte*) pp#12 ← phi( anim::@1/(signed byte*) pp#14 )
|
||||
(signed byte*) zr#12 ← phi( anim::@1/(signed byte*) zr#14 )
|
||||
(signed byte*) yr#12 ← phi( anim::@1/(signed byte*) yr#14 )
|
||||
(signed byte*) xr#12 ← phi( anim::@1/(signed byte*) xr#14 )
|
||||
@ -508,9 +533,14 @@ anim::@2: scope:[anim] from anim::@1
|
||||
anim::@4: scope:[anim] from anim::@2 anim::@5
|
||||
(byte*) SCREEN#66 ← phi( anim::@2/(byte*) SCREEN#68 anim::@5/(byte*) SCREEN#69 )
|
||||
(byte*) print_screen#56 ← phi( anim::@2/(byte*) print_screen#58 anim::@5/(byte*) print_screen#59 )
|
||||
(signed byte*) yp#9 ← phi( anim::@2/(signed byte*) yp#11 anim::@5/(signed byte*) yp#12 )
|
||||
(signed byte*) xp#9 ← phi( anim::@2/(signed byte*) xp#11 anim::@5/(signed byte*) xp#12 )
|
||||
(signed byte*) pp#9 ← phi( anim::@2/(signed byte*) pp#11 anim::@5/(signed byte*) pp#12 )
|
||||
(word*) psp2#15 ← phi( anim::@2/(word*) psp2#17 anim::@5/(word*) psp2#18 )
|
||||
(word*) psp1#15 ← phi( anim::@2/(word*) psp1#17 anim::@5/(word*) psp1#18 )
|
||||
(signed byte*) PERSP_Z#10 ← phi( anim::@2/(signed byte*) PERSP_Z#12 anim::@5/(signed byte*) PERSP_Z#13 )
|
||||
(byte*) mulf_sqr2#12 ← phi( anim::@2/(byte*) mulf_sqr2#14 anim::@5/(byte*) mulf_sqr2#15 )
|
||||
(byte*) mulf_sqr1#12 ← phi( anim::@2/(byte*) mulf_sqr1#14 anim::@5/(byte*) mulf_sqr1#15 )
|
||||
(signed byte*) yp#10 ← phi( anim::@2/(signed byte*) yp#12 anim::@5/(signed byte*) yp#13 )
|
||||
(signed byte*) xp#10 ← phi( anim::@2/(signed byte*) xp#12 anim::@5/(signed byte*) xp#13 )
|
||||
(signed byte*) pp#10 ← phi( anim::@2/(signed byte*) pp#12 anim::@5/(signed byte*) pp#13 )
|
||||
(signed byte*) zr#10 ← phi( anim::@2/(signed byte*) zr#12 anim::@5/(signed byte*) zr#13 )
|
||||
(signed byte*) yr#10 ← phi( anim::@2/(signed byte*) yr#12 anim::@5/(signed byte*) yr#13 )
|
||||
(signed byte*) xr#10 ← phi( anim::@2/(signed byte*) xr#12 anim::@5/(signed byte*) xr#13 )
|
||||
@ -527,9 +557,14 @@ anim::@4: scope:[anim] from anim::@2 anim::@5
|
||||
anim::@5: scope:[anim] from anim::@4
|
||||
(byte*) SCREEN#69 ← phi( anim::@4/(byte*) SCREEN#66 )
|
||||
(byte*) print_screen#59 ← phi( anim::@4/(byte*) print_screen#56 )
|
||||
(signed byte*) yp#12 ← phi( anim::@4/(signed byte*) yp#9 )
|
||||
(signed byte*) xp#12 ← phi( anim::@4/(signed byte*) xp#9 )
|
||||
(signed byte*) pp#12 ← phi( anim::@4/(signed byte*) pp#9 )
|
||||
(word*) psp2#18 ← phi( anim::@4/(word*) psp2#15 )
|
||||
(word*) psp1#18 ← phi( anim::@4/(word*) psp1#15 )
|
||||
(signed byte*) PERSP_Z#13 ← phi( anim::@4/(signed byte*) PERSP_Z#10 )
|
||||
(byte*) mulf_sqr2#15 ← phi( anim::@4/(byte*) mulf_sqr2#12 )
|
||||
(byte*) mulf_sqr1#15 ← phi( anim::@4/(byte*) mulf_sqr1#12 )
|
||||
(signed byte*) yp#13 ← phi( anim::@4/(signed byte*) yp#10 )
|
||||
(signed byte*) xp#13 ← phi( anim::@4/(signed byte*) xp#10 )
|
||||
(signed byte*) pp#13 ← phi( anim::@4/(signed byte*) pp#10 )
|
||||
(signed byte*) zr#13 ← phi( anim::@4/(signed byte*) zr#10 )
|
||||
(signed byte*) yr#13 ← phi( anim::@4/(signed byte*) yr#10 )
|
||||
(signed byte*) xr#13 ← phi( anim::@4/(signed byte*) xr#10 )
|
||||
@ -544,9 +579,14 @@ anim::@5: scope:[anim] from anim::@4
|
||||
anim::@7: scope:[anim] from anim::@4 anim::@8
|
||||
(byte*) SCREEN#65 ← phi( anim::@4/(byte*) SCREEN#66 anim::@8/(byte*) SCREEN#67 )
|
||||
(byte*) print_screen#55 ← phi( anim::@4/(byte*) print_screen#56 anim::@8/(byte*) print_screen#57 )
|
||||
(signed byte*) yp#8 ← phi( anim::@4/(signed byte*) yp#9 anim::@8/(signed byte*) yp#10 )
|
||||
(signed byte*) xp#8 ← phi( anim::@4/(signed byte*) xp#9 anim::@8/(signed byte*) xp#10 )
|
||||
(signed byte*) pp#8 ← phi( anim::@4/(signed byte*) pp#9 anim::@8/(signed byte*) pp#10 )
|
||||
(word*) psp2#14 ← phi( anim::@4/(word*) psp2#15 anim::@8/(word*) psp2#16 )
|
||||
(word*) psp1#14 ← phi( anim::@4/(word*) psp1#15 anim::@8/(word*) psp1#16 )
|
||||
(signed byte*) PERSP_Z#9 ← phi( anim::@4/(signed byte*) PERSP_Z#10 anim::@8/(signed byte*) PERSP_Z#11 )
|
||||
(byte*) mulf_sqr2#11 ← phi( anim::@4/(byte*) mulf_sqr2#12 anim::@8/(byte*) mulf_sqr2#13 )
|
||||
(byte*) mulf_sqr1#11 ← phi( anim::@4/(byte*) mulf_sqr1#12 anim::@8/(byte*) mulf_sqr1#13 )
|
||||
(signed byte*) yp#9 ← phi( anim::@4/(signed byte*) yp#10 anim::@8/(signed byte*) yp#11 )
|
||||
(signed byte*) xp#9 ← phi( anim::@4/(signed byte*) xp#10 anim::@8/(signed byte*) xp#11 )
|
||||
(signed byte*) pp#9 ← phi( anim::@4/(signed byte*) pp#10 anim::@8/(signed byte*) pp#11 )
|
||||
(signed byte*) zr#9 ← phi( anim::@4/(signed byte*) zr#10 anim::@8/(signed byte*) zr#11 )
|
||||
(signed byte*) yr#9 ← phi( anim::@4/(signed byte*) yr#10 anim::@8/(signed byte*) yr#11 )
|
||||
(signed byte*) xr#9 ← phi( anim::@4/(signed byte*) xr#10 anim::@8/(signed byte*) xr#11 )
|
||||
@ -563,9 +603,14 @@ anim::@7: scope:[anim] from anim::@4 anim::@8
|
||||
anim::@8: scope:[anim] from anim::@7
|
||||
(byte*) SCREEN#67 ← phi( anim::@7/(byte*) SCREEN#65 )
|
||||
(byte*) print_screen#57 ← phi( anim::@7/(byte*) print_screen#55 )
|
||||
(signed byte*) yp#10 ← phi( anim::@7/(signed byte*) yp#8 )
|
||||
(signed byte*) xp#10 ← phi( anim::@7/(signed byte*) xp#8 )
|
||||
(signed byte*) pp#10 ← phi( anim::@7/(signed byte*) pp#8 )
|
||||
(word*) psp2#16 ← phi( anim::@7/(word*) psp2#14 )
|
||||
(word*) psp1#16 ← phi( anim::@7/(word*) psp1#14 )
|
||||
(signed byte*) PERSP_Z#11 ← phi( anim::@7/(signed byte*) PERSP_Z#9 )
|
||||
(byte*) mulf_sqr2#13 ← phi( anim::@7/(byte*) mulf_sqr2#11 )
|
||||
(byte*) mulf_sqr1#13 ← phi( anim::@7/(byte*) mulf_sqr1#11 )
|
||||
(signed byte*) yp#11 ← phi( anim::@7/(signed byte*) yp#9 )
|
||||
(signed byte*) xp#11 ← phi( anim::@7/(signed byte*) xp#9 )
|
||||
(signed byte*) pp#11 ← phi( anim::@7/(signed byte*) pp#9 )
|
||||
(signed byte*) zr#11 ← phi( anim::@7/(signed byte*) zr#9 )
|
||||
(signed byte*) yr#11 ← phi( anim::@7/(signed byte*) yr#9 )
|
||||
(signed byte*) xr#11 ← phi( anim::@7/(signed byte*) xr#9 )
|
||||
@ -580,9 +625,14 @@ anim::@8: scope:[anim] from anim::@7
|
||||
anim::@10: scope:[anim] from anim::@11 anim::@7
|
||||
(byte*) SCREEN#63 ← phi( anim::@11/(byte*) SCREEN#64 anim::@7/(byte*) SCREEN#65 )
|
||||
(byte*) print_screen#53 ← phi( anim::@11/(byte*) print_screen#54 anim::@7/(byte*) print_screen#55 )
|
||||
(signed byte*) yp#6 ← phi( anim::@11/(signed byte*) yp#7 anim::@7/(signed byte*) yp#8 )
|
||||
(signed byte*) xp#6 ← phi( anim::@11/(signed byte*) xp#7 anim::@7/(signed byte*) xp#8 )
|
||||
(signed byte*) pp#6 ← phi( anim::@11/(signed byte*) pp#7 anim::@7/(signed byte*) pp#8 )
|
||||
(word*) psp2#12 ← phi( anim::@11/(word*) psp2#13 anim::@7/(word*) psp2#14 )
|
||||
(word*) psp1#12 ← phi( anim::@11/(word*) psp1#13 anim::@7/(word*) psp1#14 )
|
||||
(signed byte*) PERSP_Z#7 ← phi( anim::@11/(signed byte*) PERSP_Z#8 anim::@7/(signed byte*) PERSP_Z#9 )
|
||||
(byte*) mulf_sqr2#9 ← phi( anim::@11/(byte*) mulf_sqr2#10 anim::@7/(byte*) mulf_sqr2#11 )
|
||||
(byte*) mulf_sqr1#9 ← phi( anim::@11/(byte*) mulf_sqr1#10 anim::@7/(byte*) mulf_sqr1#11 )
|
||||
(signed byte*) yp#7 ← phi( anim::@11/(signed byte*) yp#8 anim::@7/(signed byte*) yp#9 )
|
||||
(signed byte*) xp#7 ← phi( anim::@11/(signed byte*) xp#8 anim::@7/(signed byte*) xp#9 )
|
||||
(signed byte*) pp#7 ← phi( anim::@11/(signed byte*) pp#8 anim::@7/(signed byte*) pp#9 )
|
||||
(signed byte*) zr#7 ← phi( anim::@11/(signed byte*) zr#8 anim::@7/(signed byte*) zr#9 )
|
||||
(signed byte*) yr#7 ← phi( anim::@11/(signed byte*) yr#8 anim::@7/(signed byte*) yr#9 )
|
||||
(signed byte*) xr#7 ← phi( anim::@11/(signed byte*) xr#8 anim::@7/(signed byte*) xr#9 )
|
||||
@ -599,9 +649,14 @@ anim::@10: scope:[anim] from anim::@11 anim::@7
|
||||
anim::@11: scope:[anim] from anim::@10
|
||||
(byte*) SCREEN#64 ← phi( anim::@10/(byte*) SCREEN#63 )
|
||||
(byte*) print_screen#54 ← phi( anim::@10/(byte*) print_screen#53 )
|
||||
(signed byte*) yp#7 ← phi( anim::@10/(signed byte*) yp#6 )
|
||||
(signed byte*) xp#7 ← phi( anim::@10/(signed byte*) xp#6 )
|
||||
(signed byte*) pp#7 ← phi( anim::@10/(signed byte*) pp#6 )
|
||||
(word*) psp2#13 ← phi( anim::@10/(word*) psp2#12 )
|
||||
(word*) psp1#13 ← phi( anim::@10/(word*) psp1#12 )
|
||||
(signed byte*) PERSP_Z#8 ← phi( anim::@10/(signed byte*) PERSP_Z#7 )
|
||||
(byte*) mulf_sqr2#10 ← phi( anim::@10/(byte*) mulf_sqr2#9 )
|
||||
(byte*) mulf_sqr1#10 ← phi( anim::@10/(byte*) mulf_sqr1#9 )
|
||||
(signed byte*) yp#8 ← phi( anim::@10/(signed byte*) yp#7 )
|
||||
(signed byte*) xp#8 ← phi( anim::@10/(signed byte*) xp#7 )
|
||||
(signed byte*) pp#8 ← phi( anim::@10/(signed byte*) pp#7 )
|
||||
(signed byte*) zr#8 ← phi( anim::@10/(signed byte*) zr#7 )
|
||||
(signed byte*) yr#8 ← phi( anim::@10/(signed byte*) yr#7 )
|
||||
(signed byte*) xr#8 ← phi( anim::@10/(signed byte*) xr#7 )
|
||||
@ -616,9 +671,14 @@ anim::@11: scope:[anim] from anim::@10
|
||||
anim::@12: scope:[anim] from anim::@10
|
||||
(byte*) SCREEN#62 ← phi( anim::@10/(byte*) SCREEN#63 )
|
||||
(byte*) print_screen#51 ← phi( anim::@10/(byte*) print_screen#53 )
|
||||
(signed byte*) yp#5 ← phi( anim::@10/(signed byte*) yp#6 )
|
||||
(signed byte*) xp#5 ← phi( anim::@10/(signed byte*) xp#6 )
|
||||
(signed byte*) pp#5 ← phi( anim::@10/(signed byte*) pp#6 )
|
||||
(word*) psp2#10 ← phi( anim::@10/(word*) psp2#12 )
|
||||
(word*) psp1#10 ← phi( anim::@10/(word*) psp1#12 )
|
||||
(signed byte*) PERSP_Z#6 ← phi( anim::@10/(signed byte*) PERSP_Z#7 )
|
||||
(byte*) mulf_sqr2#8 ← phi( anim::@10/(byte*) mulf_sqr2#9 )
|
||||
(byte*) mulf_sqr1#8 ← phi( anim::@10/(byte*) mulf_sqr1#9 )
|
||||
(signed byte*) yp#6 ← phi( anim::@10/(signed byte*) yp#7 )
|
||||
(signed byte*) xp#6 ← phi( anim::@10/(signed byte*) xp#7 )
|
||||
(signed byte*) pp#6 ← phi( anim::@10/(signed byte*) pp#7 )
|
||||
(signed byte*) zr#6 ← phi( anim::@10/(signed byte*) zr#7 )
|
||||
(signed byte*) yr#6 ← phi( anim::@10/(signed byte*) yr#7 )
|
||||
(signed byte*) xr#6 ← phi( anim::@10/(signed byte*) xr#7 )
|
||||
@ -645,9 +705,14 @@ anim::@27: scope:[anim] from anim::@12
|
||||
(byte*) print_screen#48 ← phi( anim::@12/(byte*) print_screen#51 )
|
||||
(signed byte) sy#34 ← phi( anim::@12/(signed byte) sy#8 )
|
||||
(signed byte) sx#31 ← phi( anim::@12/(signed byte) sx#8 )
|
||||
(signed byte*) yp#4 ← phi( anim::@12/(signed byte*) yp#5 )
|
||||
(signed byte*) xp#4 ← phi( anim::@12/(signed byte*) xp#5 )
|
||||
(signed byte*) pp#4 ← phi( anim::@12/(signed byte*) pp#5 )
|
||||
(word*) psp2#8 ← phi( anim::@12/(word*) psp2#10 )
|
||||
(word*) psp1#8 ← phi( anim::@12/(word*) psp1#10 )
|
||||
(signed byte*) PERSP_Z#5 ← phi( anim::@12/(signed byte*) PERSP_Z#6 )
|
||||
(byte*) mulf_sqr2#7 ← phi( anim::@12/(byte*) mulf_sqr2#8 )
|
||||
(byte*) mulf_sqr1#7 ← phi( anim::@12/(byte*) mulf_sqr1#8 )
|
||||
(signed byte*) yp#5 ← phi( anim::@12/(signed byte*) yp#6 )
|
||||
(signed byte*) xp#5 ← phi( anim::@12/(signed byte*) xp#6 )
|
||||
(signed byte*) pp#5 ← phi( anim::@12/(signed byte*) pp#6 )
|
||||
(signed byte*) zr#5 ← phi( anim::@12/(signed byte*) zr#6 )
|
||||
(signed byte*) yr#5 ← phi( anim::@12/(signed byte*) yr#6 )
|
||||
(signed byte*) xr#5 ← phi( anim::@12/(signed byte*) xr#6 )
|
||||
@ -663,9 +728,14 @@ anim::@28: scope:[anim] from anim::@27
|
||||
(byte*) print_screen#46 ← phi( anim::@27/(byte*) print_screen#48 )
|
||||
(signed byte) sy#33 ← phi( anim::@27/(signed byte) sy#34 )
|
||||
(signed byte) sx#30 ← phi( anim::@27/(signed byte) sx#31 )
|
||||
(signed byte*) yp#3 ← phi( anim::@27/(signed byte*) yp#4 )
|
||||
(signed byte*) xp#3 ← phi( anim::@27/(signed byte*) xp#4 )
|
||||
(signed byte*) pp#3 ← phi( anim::@27/(signed byte*) pp#4 )
|
||||
(word*) psp2#6 ← phi( anim::@27/(word*) psp2#8 )
|
||||
(word*) psp1#6 ← phi( anim::@27/(word*) psp1#8 )
|
||||
(signed byte*) PERSP_Z#3 ← phi( anim::@27/(signed byte*) PERSP_Z#5 )
|
||||
(byte*) mulf_sqr2#5 ← phi( anim::@27/(byte*) mulf_sqr2#7 )
|
||||
(byte*) mulf_sqr1#5 ← phi( anim::@27/(byte*) mulf_sqr1#7 )
|
||||
(signed byte*) yp#4 ← phi( anim::@27/(signed byte*) yp#5 )
|
||||
(signed byte*) xp#4 ← phi( anim::@27/(signed byte*) xp#5 )
|
||||
(signed byte*) pp#4 ← phi( anim::@27/(signed byte*) pp#5 )
|
||||
(signed byte*) zr#4 ← phi( anim::@27/(signed byte*) zr#5 )
|
||||
(signed byte*) yr#4 ← phi( anim::@27/(signed byte*) yr#5 )
|
||||
(signed byte*) xr#4 ← phi( anim::@27/(signed byte*) xr#5 )
|
||||
@ -681,9 +751,14 @@ anim::@13: scope:[anim] from anim::@28 anim::@29
|
||||
(byte*) print_screen#45 ← phi( anim::@28/(byte*) print_screen#46 anim::@29/(byte*) print_screen#43 )
|
||||
(signed byte) sy#29 ← phi( anim::@28/(signed byte) sy#33 anim::@29/(signed byte) sy#23 )
|
||||
(signed byte) sx#27 ← phi( anim::@28/(signed byte) sx#30 anim::@29/(signed byte) sx#22 )
|
||||
(signed byte*) yp#2 ← phi( anim::@28/(signed byte*) yp#3 anim::@29/(signed byte*) yp#1 )
|
||||
(signed byte*) xp#2 ← phi( anim::@28/(signed byte*) xp#3 anim::@29/(signed byte*) xp#1 )
|
||||
(signed byte*) pp#2 ← phi( anim::@28/(signed byte*) pp#3 anim::@29/(signed byte*) pp#1 )
|
||||
(word*) psp2#4 ← phi( anim::@28/(word*) psp2#6 anim::@29/(word*) psp2#7 )
|
||||
(word*) psp1#4 ← phi( anim::@28/(word*) psp1#6 anim::@29/(word*) psp1#7 )
|
||||
(signed byte*) PERSP_Z#2 ← phi( anim::@28/(signed byte*) PERSP_Z#3 anim::@29/(signed byte*) PERSP_Z#4 )
|
||||
(byte*) mulf_sqr2#4 ← phi( anim::@28/(byte*) mulf_sqr2#5 anim::@29/(byte*) mulf_sqr2#6 )
|
||||
(byte*) mulf_sqr1#4 ← phi( anim::@28/(byte*) mulf_sqr1#5 anim::@29/(byte*) mulf_sqr1#6 )
|
||||
(signed byte*) yp#3 ← phi( anim::@28/(signed byte*) yp#4 anim::@29/(signed byte*) yp#1 )
|
||||
(signed byte*) xp#3 ← phi( anim::@28/(signed byte*) xp#4 anim::@29/(signed byte*) xp#1 )
|
||||
(signed byte*) pp#3 ← phi( anim::@28/(signed byte*) pp#4 anim::@29/(signed byte*) pp#1 )
|
||||
(signed byte*) zr#3 ← phi( anim::@28/(signed byte*) zr#4 anim::@29/(signed byte*) zr#1 )
|
||||
(signed byte*) yr#3 ← phi( anim::@28/(signed byte*) yr#4 anim::@29/(signed byte*) yr#1 )
|
||||
(signed byte*) xr#3 ← phi( anim::@28/(signed byte*) xr#4 anim::@29/(signed byte*) xr#1 )
|
||||
@ -704,9 +779,14 @@ anim::@29: scope:[anim] from anim::@13
|
||||
(byte*) print_screen#43 ← phi( anim::@13/(byte*) print_screen#45 )
|
||||
(signed byte) sy#23 ← phi( anim::@13/(signed byte) sy#29 )
|
||||
(signed byte) sx#22 ← phi( anim::@13/(signed byte) sx#27 )
|
||||
(signed byte*) yp#1 ← phi( anim::@13/(signed byte*) yp#2 )
|
||||
(signed byte*) xp#1 ← phi( anim::@13/(signed byte*) xp#2 )
|
||||
(signed byte*) pp#1 ← phi( anim::@13/(signed byte*) pp#2 )
|
||||
(word*) psp2#7 ← phi( anim::@13/(word*) psp2#4 )
|
||||
(word*) psp1#7 ← phi( anim::@13/(word*) psp1#4 )
|
||||
(signed byte*) PERSP_Z#4 ← phi( anim::@13/(signed byte*) PERSP_Z#2 )
|
||||
(byte*) mulf_sqr2#6 ← phi( anim::@13/(byte*) mulf_sqr2#4 )
|
||||
(byte*) mulf_sqr1#6 ← phi( anim::@13/(byte*) mulf_sqr1#4 )
|
||||
(signed byte*) yp#1 ← phi( anim::@13/(signed byte*) yp#3 )
|
||||
(signed byte*) xp#1 ← phi( anim::@13/(signed byte*) xp#3 )
|
||||
(signed byte*) pp#1 ← phi( anim::@13/(signed byte*) pp#3 )
|
||||
(signed byte*) zr#1 ← phi( anim::@13/(signed byte*) zr#3 )
|
||||
(signed byte*) yr#1 ← phi( anim::@13/(signed byte*) yr#3 )
|
||||
(byte) anim::i#3 ← phi( anim::@13/(byte) anim::i#2 )
|
||||
@ -731,9 +811,14 @@ anim::@29: scope:[anim] from anim::@13
|
||||
to:anim::@25
|
||||
anim::@25: scope:[anim] from anim::@29
|
||||
(byte*) SCREEN#57 ← phi( anim::@29/(byte*) SCREEN#58 )
|
||||
(signed byte*) yp#17 ← phi( anim::@29/(signed byte*) yp#1 )
|
||||
(signed byte*) xp#17 ← phi( anim::@29/(signed byte*) xp#1 )
|
||||
(signed byte*) pp#17 ← phi( anim::@29/(signed byte*) pp#1 )
|
||||
(word*) psp2#23 ← phi( anim::@29/(word*) psp2#7 )
|
||||
(word*) psp1#23 ← phi( anim::@29/(word*) psp1#7 )
|
||||
(signed byte*) PERSP_Z#18 ← phi( anim::@29/(signed byte*) PERSP_Z#4 )
|
||||
(byte*) mulf_sqr2#20 ← phi( anim::@29/(byte*) mulf_sqr2#6 )
|
||||
(byte*) mulf_sqr1#20 ← phi( anim::@29/(byte*) mulf_sqr1#6 )
|
||||
(signed byte*) yp#18 ← phi( anim::@29/(signed byte*) yp#1 )
|
||||
(signed byte*) xp#18 ← phi( anim::@29/(signed byte*) xp#1 )
|
||||
(signed byte*) pp#18 ← phi( anim::@29/(signed byte*) pp#1 )
|
||||
(signed byte*) zr#18 ← phi( anim::@29/(signed byte*) zr#1 )
|
||||
(signed byte*) yr#18 ← phi( anim::@29/(signed byte*) yr#1 )
|
||||
(signed byte*) xr#18 ← phi( anim::@29/(signed byte*) xr#1 )
|
||||
@ -751,9 +836,14 @@ anim::@25: scope:[anim] from anim::@29
|
||||
anim::@30: scope:[anim] from anim::@25
|
||||
(byte*) SCREEN#72 ← phi( anim::@25/(byte*) SCREEN#57 )
|
||||
(byte*) print_screen#62 ← phi( anim::@25/(byte*) print_screen#30 )
|
||||
(signed byte*) yp#15 ← phi( anim::@25/(signed byte*) yp#17 )
|
||||
(signed byte*) xp#15 ← phi( anim::@25/(signed byte*) xp#17 )
|
||||
(signed byte*) pp#15 ← phi( anim::@25/(signed byte*) pp#17 )
|
||||
(word*) psp2#21 ← phi( anim::@25/(word*) psp2#23 )
|
||||
(word*) psp1#21 ← phi( anim::@25/(word*) psp1#23 )
|
||||
(signed byte*) PERSP_Z#16 ← phi( anim::@25/(signed byte*) PERSP_Z#18 )
|
||||
(byte*) mulf_sqr2#18 ← phi( anim::@25/(byte*) mulf_sqr2#20 )
|
||||
(byte*) mulf_sqr1#18 ← phi( anim::@25/(byte*) mulf_sqr1#20 )
|
||||
(signed byte*) yp#16 ← phi( anim::@25/(signed byte*) yp#18 )
|
||||
(signed byte*) xp#16 ← phi( anim::@25/(signed byte*) xp#18 )
|
||||
(signed byte*) pp#16 ← phi( anim::@25/(signed byte*) pp#18 )
|
||||
(signed byte*) zr#16 ← phi( anim::@25/(signed byte*) zr#18 )
|
||||
(signed byte*) yr#16 ← phi( anim::@25/(signed byte*) yr#18 )
|
||||
(signed byte*) xr#16 ← phi( anim::@25/(signed byte*) xr#18 )
|
||||
@ -1459,17 +1549,17 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @24
|
||||
(signed byte*) yp#21 ← phi( @24/(signed byte*) yp#22 )
|
||||
(signed byte*) xp#21 ← phi( @24/(signed byte*) xp#22 )
|
||||
(signed byte*) pp#21 ← phi( @24/(signed byte*) pp#22 )
|
||||
(signed byte*) yp#22 ← phi( @24/(signed byte*) yp#23 )
|
||||
(signed byte*) xp#22 ← phi( @24/(signed byte*) xp#23 )
|
||||
(signed byte*) pp#22 ← phi( @24/(signed byte*) pp#23 )
|
||||
(signed byte*) zr#22 ← phi( @24/(signed byte*) zr#23 )
|
||||
(signed byte*) yr#22 ← phi( @24/(signed byte*) yr#23 )
|
||||
(signed byte*) xr#22 ← phi( @24/(signed byte*) xr#23 )
|
||||
(signed byte) sz#28 ← phi( @24/(signed byte) sz#0 )
|
||||
(byte*) SCREEN#24 ← phi( @24/(byte*) SCREEN#26 )
|
||||
(byte*) print_screen#47 ← phi( @24/(byte*) print_screen#49 )
|
||||
(word*) psp2#4 ← phi( @24/(word*) psp2#5 )
|
||||
(word*) psp1#4 ← phi( @24/(word*) psp1#5 )
|
||||
(word*) psp2#9 ← phi( @24/(word*) psp2#11 )
|
||||
(word*) psp1#9 ← phi( @24/(word*) psp1#11 )
|
||||
(signed byte) sy#25 ← phi( @24/(signed byte) sy#2 )
|
||||
(signed byte) sx#23 ← phi( @24/(signed byte) sx#2 )
|
||||
(byte*) print_char_cursor#21 ← phi( @24/(byte*) print_char_cursor#23 )
|
||||
@ -1549,6 +1639,14 @@ store_matrix::@return: scope:[store_matrix] from store_matrix
|
||||
return
|
||||
to:@return
|
||||
rotate_matrix: scope:[rotate_matrix] from anim::@13
|
||||
(signed byte*) xp#2 ← phi( anim::@13/(signed byte*) xp#3 )
|
||||
(signed byte*) yp#2 ← phi( anim::@13/(signed byte*) yp#3 )
|
||||
(word*) psp2#2 ← phi( anim::@13/(word*) psp2#4 )
|
||||
(word*) psp1#2 ← phi( anim::@13/(word*) psp1#4 )
|
||||
(signed byte*) pp#2 ← phi( anim::@13/(signed byte*) pp#3 )
|
||||
(signed byte*) PERSP_Z#1 ← phi( anim::@13/(signed byte*) PERSP_Z#2 )
|
||||
(byte*) mulf_sqr2#2 ← phi( anim::@13/(byte*) mulf_sqr2#4 )
|
||||
(byte*) mulf_sqr1#2 ← phi( anim::@13/(byte*) mulf_sqr1#4 )
|
||||
(signed byte*) zr#2 ← phi( anim::@13/(signed byte*) zr#3 )
|
||||
(signed byte) rotate_matrix::z#1 ← phi( anim::@13/(signed byte) rotate_matrix::z#0 )
|
||||
(signed byte*) yr#2 ← phi( anim::@13/(signed byte*) yr#3 )
|
||||
@ -1564,17 +1662,17 @@ rotate_matrix::@return: scope:[rotate_matrix] from rotate_matrix
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @28
|
||||
(signed byte*) yp#20 ← phi( @28/(signed byte*) yp#21 )
|
||||
(signed byte*) xp#20 ← phi( @28/(signed byte*) xp#21 )
|
||||
(signed byte*) pp#20 ← phi( @28/(signed byte*) pp#21 )
|
||||
(signed byte*) yp#21 ← phi( @28/(signed byte*) yp#22 )
|
||||
(signed byte*) xp#21 ← phi( @28/(signed byte*) xp#22 )
|
||||
(signed byte*) pp#21 ← phi( @28/(signed byte*) pp#22 )
|
||||
(signed byte*) zr#21 ← phi( @28/(signed byte*) zr#22 )
|
||||
(signed byte*) yr#21 ← phi( @28/(signed byte*) yr#22 )
|
||||
(signed byte*) xr#21 ← phi( @28/(signed byte*) xr#22 )
|
||||
(signed byte) sz#25 ← phi( @28/(signed byte) sz#28 )
|
||||
(byte*) SCREEN#21 ← phi( @28/(byte*) SCREEN#24 )
|
||||
(byte*) print_screen#44 ← phi( @28/(byte*) print_screen#47 )
|
||||
(word*) psp2#3 ← phi( @28/(word*) psp2#4 )
|
||||
(word*) psp1#3 ← phi( @28/(word*) psp1#4 )
|
||||
(word*) psp2#5 ← phi( @28/(word*) psp2#9 )
|
||||
(word*) psp1#5 ← phi( @28/(word*) psp1#9 )
|
||||
(signed byte) sy#18 ← phi( @28/(signed byte) sy#25 )
|
||||
(signed byte) sx#17 ← phi( @28/(signed byte) sx#23 )
|
||||
(byte*) print_char_cursor#18 ← phi( @28/(byte*) print_char_cursor#21 )
|
||||
@ -1868,6 +1966,26 @@ SYMBOL TABLE SSA
|
||||
(byte) ORANGE#0
|
||||
(signed byte*) PERSP_Z
|
||||
(signed byte*) PERSP_Z#0
|
||||
(signed byte*) PERSP_Z#1
|
||||
(signed byte*) PERSP_Z#10
|
||||
(signed byte*) PERSP_Z#11
|
||||
(signed byte*) PERSP_Z#12
|
||||
(signed byte*) PERSP_Z#13
|
||||
(signed byte*) PERSP_Z#14
|
||||
(signed byte*) PERSP_Z#15
|
||||
(signed byte*) PERSP_Z#16
|
||||
(signed byte*) PERSP_Z#17
|
||||
(signed byte*) PERSP_Z#18
|
||||
(signed byte*) PERSP_Z#19
|
||||
(signed byte*) PERSP_Z#2
|
||||
(signed byte*) PERSP_Z#20
|
||||
(signed byte*) PERSP_Z#3
|
||||
(signed byte*) PERSP_Z#4
|
||||
(signed byte*) PERSP_Z#5
|
||||
(signed byte*) PERSP_Z#6
|
||||
(signed byte*) PERSP_Z#7
|
||||
(signed byte*) PERSP_Z#8
|
||||
(signed byte*) PERSP_Z#9
|
||||
(byte) PINK
|
||||
(byte) PINK#0
|
||||
(byte*) PROCPORT
|
||||
@ -2610,11 +2728,47 @@ SYMBOL TABLE SSA
|
||||
(byte*) mulf_sqr1
|
||||
(byte*) mulf_sqr1#0
|
||||
(byte*) mulf_sqr1#1
|
||||
(byte*) mulf_sqr1#10
|
||||
(byte*) mulf_sqr1#11
|
||||
(byte*) mulf_sqr1#12
|
||||
(byte*) mulf_sqr1#13
|
||||
(byte*) mulf_sqr1#14
|
||||
(byte*) mulf_sqr1#15
|
||||
(byte*) mulf_sqr1#16
|
||||
(byte*) mulf_sqr1#17
|
||||
(byte*) mulf_sqr1#18
|
||||
(byte*) mulf_sqr1#19
|
||||
(byte*) mulf_sqr1#2
|
||||
(byte*) mulf_sqr1#20
|
||||
(byte*) mulf_sqr1#3
|
||||
(byte*) mulf_sqr1#4
|
||||
(byte*) mulf_sqr1#5
|
||||
(byte*) mulf_sqr1#6
|
||||
(byte*) mulf_sqr1#7
|
||||
(byte*) mulf_sqr1#8
|
||||
(byte*) mulf_sqr1#9
|
||||
(byte*) mulf_sqr2
|
||||
(byte*) mulf_sqr2#0
|
||||
(byte*) mulf_sqr2#1
|
||||
(byte*) mulf_sqr2#10
|
||||
(byte*) mulf_sqr2#11
|
||||
(byte*) mulf_sqr2#12
|
||||
(byte*) mulf_sqr2#13
|
||||
(byte*) mulf_sqr2#14
|
||||
(byte*) mulf_sqr2#15
|
||||
(byte*) mulf_sqr2#16
|
||||
(byte*) mulf_sqr2#17
|
||||
(byte*) mulf_sqr2#18
|
||||
(byte*) mulf_sqr2#19
|
||||
(byte*) mulf_sqr2#2
|
||||
(byte*) mulf_sqr2#20
|
||||
(byte*) mulf_sqr2#3
|
||||
(byte*) mulf_sqr2#4
|
||||
(byte*) mulf_sqr2#5
|
||||
(byte*) mulf_sqr2#6
|
||||
(byte*) mulf_sqr2#7
|
||||
(byte*) mulf_sqr2#8
|
||||
(byte*) mulf_sqr2#9
|
||||
(signed byte*) pp
|
||||
(signed byte*) pp#0
|
||||
(signed byte*) pp#1
|
||||
@ -2632,6 +2786,7 @@ SYMBOL TABLE SSA
|
||||
(signed byte*) pp#20
|
||||
(signed byte*) pp#21
|
||||
(signed byte*) pp#22
|
||||
(signed byte*) pp#23
|
||||
(signed byte*) pp#3
|
||||
(signed byte*) pp#4
|
||||
(signed byte*) pp#5
|
||||
@ -2942,17 +3097,53 @@ SYMBOL TABLE SSA
|
||||
(word*) psp1
|
||||
(word*) psp1#0
|
||||
(word*) psp1#1
|
||||
(word*) psp1#10
|
||||
(word*) psp1#11
|
||||
(word*) psp1#12
|
||||
(word*) psp1#13
|
||||
(word*) psp1#14
|
||||
(word*) psp1#15
|
||||
(word*) psp1#16
|
||||
(word*) psp1#17
|
||||
(word*) psp1#18
|
||||
(word*) psp1#19
|
||||
(word*) psp1#2
|
||||
(word*) psp1#20
|
||||
(word*) psp1#21
|
||||
(word*) psp1#22
|
||||
(word*) psp1#23
|
||||
(word*) psp1#3
|
||||
(word*) psp1#4
|
||||
(word*) psp1#5
|
||||
(word*) psp1#6
|
||||
(word*) psp1#7
|
||||
(word*) psp1#8
|
||||
(word*) psp1#9
|
||||
(word*) psp2
|
||||
(word*) psp2#0
|
||||
(word*) psp2#1
|
||||
(word*) psp2#10
|
||||
(word*) psp2#11
|
||||
(word*) psp2#12
|
||||
(word*) psp2#13
|
||||
(word*) psp2#14
|
||||
(word*) psp2#15
|
||||
(word*) psp2#16
|
||||
(word*) psp2#17
|
||||
(word*) psp2#18
|
||||
(word*) psp2#19
|
||||
(word*) psp2#2
|
||||
(word*) psp2#20
|
||||
(word*) psp2#21
|
||||
(word*) psp2#22
|
||||
(word*) psp2#23
|
||||
(word*) psp2#3
|
||||
(word*) psp2#4
|
||||
(word*) psp2#5
|
||||
(word*) psp2#6
|
||||
(word*) psp2#7
|
||||
(word*) psp2#8
|
||||
(word*) psp2#9
|
||||
(void()) rotate_matrix((signed byte) rotate_matrix::x , (signed byte) rotate_matrix::y , (signed byte) rotate_matrix::z)
|
||||
(label) rotate_matrix::@return
|
||||
(signed byte) rotate_matrix::x
|
||||
@ -3100,6 +3291,7 @@ SYMBOL TABLE SSA
|
||||
(signed byte*) xp#20
|
||||
(signed byte*) xp#21
|
||||
(signed byte*) xp#22
|
||||
(signed byte*) xp#23
|
||||
(signed byte*) xp#3
|
||||
(signed byte*) xp#4
|
||||
(signed byte*) xp#5
|
||||
@ -3155,6 +3347,7 @@ SYMBOL TABLE SSA
|
||||
(signed byte*) yp#20
|
||||
(signed byte*) yp#21
|
||||
(signed byte*) yp#22
|
||||
(signed byte*) yp#23
|
||||
(signed byte*) yp#3
|
||||
(signed byte*) yp#4
|
||||
(signed byte*) yp#5
|
||||
@ -3238,10 +3431,10 @@ Alias (byte) print_byte_at::b#1 = (byte) print_byte_at::b#2
|
||||
Alias (byte*) print_byte_at::at#1 = (byte*) print_byte_at::at#2
|
||||
Alias (byte*) print_char_at::at#3 = (byte*~) print_byte_at::$3
|
||||
Alias (byte*) print_line_cursor#1 = (byte*) print_screen#3 (byte*) print_screen#2 (byte*) print_char_cursor#1 (byte*) print_line_cursor#8 (byte*) print_char_cursor#8 (byte*) print_line_cursor#2 (byte*) print_char_cursor#2
|
||||
Alias (byte*) mulf_sqr1#1 = (byte*) mulf_sqr1#2
|
||||
Alias (word*) psp1#1 = (word*) psp1#2
|
||||
Alias (byte*) mulf_sqr2#1 = (byte*) mulf_sqr2#2
|
||||
Alias (word*) psp2#1 = (word*) psp2#2
|
||||
Alias (byte*) mulf_sqr1#1 = (byte*) mulf_sqr1#3 (byte*) mulf_sqr1#19
|
||||
Alias (word*) psp1#1 = (word*) psp1#3 (word*) psp1#22
|
||||
Alias (byte*) mulf_sqr2#1 = (byte*) mulf_sqr2#3 (byte*) mulf_sqr2#19
|
||||
Alias (word*) psp2#1 = (word*) psp2#3 (word*) psp2#22
|
||||
Alias (byte*) print_line_cursor#14 = (byte*) print_line_cursor#19
|
||||
Alias (byte*) print_char_cursor#14 = (byte*) print_char_cursor#19
|
||||
Alias (signed byte) sx#13 = (signed byte) sx#18 (signed byte) sx#24
|
||||
@ -3256,22 +3449,23 @@ Alias (signed byte*) SINQ#13 = (signed byte*) SINQ#15 (signed byte*) SINQ#17
|
||||
Alias (signed byte*) xr#17 = (signed byte*) xr#19 (signed byte*) xr#20
|
||||
Alias (signed byte*) yr#17 = (signed byte*) yr#19 (signed byte*) yr#20
|
||||
Alias (signed byte*) zr#17 = (signed byte*) zr#19 (signed byte*) zr#20
|
||||
Alias (signed byte*) pp#16 = (signed byte*) pp#18 (signed byte*) pp#19
|
||||
Alias (signed byte*) xp#16 = (signed byte*) xp#18 (signed byte*) xp#19
|
||||
Alias (signed byte*) yp#16 = (signed byte*) yp#18 (signed byte*) yp#19
|
||||
Alias (signed byte*) pp#17 = (signed byte*) pp#19 (signed byte*) pp#20
|
||||
Alias (signed byte*) xp#17 = (signed byte*) xp#19 (signed byte*) xp#20
|
||||
Alias (signed byte*) yp#17 = (signed byte*) yp#19 (signed byte*) yp#20
|
||||
Alias (signed byte*) PERSP_Z#17 = (signed byte*) PERSP_Z#19 (signed byte*) PERSP_Z#20
|
||||
Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#3 (byte*) print_line_cursor#9 (byte*) print_line_cursor#15 (byte*) print_line_cursor#4
|
||||
Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#3 (byte*) print_char_cursor#9 (byte*) print_char_cursor#15 (byte*) print_char_cursor#4
|
||||
Alias (signed byte) sx#0 = (signed byte) sx#6 (signed byte) sx#7 (signed byte) sx#1
|
||||
Alias (signed byte) sy#0 = (signed byte) sy#6 (signed byte) sy#7 (signed byte) sy#1
|
||||
Alias (word*) psp1#0 = (word*) psp1#5 (word*) psp1#4 (word*) psp1#3
|
||||
Alias (word*) psp2#0 = (word*) psp2#5 (word*) psp2#4 (word*) psp2#3
|
||||
Alias (word*) psp1#0 = (word*) psp1#11 (word*) psp1#9 (word*) psp1#5
|
||||
Alias (word*) psp2#0 = (word*) psp2#11 (word*) psp2#9 (word*) psp2#5
|
||||
Alias (byte*) SCREEN#0 = (byte*) SCREEN#26 (byte*) SCREEN#24 (byte*) SCREEN#21
|
||||
Alias (signed byte*) xr#0 = (signed byte*) xr#23 (signed byte*) xr#22 (signed byte*) xr#21
|
||||
Alias (signed byte*) yr#0 = (signed byte*) yr#23 (signed byte*) yr#22 (signed byte*) yr#21
|
||||
Alias (signed byte*) zr#0 = (signed byte*) zr#23 (signed byte*) zr#22 (signed byte*) zr#21
|
||||
Alias (signed byte*) pp#0 = (signed byte*) pp#22 (signed byte*) pp#21 (signed byte*) pp#20
|
||||
Alias (signed byte*) xp#0 = (signed byte*) xp#22 (signed byte*) xp#21 (signed byte*) xp#20
|
||||
Alias (signed byte*) yp#0 = (signed byte*) yp#22 (signed byte*) yp#21 (signed byte*) yp#20
|
||||
Alias (signed byte*) pp#0 = (signed byte*) pp#23 (signed byte*) pp#22 (signed byte*) pp#21
|
||||
Alias (signed byte*) xp#0 = (signed byte*) xp#23 (signed byte*) xp#22 (signed byte*) xp#21
|
||||
Alias (signed byte*) yp#0 = (signed byte*) yp#23 (signed byte*) yp#22 (signed byte*) yp#21
|
||||
Alias (signed byte) sx#10 = (signed byte) sx#28 (signed byte) sx#16 (signed byte) sx#4
|
||||
Alias (signed byte) sy#10 = (signed byte) sy#31 (signed byte) sy#16 (signed byte) sy#4
|
||||
Alias (signed byte) sz#11 = (signed byte) sz#14
|
||||
@ -3282,9 +3476,14 @@ Alias (signed byte*) SINQ#10 = (signed byte*) SINQ#8
|
||||
Alias (signed byte*) xr#12 = (signed byte*) xr#14
|
||||
Alias (signed byte*) yr#12 = (signed byte*) yr#14
|
||||
Alias (signed byte*) zr#12 = (signed byte*) zr#14
|
||||
Alias (signed byte*) pp#11 = (signed byte*) pp#13
|
||||
Alias (signed byte*) xp#11 = (signed byte*) xp#13
|
||||
Alias (signed byte*) yp#11 = (signed byte*) yp#13
|
||||
Alias (signed byte*) pp#12 = (signed byte*) pp#14
|
||||
Alias (signed byte*) xp#12 = (signed byte*) xp#14
|
||||
Alias (signed byte*) yp#12 = (signed byte*) yp#14
|
||||
Alias (byte*) mulf_sqr1#14 = (byte*) mulf_sqr1#16
|
||||
Alias (byte*) mulf_sqr2#14 = (byte*) mulf_sqr2#16
|
||||
Alias (signed byte*) PERSP_Z#12 = (signed byte*) PERSP_Z#14
|
||||
Alias (word*) psp1#17 = (word*) psp1#19
|
||||
Alias (word*) psp2#17 = (word*) psp2#19
|
||||
Alias (byte*) print_screen#58 = (byte*) print_screen#60
|
||||
Alias (byte*) SCREEN#68 = (byte*) SCREEN#70
|
||||
Alias (signed byte) sx#25 = (signed byte) sx#29
|
||||
@ -3297,9 +3496,14 @@ Alias (signed byte*) SINQ#6 = (signed byte*) SINQ#9
|
||||
Alias (signed byte*) xr#10 = (signed byte*) xr#13
|
||||
Alias (signed byte*) yr#10 = (signed byte*) yr#13
|
||||
Alias (signed byte*) zr#10 = (signed byte*) zr#13
|
||||
Alias (signed byte*) pp#12 = (signed byte*) pp#9
|
||||
Alias (signed byte*) xp#12 = (signed byte*) xp#9
|
||||
Alias (signed byte*) yp#12 = (signed byte*) yp#9
|
||||
Alias (signed byte*) pp#10 = (signed byte*) pp#13
|
||||
Alias (signed byte*) xp#10 = (signed byte*) xp#13
|
||||
Alias (signed byte*) yp#10 = (signed byte*) yp#13
|
||||
Alias (byte*) mulf_sqr1#12 = (byte*) mulf_sqr1#15
|
||||
Alias (byte*) mulf_sqr2#12 = (byte*) mulf_sqr2#15
|
||||
Alias (signed byte*) PERSP_Z#10 = (signed byte*) PERSP_Z#13
|
||||
Alias (word*) psp1#15 = (word*) psp1#18
|
||||
Alias (word*) psp2#15 = (word*) psp2#18
|
||||
Alias (byte*) print_screen#56 = (byte*) print_screen#59
|
||||
Alias (byte*) SCREEN#66 = (byte*) SCREEN#69
|
||||
Alias (signed byte) sx#21 = (signed byte) sx#26
|
||||
@ -3312,9 +3516,14 @@ Alias (signed byte*) SINQ#5 = (signed byte*) SINQ#7
|
||||
Alias (signed byte*) xr#11 = (signed byte*) xr#9
|
||||
Alias (signed byte*) yr#11 = (signed byte*) yr#9
|
||||
Alias (signed byte*) zr#11 = (signed byte*) zr#9
|
||||
Alias (signed byte*) pp#10 = (signed byte*) pp#8
|
||||
Alias (signed byte*) xp#10 = (signed byte*) xp#8
|
||||
Alias (signed byte*) yp#10 = (signed byte*) yp#8
|
||||
Alias (signed byte*) pp#11 = (signed byte*) pp#9
|
||||
Alias (signed byte*) xp#11 = (signed byte*) xp#9
|
||||
Alias (signed byte*) yp#11 = (signed byte*) yp#9
|
||||
Alias (byte*) mulf_sqr1#11 = (byte*) mulf_sqr1#13
|
||||
Alias (byte*) mulf_sqr2#11 = (byte*) mulf_sqr2#13
|
||||
Alias (signed byte*) PERSP_Z#11 = (signed byte*) PERSP_Z#9
|
||||
Alias (word*) psp1#14 = (word*) psp1#16
|
||||
Alias (word*) psp2#14 = (word*) psp2#16
|
||||
Alias (byte*) print_screen#55 = (byte*) print_screen#57
|
||||
Alias (byte*) SCREEN#65 = (byte*) SCREEN#67
|
||||
Alias (signed byte) sx#14 = (signed byte) sx#20 (signed byte) sx#8 (signed byte) sx#31 (signed byte) sx#30
|
||||
@ -3327,18 +3536,28 @@ Alias (signed byte*) SINQ#19 = (signed byte*) SINQ#4 (signed byte*) SINQ#3 (sign
|
||||
Alias (signed byte*) xr#4 = (signed byte*) xr#8 (signed byte*) xr#7 (signed byte*) xr#6 (signed byte*) xr#5
|
||||
Alias (signed byte*) yr#4 = (signed byte*) yr#8 (signed byte*) yr#7 (signed byte*) yr#6 (signed byte*) yr#5
|
||||
Alias (signed byte*) zr#4 = (signed byte*) zr#8 (signed byte*) zr#7 (signed byte*) zr#6 (signed byte*) zr#5
|
||||
Alias (signed byte*) pp#3 = (signed byte*) pp#7 (signed byte*) pp#6 (signed byte*) pp#5 (signed byte*) pp#4
|
||||
Alias (signed byte*) xp#3 = (signed byte*) xp#7 (signed byte*) xp#6 (signed byte*) xp#5 (signed byte*) xp#4
|
||||
Alias (signed byte*) yp#3 = (signed byte*) yp#7 (signed byte*) yp#6 (signed byte*) yp#5 (signed byte*) yp#4
|
||||
Alias (signed byte*) pp#4 = (signed byte*) pp#8 (signed byte*) pp#7 (signed byte*) pp#6 (signed byte*) pp#5
|
||||
Alias (signed byte*) xp#4 = (signed byte*) xp#8 (signed byte*) xp#7 (signed byte*) xp#6 (signed byte*) xp#5
|
||||
Alias (signed byte*) yp#4 = (signed byte*) yp#8 (signed byte*) yp#7 (signed byte*) yp#6 (signed byte*) yp#5
|
||||
Alias (byte*) mulf_sqr1#10 = (byte*) mulf_sqr1#9 (byte*) mulf_sqr1#8 (byte*) mulf_sqr1#7 (byte*) mulf_sqr1#5
|
||||
Alias (byte*) mulf_sqr2#10 = (byte*) mulf_sqr2#9 (byte*) mulf_sqr2#8 (byte*) mulf_sqr2#7 (byte*) mulf_sqr2#5
|
||||
Alias (signed byte*) PERSP_Z#3 = (signed byte*) PERSP_Z#8 (signed byte*) PERSP_Z#7 (signed byte*) PERSP_Z#6 (signed byte*) PERSP_Z#5
|
||||
Alias (word*) psp1#10 = (word*) psp1#13 (word*) psp1#12 (word*) psp1#8 (word*) psp1#6
|
||||
Alias (word*) psp2#10 = (word*) psp2#13 (word*) psp2#12 (word*) psp2#8 (word*) psp2#6
|
||||
Alias (byte*) print_screen#46 = (byte*) print_screen#54 (byte*) print_screen#53 (byte*) print_screen#51 (byte*) print_screen#48
|
||||
Alias (byte*) SCREEN#60 = (byte*) SCREEN#64 (byte*) SCREEN#63 (byte*) SCREEN#62 (byte*) SCREEN#61
|
||||
Alias (signed byte*) xr#1 = (signed byte*) xr#3 (signed byte*) xr#18 (signed byte*) xr#16
|
||||
Alias (byte) anim::i#2 = (byte) anim::i#3
|
||||
Alias (signed byte*) yr#1 = (signed byte*) yr#3 (signed byte*) yr#18 (signed byte*) yr#16
|
||||
Alias (signed byte*) zr#1 = (signed byte*) zr#3 (signed byte*) zr#18 (signed byte*) zr#16
|
||||
Alias (signed byte*) pp#1 = (signed byte*) pp#2 (signed byte*) pp#17 (signed byte*) pp#15
|
||||
Alias (signed byte*) xp#1 = (signed byte*) xp#2 (signed byte*) xp#17 (signed byte*) xp#15
|
||||
Alias (signed byte*) yp#1 = (signed byte*) yp#2 (signed byte*) yp#17 (signed byte*) yp#15
|
||||
Alias (signed byte*) pp#1 = (signed byte*) pp#3 (signed byte*) pp#18 (signed byte*) pp#16
|
||||
Alias (signed byte*) xp#1 = (signed byte*) xp#3 (signed byte*) xp#18 (signed byte*) xp#16
|
||||
Alias (signed byte*) yp#1 = (signed byte*) yp#3 (signed byte*) yp#18 (signed byte*) yp#16
|
||||
Alias (byte*) mulf_sqr1#18 = (byte*) mulf_sqr1#6 (byte*) mulf_sqr1#4 (byte*) mulf_sqr1#20
|
||||
Alias (byte*) mulf_sqr2#18 = (byte*) mulf_sqr2#6 (byte*) mulf_sqr2#4 (byte*) mulf_sqr2#20
|
||||
Alias (signed byte*) PERSP_Z#16 = (signed byte*) PERSP_Z#4 (signed byte*) PERSP_Z#2 (signed byte*) PERSP_Z#18
|
||||
Alias (word*) psp1#21 = (word*) psp1#7 (word*) psp1#4 (word*) psp1#23
|
||||
Alias (word*) psp2#21 = (word*) psp2#7 (word*) psp2#4 (word*) psp2#23
|
||||
Alias (signed byte) sx#15 = (signed byte) sx#22 (signed byte) sx#27 (signed byte) sx#9
|
||||
Alias (signed byte) sy#15 = (signed byte) sy#23 (signed byte) sy#29 (signed byte) sy#9
|
||||
Alias (byte*) print_screen#30 = (byte*) print_screen#43 (byte*) print_screen#45 (byte*) print_screen#62
|
||||
@ -3482,9 +3701,14 @@ Self Phi Eliminated (signed byte*) SINQ#6
|
||||
Self Phi Eliminated (signed byte*) xr#10
|
||||
Self Phi Eliminated (signed byte*) yr#10
|
||||
Self Phi Eliminated (signed byte*) zr#10
|
||||
Self Phi Eliminated (signed byte*) pp#12
|
||||
Self Phi Eliminated (signed byte*) xp#12
|
||||
Self Phi Eliminated (signed byte*) yp#12
|
||||
Self Phi Eliminated (signed byte*) pp#10
|
||||
Self Phi Eliminated (signed byte*) xp#10
|
||||
Self Phi Eliminated (signed byte*) yp#10
|
||||
Self Phi Eliminated (byte*) mulf_sqr1#12
|
||||
Self Phi Eliminated (byte*) mulf_sqr2#12
|
||||
Self Phi Eliminated (signed byte*) PERSP_Z#10
|
||||
Self Phi Eliminated (word*) psp1#15
|
||||
Self Phi Eliminated (word*) psp2#15
|
||||
Self Phi Eliminated (byte*) print_screen#56
|
||||
Self Phi Eliminated (byte*) SCREEN#66
|
||||
Self Phi Eliminated (signed byte) sx#21
|
||||
@ -3497,9 +3721,14 @@ Self Phi Eliminated (signed byte*) SINQ#5
|
||||
Self Phi Eliminated (signed byte*) xr#11
|
||||
Self Phi Eliminated (signed byte*) yr#11
|
||||
Self Phi Eliminated (signed byte*) zr#11
|
||||
Self Phi Eliminated (signed byte*) pp#10
|
||||
Self Phi Eliminated (signed byte*) xp#10
|
||||
Self Phi Eliminated (signed byte*) yp#10
|
||||
Self Phi Eliminated (signed byte*) pp#11
|
||||
Self Phi Eliminated (signed byte*) xp#11
|
||||
Self Phi Eliminated (signed byte*) yp#11
|
||||
Self Phi Eliminated (byte*) mulf_sqr1#11
|
||||
Self Phi Eliminated (byte*) mulf_sqr2#11
|
||||
Self Phi Eliminated (signed byte*) PERSP_Z#11
|
||||
Self Phi Eliminated (word*) psp1#14
|
||||
Self Phi Eliminated (word*) psp2#14
|
||||
Self Phi Eliminated (byte*) print_screen#55
|
||||
Self Phi Eliminated (byte*) SCREEN#65
|
||||
Self Phi Eliminated (signed byte) sx#14
|
||||
@ -3512,9 +3741,14 @@ Self Phi Eliminated (signed byte*) SINQ#19
|
||||
Self Phi Eliminated (signed byte*) xr#4
|
||||
Self Phi Eliminated (signed byte*) yr#4
|
||||
Self Phi Eliminated (signed byte*) zr#4
|
||||
Self Phi Eliminated (signed byte*) pp#3
|
||||
Self Phi Eliminated (signed byte*) xp#3
|
||||
Self Phi Eliminated (signed byte*) yp#3
|
||||
Self Phi Eliminated (signed byte*) pp#4
|
||||
Self Phi Eliminated (signed byte*) xp#4
|
||||
Self Phi Eliminated (signed byte*) yp#4
|
||||
Self Phi Eliminated (byte*) mulf_sqr1#10
|
||||
Self Phi Eliminated (byte*) mulf_sqr2#10
|
||||
Self Phi Eliminated (signed byte*) PERSP_Z#3
|
||||
Self Phi Eliminated (word*) psp1#10
|
||||
Self Phi Eliminated (word*) psp2#10
|
||||
Self Phi Eliminated (byte*) print_screen#46
|
||||
Self Phi Eliminated (byte*) SCREEN#60
|
||||
Self Phi Eliminated (signed byte*) xr#1
|
||||
@ -3523,6 +3757,11 @@ Self Phi Eliminated (signed byte*) zr#1
|
||||
Self Phi Eliminated (signed byte*) pp#1
|
||||
Self Phi Eliminated (signed byte*) xp#1
|
||||
Self Phi Eliminated (signed byte*) yp#1
|
||||
Self Phi Eliminated (byte*) mulf_sqr1#18
|
||||
Self Phi Eliminated (byte*) mulf_sqr2#18
|
||||
Self Phi Eliminated (signed byte*) PERSP_Z#16
|
||||
Self Phi Eliminated (word*) psp1#21
|
||||
Self Phi Eliminated (word*) psp2#21
|
||||
Self Phi Eliminated (signed byte) sx#15
|
||||
Self Phi Eliminated (signed byte) sy#15
|
||||
Self Phi Eliminated (byte*) print_screen#30
|
||||
@ -3565,9 +3804,10 @@ Redundant Phi (signed byte*) SINQ#13 (signed byte*) SINQ#0
|
||||
Redundant Phi (signed byte*) xr#17 (signed byte*) xr#0
|
||||
Redundant Phi (signed byte*) yr#17 (signed byte*) yr#0
|
||||
Redundant Phi (signed byte*) zr#17 (signed byte*) zr#0
|
||||
Redundant Phi (signed byte*) pp#16 (signed byte*) pp#0
|
||||
Redundant Phi (signed byte*) xp#16 (signed byte*) xp#0
|
||||
Redundant Phi (signed byte*) yp#16 (signed byte*) yp#0
|
||||
Redundant Phi (signed byte*) pp#17 (signed byte*) pp#0
|
||||
Redundant Phi (signed byte*) xp#17 (signed byte*) xp#0
|
||||
Redundant Phi (signed byte*) yp#17 (signed byte*) yp#0
|
||||
Redundant Phi (signed byte*) PERSP_Z#17 (signed byte*) PERSP_Z#0
|
||||
Redundant Phi (byte*) print_line_cursor#10 (byte*) print_line_cursor#12
|
||||
Redundant Phi (byte*) print_char_cursor#10 (byte*) print_char_cursor#12
|
||||
Redundant Phi (signed byte) sx#0 (signed byte) sx#10
|
||||
@ -3582,9 +3822,14 @@ Redundant Phi (signed byte*) SINQ#11 (signed byte*) SINQ#13
|
||||
Redundant Phi (signed byte*) xr#15 (signed byte*) xr#17
|
||||
Redundant Phi (signed byte*) yr#15 (signed byte*) yr#17
|
||||
Redundant Phi (signed byte*) zr#15 (signed byte*) zr#17
|
||||
Redundant Phi (signed byte*) pp#14 (signed byte*) pp#16
|
||||
Redundant Phi (signed byte*) xp#14 (signed byte*) xp#16
|
||||
Redundant Phi (signed byte*) yp#14 (signed byte*) yp#16
|
||||
Redundant Phi (signed byte*) pp#15 (signed byte*) pp#17
|
||||
Redundant Phi (signed byte*) xp#15 (signed byte*) xp#17
|
||||
Redundant Phi (signed byte*) yp#15 (signed byte*) yp#17
|
||||
Redundant Phi (byte*) mulf_sqr1#17 (byte*) mulf_sqr1#1
|
||||
Redundant Phi (byte*) mulf_sqr2#17 (byte*) mulf_sqr2#1
|
||||
Redundant Phi (signed byte*) PERSP_Z#15 (signed byte*) PERSP_Z#17
|
||||
Redundant Phi (word*) psp1#20 (word*) psp1#1
|
||||
Redundant Phi (word*) psp2#20 (word*) psp2#1
|
||||
Redundant Phi (byte*) print_screen#61 (byte*) print_screen#29
|
||||
Redundant Phi (byte*) SCREEN#71 (byte*) SCREEN#17
|
||||
Redundant Phi (signed byte) sx#25 (signed byte) sx#10
|
||||
@ -3597,9 +3842,14 @@ Redundant Phi (signed byte*) SINQ#6 (signed byte*) SINQ#10
|
||||
Redundant Phi (signed byte*) xr#10 (signed byte*) xr#12
|
||||
Redundant Phi (signed byte*) yr#10 (signed byte*) yr#12
|
||||
Redundant Phi (signed byte*) zr#10 (signed byte*) zr#12
|
||||
Redundant Phi (signed byte*) pp#12 (signed byte*) pp#11
|
||||
Redundant Phi (signed byte*) xp#12 (signed byte*) xp#11
|
||||
Redundant Phi (signed byte*) yp#12 (signed byte*) yp#11
|
||||
Redundant Phi (signed byte*) pp#10 (signed byte*) pp#12
|
||||
Redundant Phi (signed byte*) xp#10 (signed byte*) xp#12
|
||||
Redundant Phi (signed byte*) yp#10 (signed byte*) yp#12
|
||||
Redundant Phi (byte*) mulf_sqr1#12 (byte*) mulf_sqr1#14
|
||||
Redundant Phi (byte*) mulf_sqr2#12 (byte*) mulf_sqr2#14
|
||||
Redundant Phi (signed byte*) PERSP_Z#10 (signed byte*) PERSP_Z#12
|
||||
Redundant Phi (word*) psp1#15 (word*) psp1#17
|
||||
Redundant Phi (word*) psp2#15 (word*) psp2#17
|
||||
Redundant Phi (byte*) print_screen#56 (byte*) print_screen#58
|
||||
Redundant Phi (byte*) SCREEN#66 (byte*) SCREEN#68
|
||||
Redundant Phi (signed byte) sx#21 (signed byte) sx#25
|
||||
@ -3612,9 +3862,14 @@ Redundant Phi (signed byte*) SINQ#5 (signed byte*) SINQ#6
|
||||
Redundant Phi (signed byte*) xr#11 (signed byte*) xr#10
|
||||
Redundant Phi (signed byte*) yr#11 (signed byte*) yr#10
|
||||
Redundant Phi (signed byte*) zr#11 (signed byte*) zr#10
|
||||
Redundant Phi (signed byte*) pp#10 (signed byte*) pp#12
|
||||
Redundant Phi (signed byte*) xp#10 (signed byte*) xp#12
|
||||
Redundant Phi (signed byte*) yp#10 (signed byte*) yp#12
|
||||
Redundant Phi (signed byte*) pp#11 (signed byte*) pp#10
|
||||
Redundant Phi (signed byte*) xp#11 (signed byte*) xp#10
|
||||
Redundant Phi (signed byte*) yp#11 (signed byte*) yp#10
|
||||
Redundant Phi (byte*) mulf_sqr1#11 (byte*) mulf_sqr1#12
|
||||
Redundant Phi (byte*) mulf_sqr2#11 (byte*) mulf_sqr2#12
|
||||
Redundant Phi (signed byte*) PERSP_Z#11 (signed byte*) PERSP_Z#10
|
||||
Redundant Phi (word*) psp1#14 (word*) psp1#15
|
||||
Redundant Phi (word*) psp2#14 (word*) psp2#15
|
||||
Redundant Phi (byte*) print_screen#55 (byte*) print_screen#56
|
||||
Redundant Phi (byte*) SCREEN#65 (byte*) SCREEN#66
|
||||
Redundant Phi (signed byte) sx#14 (signed byte) sx#21
|
||||
@ -3627,17 +3882,27 @@ Redundant Phi (signed byte*) SINQ#19 (signed byte*) SINQ#5
|
||||
Redundant Phi (signed byte*) xr#4 (signed byte*) xr#11
|
||||
Redundant Phi (signed byte*) yr#4 (signed byte*) yr#11
|
||||
Redundant Phi (signed byte*) zr#4 (signed byte*) zr#11
|
||||
Redundant Phi (signed byte*) pp#3 (signed byte*) pp#10
|
||||
Redundant Phi (signed byte*) xp#3 (signed byte*) xp#10
|
||||
Redundant Phi (signed byte*) yp#3 (signed byte*) yp#10
|
||||
Redundant Phi (signed byte*) pp#4 (signed byte*) pp#11
|
||||
Redundant Phi (signed byte*) xp#4 (signed byte*) xp#11
|
||||
Redundant Phi (signed byte*) yp#4 (signed byte*) yp#11
|
||||
Redundant Phi (byte*) mulf_sqr1#10 (byte*) mulf_sqr1#11
|
||||
Redundant Phi (byte*) mulf_sqr2#10 (byte*) mulf_sqr2#11
|
||||
Redundant Phi (signed byte*) PERSP_Z#3 (signed byte*) PERSP_Z#11
|
||||
Redundant Phi (word*) psp1#10 (word*) psp1#14
|
||||
Redundant Phi (word*) psp2#10 (word*) psp2#14
|
||||
Redundant Phi (byte*) print_screen#46 (byte*) print_screen#55
|
||||
Redundant Phi (byte*) SCREEN#60 (byte*) SCREEN#65
|
||||
Redundant Phi (signed byte*) xr#1 (signed byte*) xr#4
|
||||
Redundant Phi (signed byte*) yr#1 (signed byte*) yr#4
|
||||
Redundant Phi (signed byte*) zr#1 (signed byte*) zr#4
|
||||
Redundant Phi (signed byte*) pp#1 (signed byte*) pp#3
|
||||
Redundant Phi (signed byte*) xp#1 (signed byte*) xp#3
|
||||
Redundant Phi (signed byte*) yp#1 (signed byte*) yp#3
|
||||
Redundant Phi (signed byte*) pp#1 (signed byte*) pp#4
|
||||
Redundant Phi (signed byte*) xp#1 (signed byte*) xp#4
|
||||
Redundant Phi (signed byte*) yp#1 (signed byte*) yp#4
|
||||
Redundant Phi (byte*) mulf_sqr1#18 (byte*) mulf_sqr1#10
|
||||
Redundant Phi (byte*) mulf_sqr2#18 (byte*) mulf_sqr2#10
|
||||
Redundant Phi (signed byte*) PERSP_Z#16 (signed byte*) PERSP_Z#3
|
||||
Redundant Phi (word*) psp1#21 (word*) psp1#10
|
||||
Redundant Phi (word*) psp2#21 (word*) psp2#10
|
||||
Redundant Phi (signed byte) sx#15 (signed byte) sx#14
|
||||
Redundant Phi (signed byte) sy#15 (signed byte) sy#14
|
||||
Redundant Phi (byte*) print_screen#30 (byte*) print_screen#46
|
||||
@ -3681,6 +3946,14 @@ Redundant Phi (signed byte) rotate_matrix::y#1 (signed byte) rotate_matrix::y#0
|
||||
Redundant Phi (signed byte*) yr#2 (signed byte*) yr#1
|
||||
Redundant Phi (signed byte) rotate_matrix::z#1 (signed byte) rotate_matrix::z#0
|
||||
Redundant Phi (signed byte*) zr#2 (signed byte*) zr#1
|
||||
Redundant Phi (byte*) mulf_sqr1#2 (byte*) mulf_sqr1#18
|
||||
Redundant Phi (byte*) mulf_sqr2#2 (byte*) mulf_sqr2#18
|
||||
Redundant Phi (signed byte*) PERSP_Z#1 (signed byte*) PERSP_Z#16
|
||||
Redundant Phi (signed byte*) pp#2 (signed byte*) pp#1
|
||||
Redundant Phi (word*) psp1#2 (word*) psp1#21
|
||||
Redundant Phi (word*) psp2#2 (word*) psp2#21
|
||||
Redundant Phi (signed byte*) yp#2 (signed byte*) yp#1
|
||||
Redundant Phi (signed byte*) xp#2 (signed byte*) xp#1
|
||||
Redundant Phi (byte*) print_line_cursor#13 (byte*) print_line_cursor#10
|
||||
Redundant Phi (byte*) print_char_cursor#13 (byte*) print_char_cursor#10
|
||||
Redundant Phi (signed byte) sx#12 (signed byte) sx#0
|
||||
@ -3977,8 +4250,8 @@ if() condition always true - replacing block destination [44] if(true) goto anim
|
||||
Successful SSA optimization Pass2ConstantIfs
|
||||
Successful SSA optimization PassNEliminateUnusedVars
|
||||
Eliminating Noop Cast (byte) print_byte_at::b#0 ← ((byte)) (signed byte) print_sbyte_at::b#24
|
||||
Eliminating Noop Cast (byte~) anim::$7 ← ((byte)) *((signed byte*) xp#11)
|
||||
Eliminating Noop Cast (byte~) anim::$9 ← ((byte)) *((signed byte*) yp#11)
|
||||
Eliminating Noop Cast (byte~) anim::$7 ← ((byte)) *((signed byte*) xp#12)
|
||||
Eliminating Noop Cast (byte~) anim::$9 ← ((byte)) *((signed byte*) yp#12)
|
||||
Successful SSA optimization Pass2NopCastElimination
|
||||
Removing unused block anim::@return
|
||||
Successful SSA optimization Pass2EliminateUnusedBlocks
|
||||
@ -4029,9 +4302,14 @@ Self Phi Eliminated (signed byte*) SINQ#10
|
||||
Self Phi Eliminated (signed byte*) xr#12
|
||||
Self Phi Eliminated (signed byte*) yr#12
|
||||
Self Phi Eliminated (signed byte*) zr#12
|
||||
Self Phi Eliminated (signed byte*) pp#11
|
||||
Self Phi Eliminated (signed byte*) xp#11
|
||||
Self Phi Eliminated (signed byte*) yp#11
|
||||
Self Phi Eliminated (signed byte*) pp#12
|
||||
Self Phi Eliminated (signed byte*) xp#12
|
||||
Self Phi Eliminated (signed byte*) yp#12
|
||||
Self Phi Eliminated (byte*) mulf_sqr1#14
|
||||
Self Phi Eliminated (byte*) mulf_sqr2#14
|
||||
Self Phi Eliminated (signed byte*) PERSP_Z#12
|
||||
Self Phi Eliminated (word*) psp1#17
|
||||
Self Phi Eliminated (word*) psp2#17
|
||||
Self Phi Eliminated (byte*) print_screen#58
|
||||
Self Phi Eliminated (byte*) SCREEN#68
|
||||
Self Phi Eliminated (byte*) debug_print_init::at_line#1
|
||||
@ -4045,9 +4323,14 @@ Redundant Phi (signed byte*) SINQ#10 (const signed byte*) SINQ#0
|
||||
Redundant Phi (signed byte*) xr#12 (const signed byte*) xr#0
|
||||
Redundant Phi (signed byte*) yr#12 (const signed byte*) yr#0
|
||||
Redundant Phi (signed byte*) zr#12 (const signed byte*) zr#0
|
||||
Redundant Phi (signed byte*) pp#11 (const signed byte*) pp#0
|
||||
Redundant Phi (signed byte*) xp#11 (const signed byte*) xp#0
|
||||
Redundant Phi (signed byte*) yp#11 (const signed byte*) yp#0
|
||||
Redundant Phi (signed byte*) pp#12 (const signed byte*) pp#0
|
||||
Redundant Phi (signed byte*) xp#12 (const signed byte*) xp#0
|
||||
Redundant Phi (signed byte*) yp#12 (const signed byte*) yp#0
|
||||
Redundant Phi (byte*) mulf_sqr1#14 (const byte*) mulf_sqr1#0
|
||||
Redundant Phi (byte*) mulf_sqr2#14 (const byte*) mulf_sqr2#0
|
||||
Redundant Phi (signed byte*) PERSP_Z#12 (const signed byte*) PERSP_Z#0
|
||||
Redundant Phi (word*) psp1#17 (const word*) psp1#0
|
||||
Redundant Phi (word*) psp2#17 (const word*) psp2#0
|
||||
Redundant Phi (byte*) print_screen#58 (const byte*) print_line_cursor#0
|
||||
Redundant Phi (byte*) SCREEN#68 (const byte*) SCREEN#0
|
||||
Redundant Phi (byte*) debug_print_init::at_line#1 (const byte*) debug_print_init::at_line#0
|
||||
|
@ -1,5 +1,6 @@
|
||||
Resolved forward reference mulf_sqr1 to (byte[$200]) mulf_sqr1
|
||||
Resolved forward reference mulf_sqr2 to (byte[$200]) mulf_sqr2
|
||||
Resolved forward reference PERSP_Z to (signed byte*) PERSP_Z
|
||||
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
||||
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@ -257,26 +258,28 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(word*) psp2#0 ← ((word*)) (byte/word/signed word/dword/signed dword) $f5
|
||||
to:@26
|
||||
main: scope:[main] from @27
|
||||
(signed byte*) PERSP_Z#12 ← phi( @27/(signed byte*) PERSP_Z#0 )
|
||||
(signed byte*) zr#12 ← phi( @27/(signed byte*) zr#13 )
|
||||
(signed byte*) yr#15 ← phi( @27/(signed byte*) yr#16 )
|
||||
(signed byte*) xr#13 ← phi( @27/(signed byte*) xr#14 )
|
||||
(byte*) print_char_cursor#76 ← phi( @27/(byte*) print_char_cursor#73 )
|
||||
(byte*) print_line_cursor#25 ← phi( @27/(byte*) print_line_cursor#24 )
|
||||
(byte*) print_screen#5 ← phi( @27/(byte*) print_screen#6 )
|
||||
(word*) psp2#2 ← phi( @27/(word*) psp2#3 )
|
||||
(word*) psp1#2 ← phi( @27/(word*) psp1#3 )
|
||||
(word*) psp2#3 ← phi( @27/(word*) psp2#5 )
|
||||
(word*) psp1#3 ← phi( @27/(word*) psp1#5 )
|
||||
asm { sei }
|
||||
call mulf_init
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(signed byte*) PERSP_Z#11 ← phi( main/(signed byte*) PERSP_Z#12 )
|
||||
(signed byte*) zr#11 ← phi( main/(signed byte*) zr#12 )
|
||||
(signed byte*) yr#14 ← phi( main/(signed byte*) yr#15 )
|
||||
(signed byte*) xr#12 ← phi( main/(signed byte*) xr#13 )
|
||||
(byte*) print_char_cursor#70 ← phi( main/(byte*) print_char_cursor#76 )
|
||||
(byte*) print_line_cursor#22 ← phi( main/(byte*) print_line_cursor#25 )
|
||||
(byte*) print_screen#4 ← phi( main/(byte*) print_screen#5 )
|
||||
(word*) psp2#1 ← phi( main/(word*) psp2#2 )
|
||||
(word*) psp1#1 ← phi( main/(word*) psp1#2 )
|
||||
(word*) psp2#1 ← phi( main/(word*) psp2#3 )
|
||||
(word*) psp1#1 ← phi( main/(word*) psp1#3 )
|
||||
(word~) main::$1 ← ((word)) (byte[$200]) mulf_sqr1#0
|
||||
*((word*) psp1#1) ← (word~) main::$1
|
||||
(word~) main::$2 ← ((word)) (byte[$200]) mulf_sqr2#0
|
||||
@ -284,6 +287,9 @@ main::@1: scope:[main] from main
|
||||
call print_cls
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
(word*) psp2#14 ← phi( main::@1/(word*) psp2#1 )
|
||||
(word*) psp1#14 ← phi( main::@1/(word*) psp1#1 )
|
||||
(signed byte*) PERSP_Z#10 ← phi( main::@1/(signed byte*) PERSP_Z#11 )
|
||||
(signed byte*) zr#10 ← phi( main::@1/(signed byte*) zr#11 )
|
||||
(signed byte*) yr#13 ← phi( main::@1/(signed byte*) yr#14 )
|
||||
(signed byte*) xr#11 ← phi( main::@1/(signed byte*) xr#12 )
|
||||
@ -312,6 +318,9 @@ main::@return: scope:[main] from main::@3
|
||||
to:@return
|
||||
do_perspective: scope:[do_perspective] from main::@2
|
||||
(byte*) print_line_cursor#40 ← phi( main::@2/(byte*) print_line_cursor#5 )
|
||||
(word*) psp2#13 ← phi( main::@2/(word*) psp2#14 )
|
||||
(word*) psp1#13 ← phi( main::@2/(word*) psp1#14 )
|
||||
(signed byte*) PERSP_Z#9 ← phi( main::@2/(signed byte*) PERSP_Z#10 )
|
||||
(signed byte*) zr#9 ← phi( main::@2/(signed byte*) zr#10 )
|
||||
(signed byte*) yr#12 ← phi( main::@2/(signed byte*) yr#13 )
|
||||
(signed byte*) xr#10 ← phi( main::@2/(signed byte*) xr#11 )
|
||||
@ -324,6 +333,9 @@ do_perspective: scope:[do_perspective] from main::@2
|
||||
to:do_perspective::@1
|
||||
do_perspective::@1: scope:[do_perspective] from do_perspective
|
||||
(byte*) print_line_cursor#39 ← phi( do_perspective/(byte*) print_line_cursor#40 )
|
||||
(word*) psp2#12 ← phi( do_perspective/(word*) psp2#13 )
|
||||
(word*) psp1#12 ← phi( do_perspective/(word*) psp1#13 )
|
||||
(signed byte*) PERSP_Z#8 ← phi( do_perspective/(signed byte*) PERSP_Z#9 )
|
||||
(signed byte*) zr#8 ← phi( do_perspective/(signed byte*) zr#9 )
|
||||
(signed byte*) yr#11 ← phi( do_perspective/(signed byte*) yr#12 )
|
||||
(signed byte*) xr#9 ← phi( do_perspective/(signed byte*) xr#10 )
|
||||
@ -337,6 +349,9 @@ do_perspective::@1: scope:[do_perspective] from do_perspective
|
||||
to:do_perspective::@2
|
||||
do_perspective::@2: scope:[do_perspective] from do_perspective::@1
|
||||
(byte*) print_line_cursor#38 ← phi( do_perspective::@1/(byte*) print_line_cursor#39 )
|
||||
(word*) psp2#11 ← phi( do_perspective::@1/(word*) psp2#12 )
|
||||
(word*) psp1#11 ← phi( do_perspective::@1/(word*) psp1#12 )
|
||||
(signed byte*) PERSP_Z#7 ← phi( do_perspective::@1/(signed byte*) PERSP_Z#8 )
|
||||
(signed byte*) zr#7 ← phi( do_perspective::@1/(signed byte*) zr#8 )
|
||||
(signed byte*) yr#10 ← phi( do_perspective::@1/(signed byte*) yr#11 )
|
||||
(signed byte*) xr#8 ← phi( do_perspective::@1/(signed byte*) xr#9 )
|
||||
@ -350,6 +365,9 @@ do_perspective::@2: scope:[do_perspective] from do_perspective::@1
|
||||
to:do_perspective::@3
|
||||
do_perspective::@3: scope:[do_perspective] from do_perspective::@2
|
||||
(byte*) print_line_cursor#37 ← phi( do_perspective::@2/(byte*) print_line_cursor#38 )
|
||||
(word*) psp2#10 ← phi( do_perspective::@2/(word*) psp2#11 )
|
||||
(word*) psp1#10 ← phi( do_perspective::@2/(word*) psp1#11 )
|
||||
(signed byte*) PERSP_Z#6 ← phi( do_perspective::@2/(signed byte*) PERSP_Z#7 )
|
||||
(signed byte*) zr#6 ← phi( do_perspective::@2/(signed byte*) zr#7 )
|
||||
(signed byte*) yr#9 ← phi( do_perspective::@2/(signed byte*) yr#10 )
|
||||
(signed byte*) xr#7 ← phi( do_perspective::@2/(signed byte*) xr#8 )
|
||||
@ -363,6 +381,9 @@ do_perspective::@3: scope:[do_perspective] from do_perspective::@2
|
||||
to:do_perspective::@4
|
||||
do_perspective::@4: scope:[do_perspective] from do_perspective::@3
|
||||
(byte*) print_line_cursor#36 ← phi( do_perspective::@3/(byte*) print_line_cursor#37 )
|
||||
(word*) psp2#9 ← phi( do_perspective::@3/(word*) psp2#10 )
|
||||
(word*) psp1#9 ← phi( do_perspective::@3/(word*) psp1#10 )
|
||||
(signed byte*) PERSP_Z#5 ← phi( do_perspective::@3/(signed byte*) PERSP_Z#6 )
|
||||
(signed byte*) zr#5 ← phi( do_perspective::@3/(signed byte*) zr#6 )
|
||||
(signed byte*) yr#8 ← phi( do_perspective::@3/(signed byte*) yr#9 )
|
||||
(signed byte*) xr#6 ← phi( do_perspective::@3/(signed byte*) xr#7 )
|
||||
@ -376,6 +397,9 @@ do_perspective::@4: scope:[do_perspective] from do_perspective::@3
|
||||
to:do_perspective::@5
|
||||
do_perspective::@5: scope:[do_perspective] from do_perspective::@4
|
||||
(byte*) print_line_cursor#35 ← phi( do_perspective::@4/(byte*) print_line_cursor#36 )
|
||||
(word*) psp2#7 ← phi( do_perspective::@4/(word*) psp2#9 )
|
||||
(word*) psp1#7 ← phi( do_perspective::@4/(word*) psp1#9 )
|
||||
(signed byte*) PERSP_Z#4 ← phi( do_perspective::@4/(signed byte*) PERSP_Z#5 )
|
||||
(signed byte*) zr#4 ← phi( do_perspective::@4/(signed byte*) zr#5 )
|
||||
(signed byte*) yr#7 ← phi( do_perspective::@4/(signed byte*) yr#8 )
|
||||
(signed byte*) xr#5 ← phi( do_perspective::@4/(signed byte*) xr#6 )
|
||||
@ -389,6 +413,9 @@ do_perspective::@5: scope:[do_perspective] from do_perspective::@4
|
||||
to:do_perspective::@6
|
||||
do_perspective::@6: scope:[do_perspective] from do_perspective::@5
|
||||
(byte*) print_line_cursor#34 ← phi( do_perspective::@5/(byte*) print_line_cursor#35 )
|
||||
(word*) psp2#6 ← phi( do_perspective::@5/(word*) psp2#7 )
|
||||
(word*) psp1#6 ← phi( do_perspective::@5/(word*) psp1#7 )
|
||||
(signed byte*) PERSP_Z#3 ← phi( do_perspective::@5/(signed byte*) PERSP_Z#4 )
|
||||
(signed byte*) zr#3 ← phi( do_perspective::@5/(signed byte*) zr#4 )
|
||||
(signed byte*) yr#5 ← phi( do_perspective::@5/(signed byte*) yr#7 )
|
||||
(signed byte*) xr#4 ← phi( do_perspective::@5/(signed byte*) xr#5 )
|
||||
@ -402,6 +429,9 @@ do_perspective::@6: scope:[do_perspective] from do_perspective::@5
|
||||
to:do_perspective::@7
|
||||
do_perspective::@7: scope:[do_perspective] from do_perspective::@6
|
||||
(byte*) print_line_cursor#33 ← phi( do_perspective::@6/(byte*) print_line_cursor#34 )
|
||||
(word*) psp2#4 ← phi( do_perspective::@6/(word*) psp2#6 )
|
||||
(word*) psp1#4 ← phi( do_perspective::@6/(word*) psp1#6 )
|
||||
(signed byte*) PERSP_Z#2 ← phi( do_perspective::@6/(signed byte*) PERSP_Z#3 )
|
||||
(signed byte*) zr#2 ← phi( do_perspective::@6/(signed byte*) zr#3 )
|
||||
(signed byte*) yr#4 ← phi( do_perspective::@6/(signed byte*) yr#5 )
|
||||
(signed byte*) xr#3 ← phi( do_perspective::@6/(signed byte*) xr#4 )
|
||||
@ -468,6 +498,9 @@ do_perspective::@return: scope:[do_perspective] from do_perspective::@13
|
||||
return
|
||||
to:@return
|
||||
perspective: scope:[perspective] from do_perspective::@7
|
||||
(word*) psp2#2 ← phi( do_perspective::@7/(word*) psp2#4 )
|
||||
(word*) psp1#2 ← phi( do_perspective::@7/(word*) psp1#4 )
|
||||
(signed byte*) PERSP_Z#1 ← phi( do_perspective::@7/(signed byte*) PERSP_Z#2 )
|
||||
(signed byte*) zr#1 ← phi( do_perspective::@7/(signed byte*) zr#2 )
|
||||
(signed byte) perspective::z#1 ← phi( do_perspective::@7/(signed byte) perspective::z#0 )
|
||||
(signed byte*) yr#2 ← phi( do_perspective::@7/(signed byte*) yr#4 )
|
||||
@ -487,8 +520,8 @@ perspective::@return: scope:[perspective] from perspective
|
||||
(signed byte*) yr#17 ← phi( @23/(signed byte*) yr#0 )
|
||||
(signed byte*) xr#15 ← phi( @23/(signed byte*) xr#0 )
|
||||
(byte*) print_screen#7 ← phi( @23/(byte*) print_screen#8 )
|
||||
(word*) psp2#4 ← phi( @23/(word*) psp2#0 )
|
||||
(word*) psp1#4 ← phi( @23/(word*) psp1#0 )
|
||||
(word*) psp2#8 ← phi( @23/(word*) psp2#0 )
|
||||
(word*) psp1#8 ← phi( @23/(word*) psp1#0 )
|
||||
(byte*) print_char_cursor#77 ← phi( @23/(byte*) print_char_cursor#78 )
|
||||
(byte*) print_line_cursor#27 ← phi( @23/(byte*) print_line_cursor#29 )
|
||||
(byte[$200]) mulf_sqr1#0 ← { fill( $200, 0) }
|
||||
@ -537,8 +570,8 @@ mulf_init::@return: scope:[mulf_init] from mulf_init::@1
|
||||
(signed byte*) yr#16 ← phi( @26/(signed byte*) yr#17 )
|
||||
(signed byte*) xr#14 ← phi( @26/(signed byte*) xr#15 )
|
||||
(byte*) print_screen#6 ← phi( @26/(byte*) print_screen#7 )
|
||||
(word*) psp2#3 ← phi( @26/(word*) psp2#4 )
|
||||
(word*) psp1#3 ← phi( @26/(word*) psp1#4 )
|
||||
(word*) psp2#5 ← phi( @26/(word*) psp2#8 )
|
||||
(word*) psp1#5 ← phi( @26/(word*) psp1#8 )
|
||||
(byte*) print_char_cursor#73 ← phi( @26/(byte*) print_char_cursor#77 )
|
||||
(byte*) print_line_cursor#24 ← phi( @26/(byte*) print_line_cursor#27 )
|
||||
(signed byte*) PERSP_Z#0 ← ((signed byte*)) (word/signed word/dword/signed dword) $2400
|
||||
@ -662,6 +695,18 @@ SYMBOL TABLE SSA
|
||||
(byte) ORANGE#0
|
||||
(signed byte*) PERSP_Z
|
||||
(signed byte*) PERSP_Z#0
|
||||
(signed byte*) PERSP_Z#1
|
||||
(signed byte*) PERSP_Z#10
|
||||
(signed byte*) PERSP_Z#11
|
||||
(signed byte*) PERSP_Z#12
|
||||
(signed byte*) PERSP_Z#2
|
||||
(signed byte*) PERSP_Z#3
|
||||
(signed byte*) PERSP_Z#4
|
||||
(signed byte*) PERSP_Z#5
|
||||
(signed byte*) PERSP_Z#6
|
||||
(signed byte*) PERSP_Z#7
|
||||
(signed byte*) PERSP_Z#8
|
||||
(signed byte*) PERSP_Z#9
|
||||
(byte) PINK
|
||||
(byte) PINK#0
|
||||
(byte*) PROCPORT
|
||||
@ -1052,15 +1097,35 @@ SYMBOL TABLE SSA
|
||||
(word*) psp1
|
||||
(word*) psp1#0
|
||||
(word*) psp1#1
|
||||
(word*) psp1#10
|
||||
(word*) psp1#11
|
||||
(word*) psp1#12
|
||||
(word*) psp1#13
|
||||
(word*) psp1#14
|
||||
(word*) psp1#2
|
||||
(word*) psp1#3
|
||||
(word*) psp1#4
|
||||
(word*) psp1#5
|
||||
(word*) psp1#6
|
||||
(word*) psp1#7
|
||||
(word*) psp1#8
|
||||
(word*) psp1#9
|
||||
(word*) psp2
|
||||
(word*) psp2#0
|
||||
(word*) psp2#1
|
||||
(word*) psp2#10
|
||||
(word*) psp2#11
|
||||
(word*) psp2#12
|
||||
(word*) psp2#13
|
||||
(word*) psp2#14
|
||||
(word*) psp2#2
|
||||
(word*) psp2#3
|
||||
(word*) psp2#4
|
||||
(word*) psp2#5
|
||||
(word*) psp2#6
|
||||
(word*) psp2#7
|
||||
(word*) psp2#8
|
||||
(word*) psp2#9
|
||||
(signed byte*) xr
|
||||
(signed byte*) xr#0
|
||||
(signed byte*) xr#1
|
||||
@ -1130,14 +1195,15 @@ Alias (byte*) print_char_cursor#41 = (byte*) print_char_cursor#9
|
||||
Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#42 (byte*) print_char_cursor#43 (byte*) print_char_cursor#11
|
||||
Alias (byte*) print_char_cursor#12 = (byte*) print_char_cursor#45 (byte*) print_char_cursor#13
|
||||
Alias (byte*) print_line_cursor#14 = (byte*) print_screen#3 (byte*) print_screen#2 (byte*) print_line_cursor#3 (byte*) print_char_cursor#14 (byte*) print_char_cursor#46 (byte*) print_line_cursor#4 (byte*) print_char_cursor#15
|
||||
Alias (word*) psp1#1 = (word*) psp1#2
|
||||
Alias (word*) psp2#1 = (word*) psp2#2
|
||||
Alias (word*) psp1#1 = (word*) psp1#3 (word*) psp1#14
|
||||
Alias (word*) psp2#1 = (word*) psp2#3 (word*) psp2#14
|
||||
Alias (byte*) print_screen#4 = (byte*) print_screen#5
|
||||
Alias (byte*) print_line_cursor#22 = (byte*) print_line_cursor#25
|
||||
Alias (byte*) print_char_cursor#70 = (byte*) print_char_cursor#76
|
||||
Alias (signed byte*) xr#11 = (signed byte*) xr#12 (signed byte*) xr#13
|
||||
Alias (signed byte*) yr#13 = (signed byte*) yr#14 (signed byte*) yr#15
|
||||
Alias (signed byte*) zr#10 = (signed byte*) zr#11 (signed byte*) zr#12
|
||||
Alias (signed byte*) PERSP_Z#10 = (signed byte*) PERSP_Z#11 (signed byte*) PERSP_Z#12
|
||||
Alias (byte*) print_line_cursor#15 = (byte*) print_line_cursor#5
|
||||
Alias (byte*) print_char_cursor#16 = (byte*) print_char_cursor#47
|
||||
Alias (signed byte) do_perspective::y#0 = (signed byte/signed word/signed dword~) main::$4
|
||||
@ -1149,6 +1215,9 @@ Alias (signed byte) do_perspective::z#1 = (signed byte) do_perspective::z#7 (sig
|
||||
Alias (signed byte*) xr#1 = (signed byte*) xr#9 (signed byte*) xr#10 (signed byte*) xr#8 (signed byte*) xr#7 (signed byte*) xr#6 (signed byte*) xr#5 (signed byte*) xr#4 (signed byte*) xr#3
|
||||
Alias (signed byte*) yr#1 = (signed byte*) yr#11 (signed byte*) yr#12 (signed byte*) yr#10 (signed byte*) yr#9 (signed byte*) yr#8 (signed byte*) yr#7 (signed byte*) yr#5 (signed byte*) yr#4 (signed byte*) yr#6 (signed byte*) yr#3
|
||||
Alias (signed byte*) zr#2 = (signed byte*) zr#8 (signed byte*) zr#9 (signed byte*) zr#7 (signed byte*) zr#6 (signed byte*) zr#5 (signed byte*) zr#4 (signed byte*) zr#3
|
||||
Alias (signed byte*) PERSP_Z#2 = (signed byte*) PERSP_Z#8 (signed byte*) PERSP_Z#9 (signed byte*) PERSP_Z#7 (signed byte*) PERSP_Z#6 (signed byte*) PERSP_Z#5 (signed byte*) PERSP_Z#4 (signed byte*) PERSP_Z#3
|
||||
Alias (word*) psp1#10 = (word*) psp1#12 (word*) psp1#13 (word*) psp1#11 (word*) psp1#9 (word*) psp1#7 (word*) psp1#6 (word*) psp1#4
|
||||
Alias (word*) psp2#10 = (word*) psp2#12 (word*) psp2#13 (word*) psp2#11 (word*) psp2#9 (word*) psp2#7 (word*) psp2#6 (word*) psp2#4
|
||||
Alias (byte*) print_line_cursor#23 = (byte*) print_line_cursor#39 (byte*) print_line_cursor#40 (byte*) print_line_cursor#38 (byte*) print_line_cursor#37 (byte*) print_line_cursor#36 (byte*) print_line_cursor#35 (byte*) print_line_cursor#34 (byte*) print_line_cursor#33 (byte*) print_line_cursor#32 (byte*) print_line_cursor#31 (byte*) print_line_cursor#28 (byte*) print_line_cursor#26
|
||||
Alias (byte*) print_char_cursor#19 = (byte*) print_char_cursor#50
|
||||
Alias (byte*) print_char_cursor#20 = (byte*) print_char_cursor#51
|
||||
@ -1165,8 +1234,8 @@ Alias (byte*) print_char_cursor#28 = (byte*) print_char_cursor#59
|
||||
Alias (byte*) print_char_cursor#29 = (byte*) print_char_cursor#60
|
||||
Alias (byte*) print_line_cursor#18 = (byte*) print_line_cursor#8 (byte*) print_line_cursor#19 (byte*) print_line_cursor#9
|
||||
Alias (byte*) print_char_cursor#30 = (byte*) print_char_cursor#61 (byte*) print_char_cursor#62 (byte*) print_char_cursor#31
|
||||
Alias (word*) psp1#0 = (word*) psp1#4 (word*) psp1#3
|
||||
Alias (word*) psp2#0 = (word*) psp2#4 (word*) psp2#3
|
||||
Alias (word*) psp1#0 = (word*) psp1#8 (word*) psp1#5
|
||||
Alias (word*) psp2#0 = (word*) psp2#8 (word*) psp2#5
|
||||
Alias (signed byte*) xr#0 = (signed byte*) xr#15 (signed byte*) xr#14
|
||||
Alias (signed byte*) yr#0 = (signed byte*) yr#17 (signed byte*) yr#16
|
||||
Alias (signed byte*) zr#0 = (signed byte*) zr#14 (signed byte*) zr#13
|
||||
@ -1195,6 +1264,7 @@ Redundant Phi (byte*) print_char_cursor#70 (byte*) print_line_cursor#0
|
||||
Redundant Phi (signed byte*) xr#11 (signed byte*) xr#0
|
||||
Redundant Phi (signed byte*) yr#13 (signed byte*) yr#0
|
||||
Redundant Phi (signed byte*) zr#10 (signed byte*) zr#0
|
||||
Redundant Phi (signed byte*) PERSP_Z#10 (signed byte*) PERSP_Z#0
|
||||
Redundant Phi (byte*) print_line_cursor#15 (byte*) print_line_cursor#14
|
||||
Redundant Phi (byte*) print_char_cursor#16 (byte*) print_line_cursor#14
|
||||
Redundant Phi (byte*) print_char_cursor#17 (byte*) print_char_cursor#30
|
||||
@ -1206,6 +1276,9 @@ Redundant Phi (signed byte) do_perspective::z#1 (signed byte) do_perspective::z#
|
||||
Redundant Phi (signed byte*) xr#1 (signed byte*) xr#11
|
||||
Redundant Phi (signed byte*) yr#1 (signed byte*) yr#13
|
||||
Redundant Phi (signed byte*) zr#2 (signed byte*) zr#10
|
||||
Redundant Phi (signed byte*) PERSP_Z#2 (signed byte*) PERSP_Z#10
|
||||
Redundant Phi (word*) psp1#10 (word*) psp1#1
|
||||
Redundant Phi (word*) psp2#10 (word*) psp2#1
|
||||
Redundant Phi (byte*) print_line_cursor#23 (byte*) print_line_cursor#15
|
||||
Redundant Phi (byte*) print_char_cursor#19 (byte*) print_char_cursor#2
|
||||
Redundant Phi (byte*) print_char_cursor#20 (byte*) print_char_cursor#39
|
||||
@ -1226,6 +1299,9 @@ Redundant Phi (signed byte) perspective::y#1 (signed byte) perspective::y#0
|
||||
Redundant Phi (signed byte*) yr#2 (signed byte*) yr#1
|
||||
Redundant Phi (signed byte) perspective::z#1 (signed byte) perspective::z#0
|
||||
Redundant Phi (signed byte*) zr#1 (signed byte*) zr#2
|
||||
Redundant Phi (signed byte*) PERSP_Z#1 (signed byte*) PERSP_Z#2
|
||||
Redundant Phi (word*) psp1#2 (word*) psp1#10
|
||||
Redundant Phi (word*) psp2#2 (word*) psp2#10
|
||||
Redundant Phi (byte*) print_line_cursor#10 (byte*) print_line_cursor#16
|
||||
Redundant Phi (byte*) print_char_cursor#32 (byte*) print_char_cursor#17
|
||||
Successful SSA optimization Pass2RedundantPhiElimination
|
||||
|
@ -1,3 +1,5 @@
|
||||
Resolved forward reference mulf_sqr1 to (byte*) mulf_sqr1
|
||||
Resolved forward reference mulf_sqr2 to (byte*) mulf_sqr2
|
||||
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
@ -122,6 +124,8 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
to:@21
|
||||
main: scope:[main] from @22
|
||||
(signed byte*) cp#12 ← phi( @22/(signed byte*) cp#13 )
|
||||
(byte*) mulf_sqr2#12 ← phi( @22/(byte*) mulf_sqr2#0 )
|
||||
(byte*) mulf_sqr1#12 ← phi( @22/(byte*) mulf_sqr1#0 )
|
||||
(signed byte*) bp#12 ← phi( @22/(signed byte*) bp#13 )
|
||||
(signed byte*) ap#12 ← phi( @22/(signed byte*) ap#13 )
|
||||
(byte*) print_screen#5 ← phi( @22/(byte*) print_screen#6 )
|
||||
@ -131,6 +135,8 @@ main: scope:[main] from @22
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main
|
||||
(signed byte*) cp#11 ← phi( main/(signed byte*) cp#12 )
|
||||
(byte*) mulf_sqr2#11 ← phi( main/(byte*) mulf_sqr2#12 )
|
||||
(byte*) mulf_sqr1#11 ← phi( main/(byte*) mulf_sqr1#12 )
|
||||
(signed byte*) bp#11 ← phi( main/(signed byte*) bp#12 )
|
||||
(signed byte*) ap#11 ← phi( main/(signed byte*) ap#12 )
|
||||
(byte*) print_char_cursor#9 ← phi( main/(byte*) print_char_cursor#6 )
|
||||
@ -146,6 +152,8 @@ main::@1: scope:[main] from main::@7 main::@8
|
||||
(byte*) print_char_cursor#31 ← phi( main::@7/(byte*) print_char_cursor#3 main::@8/(byte*) print_char_cursor#30 )
|
||||
(byte*) print_line_cursor#31 ← phi( main::@7/(byte*) print_line_cursor#3 main::@8/(byte*) print_line_cursor#30 )
|
||||
(signed byte*) cp#10 ← phi( main::@7/(signed byte*) cp#11 main::@8/(signed byte*) cp#9 )
|
||||
(byte*) mulf_sqr2#10 ← phi( main::@7/(byte*) mulf_sqr2#11 main::@8/(byte*) mulf_sqr2#9 )
|
||||
(byte*) mulf_sqr1#10 ← phi( main::@7/(byte*) mulf_sqr1#11 main::@8/(byte*) mulf_sqr1#9 )
|
||||
(signed byte*) bp#10 ← phi( main::@7/(signed byte*) bp#11 main::@8/(signed byte*) bp#9 )
|
||||
(signed byte*) ap#10 ← phi( main::@7/(signed byte*) ap#11 main::@8/(signed byte*) ap#9 )
|
||||
(byte*) main::at_line#7 ← phi( main::@7/(byte*) main::at_line#0 main::@8/(byte*) main::at_line#5 )
|
||||
@ -159,6 +167,8 @@ main::@8: scope:[main] from main::@1
|
||||
(byte*) print_char_cursor#30 ← phi( main::@1/(byte*) print_char_cursor#31 )
|
||||
(byte*) print_line_cursor#30 ← phi( main::@1/(byte*) print_line_cursor#31 )
|
||||
(signed byte*) cp#9 ← phi( main::@1/(signed byte*) cp#10 )
|
||||
(byte*) mulf_sqr2#9 ← phi( main::@1/(byte*) mulf_sqr2#10 )
|
||||
(byte*) mulf_sqr1#9 ← phi( main::@1/(byte*) mulf_sqr1#10 )
|
||||
(signed byte*) bp#9 ← phi( main::@1/(signed byte*) bp#10 )
|
||||
(signed byte*) ap#9 ← phi( main::@1/(signed byte*) ap#10 )
|
||||
(byte*) main::at_line#5 ← phi( main::@1/(byte*) main::at_line#7 )
|
||||
@ -173,6 +183,8 @@ main::@4: scope:[main] from main::@8
|
||||
(byte*) print_char_cursor#29 ← phi( main::@8/(byte*) print_char_cursor#30 )
|
||||
(byte*) print_line_cursor#29 ← phi( main::@8/(byte*) print_line_cursor#30 )
|
||||
(signed byte*) cp#7 ← phi( main::@8/(signed byte*) cp#9 )
|
||||
(byte*) mulf_sqr2#7 ← phi( main::@8/(byte*) mulf_sqr2#9 )
|
||||
(byte*) mulf_sqr1#7 ← phi( main::@8/(byte*) mulf_sqr1#9 )
|
||||
(signed byte*) bp#7 ← phi( main::@8/(signed byte*) bp#9 )
|
||||
(signed byte*) ap#7 ← phi( main::@8/(signed byte*) ap#9 )
|
||||
(byte*) main::at_line#3 ← phi( main::@8/(byte*) main::at_line#5 )
|
||||
@ -182,6 +194,8 @@ main::@2: scope:[main] from main::@4 main::@5
|
||||
(byte*) print_char_cursor#28 ← phi( main::@4/(byte*) print_char_cursor#29 main::@5/(byte*) print_char_cursor#15 )
|
||||
(byte*) print_line_cursor#28 ← phi( main::@4/(byte*) print_line_cursor#29 main::@5/(byte*) print_line_cursor#15 )
|
||||
(signed byte*) cp#5 ← phi( main::@4/(signed byte*) cp#7 main::@5/(signed byte*) cp#8 )
|
||||
(byte*) mulf_sqr2#5 ← phi( main::@4/(byte*) mulf_sqr2#7 main::@5/(byte*) mulf_sqr2#8 )
|
||||
(byte*) mulf_sqr1#5 ← phi( main::@4/(byte*) mulf_sqr1#7 main::@5/(byte*) mulf_sqr1#8 )
|
||||
(signed byte*) bp#5 ← phi( main::@4/(signed byte*) bp#7 main::@5/(signed byte*) bp#8 )
|
||||
(signed byte*) ap#5 ← phi( main::@4/(signed byte*) ap#7 main::@5/(signed byte*) ap#8 )
|
||||
(byte) main::i#2 ← phi( main::@4/(byte) main::i#0 main::@5/(byte) main::i#1 )
|
||||
@ -197,6 +211,8 @@ main::@9: scope:[main] from main::@2
|
||||
(byte*) print_line_cursor#27 ← phi( main::@2/(byte*) print_line_cursor#28 )
|
||||
(byte*) main::at_line#10 ← phi( main::@2/(byte*) main::at_line#1 )
|
||||
(signed byte*) cp#4 ← phi( main::@2/(signed byte*) cp#5 )
|
||||
(byte*) mulf_sqr2#4 ← phi( main::@2/(byte*) mulf_sqr2#5 )
|
||||
(byte*) mulf_sqr1#4 ← phi( main::@2/(byte*) mulf_sqr1#5 )
|
||||
(signed byte*) bp#4 ← phi( main::@2/(signed byte*) bp#5 )
|
||||
(signed byte*) ap#4 ← phi( main::@2/(signed byte*) ap#5 )
|
||||
(byte) main::i#6 ← phi( main::@2/(byte) main::i#2 )
|
||||
@ -208,6 +224,8 @@ main::@3: scope:[main] from main::@11 main::@9
|
||||
(byte*) print_line_cursor#26 ← phi( main::@11/(byte*) print_line_cursor#19 main::@9/(byte*) print_line_cursor#27 )
|
||||
(byte*) main::at_line#9 ← phi( main::@11/(byte*) main::at_line#6 main::@9/(byte*) main::at_line#10 )
|
||||
(signed byte*) cp#2 ← phi( main::@11/(signed byte*) cp#3 main::@9/(signed byte*) cp#4 )
|
||||
(byte*) mulf_sqr2#2 ← phi( main::@11/(byte*) mulf_sqr2#3 main::@9/(byte*) mulf_sqr2#4 )
|
||||
(byte*) mulf_sqr1#2 ← phi( main::@11/(byte*) mulf_sqr1#3 main::@9/(byte*) mulf_sqr1#4 )
|
||||
(signed byte*) bp#2 ← phi( main::@11/(signed byte*) bp#3 main::@9/(signed byte*) bp#4 )
|
||||
(signed byte*) ap#2 ← phi( main::@11/(signed byte*) ap#3 main::@9/(signed byte*) ap#4 )
|
||||
(byte) main::j#2 ← phi( main::@11/(byte) main::j#1 main::@9/(byte) main::j#0 )
|
||||
@ -224,6 +242,8 @@ main::@10: scope:[main] from main::@3
|
||||
(byte*) print_line_cursor#22 ← phi( main::@3/(byte*) print_line_cursor#26 )
|
||||
(byte*) main::at_line#8 ← phi( main::@3/(byte*) main::at_line#9 )
|
||||
(signed byte*) cp#6 ← phi( main::@3/(signed byte*) cp#2 )
|
||||
(byte*) mulf_sqr2#6 ← phi( main::@3/(byte*) mulf_sqr2#2 )
|
||||
(byte*) mulf_sqr1#6 ← phi( main::@3/(byte*) mulf_sqr1#2 )
|
||||
(signed byte*) bp#6 ← phi( main::@3/(signed byte*) bp#2 )
|
||||
(signed byte*) ap#6 ← phi( main::@3/(signed byte*) ap#2 )
|
||||
(byte) main::i#7 ← phi( main::@3/(byte) main::i#3 )
|
||||
@ -241,6 +261,8 @@ main::@11: scope:[main] from main::@10
|
||||
(byte*) print_line_cursor#19 ← phi( main::@10/(byte*) print_line_cursor#22 )
|
||||
(byte*) main::at_line#6 ← phi( main::@10/(byte*) main::at_line#8 )
|
||||
(signed byte*) cp#3 ← phi( main::@10/(signed byte*) cp#6 )
|
||||
(byte*) mulf_sqr2#3 ← phi( main::@10/(byte*) mulf_sqr2#6 )
|
||||
(byte*) mulf_sqr1#3 ← phi( main::@10/(byte*) mulf_sqr1#6 )
|
||||
(signed byte*) bp#3 ← phi( main::@10/(signed byte*) bp#6 )
|
||||
(signed byte*) ap#3 ← phi( main::@10/(signed byte*) ap#6 )
|
||||
(byte) main::i#5 ← phi( main::@10/(byte) main::i#7 )
|
||||
@ -252,6 +274,8 @@ main::@11: scope:[main] from main::@10
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@11
|
||||
(signed byte*) cp#8 ← phi( main::@11/(signed byte*) cp#3 )
|
||||
(byte*) mulf_sqr2#8 ← phi( main::@11/(byte*) mulf_sqr2#3 )
|
||||
(byte*) mulf_sqr1#8 ← phi( main::@11/(byte*) mulf_sqr1#3 )
|
||||
(signed byte*) bp#8 ← phi( main::@11/(signed byte*) bp#3 )
|
||||
(signed byte*) ap#8 ← phi( main::@11/(signed byte*) ap#3 )
|
||||
(byte*) print_char_cursor#15 ← phi( main::@11/(byte*) print_char_cursor#19 )
|
||||
@ -334,6 +358,8 @@ init_screen::@return: scope:[init_screen] from init_screen::@2
|
||||
to:@22
|
||||
fmul8: scope:[fmul8] from main::@3
|
||||
(signed byte*) cp#1 ← phi( main::@3/(signed byte*) cp#2 )
|
||||
(byte*) mulf_sqr2#1 ← phi( main::@3/(byte*) mulf_sqr2#2 )
|
||||
(byte*) mulf_sqr1#1 ← phi( main::@3/(byte*) mulf_sqr1#2 )
|
||||
(signed byte*) bp#1 ← phi( main::@3/(signed byte*) bp#2 )
|
||||
(signed byte) fmul8::b#1 ← phi( main::@3/(signed byte) fmul8::b#0 )
|
||||
(signed byte*) ap#1 ← phi( main::@3/(signed byte*) ap#2 )
|
||||
@ -542,8 +568,32 @@ SYMBOL TABLE SSA
|
||||
(signed byte) main::r#0
|
||||
(byte*) mulf_sqr1
|
||||
(byte*) mulf_sqr1#0
|
||||
(byte*) mulf_sqr1#1
|
||||
(byte*) mulf_sqr1#10
|
||||
(byte*) mulf_sqr1#11
|
||||
(byte*) mulf_sqr1#12
|
||||
(byte*) mulf_sqr1#2
|
||||
(byte*) mulf_sqr1#3
|
||||
(byte*) mulf_sqr1#4
|
||||
(byte*) mulf_sqr1#5
|
||||
(byte*) mulf_sqr1#6
|
||||
(byte*) mulf_sqr1#7
|
||||
(byte*) mulf_sqr1#8
|
||||
(byte*) mulf_sqr1#9
|
||||
(byte*) mulf_sqr2
|
||||
(byte*) mulf_sqr2#0
|
||||
(byte*) mulf_sqr2#1
|
||||
(byte*) mulf_sqr2#10
|
||||
(byte*) mulf_sqr2#11
|
||||
(byte*) mulf_sqr2#12
|
||||
(byte*) mulf_sqr2#2
|
||||
(byte*) mulf_sqr2#3
|
||||
(byte*) mulf_sqr2#4
|
||||
(byte*) mulf_sqr2#5
|
||||
(byte*) mulf_sqr2#6
|
||||
(byte*) mulf_sqr2#7
|
||||
(byte*) mulf_sqr2#8
|
||||
(byte*) mulf_sqr2#9
|
||||
(void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at)
|
||||
(byte~) print_byte_at::$0
|
||||
(byte~) print_byte_at::$2
|
||||
@ -713,6 +763,8 @@ Alias (byte*) print_char_at::at#3 = (byte*~) print_byte_at::$3
|
||||
Alias (byte*) print_line_cursor#1 = (byte*) print_screen#3 (byte*) print_screen#2 (byte*) print_char_cursor#1 (byte*) print_line_cursor#8 (byte*) print_char_cursor#8 (byte*) print_line_cursor#2 (byte*) print_char_cursor#2
|
||||
Alias (signed byte*) ap#11 = (signed byte*) ap#12
|
||||
Alias (signed byte*) bp#11 = (signed byte*) bp#12
|
||||
Alias (byte*) mulf_sqr1#11 = (byte*) mulf_sqr1#12
|
||||
Alias (byte*) mulf_sqr2#11 = (byte*) mulf_sqr2#12
|
||||
Alias (signed byte*) cp#11 = (signed byte*) cp#12
|
||||
Alias (byte*) print_line_cursor#3 = (byte*) print_line_cursor#9
|
||||
Alias (byte*) print_char_cursor#3 = (byte*) print_char_cursor#9
|
||||
@ -722,6 +774,8 @@ Alias (byte) main::k#2 = (byte) main::k#3
|
||||
Alias (byte*) main::at_line#3 = (byte*) main::at_line#5 (byte*) main::at_line#7
|
||||
Alias (signed byte*) ap#10 = (signed byte*) ap#9 (signed byte*) ap#7
|
||||
Alias (signed byte*) bp#10 = (signed byte*) bp#9 (signed byte*) bp#7
|
||||
Alias (byte*) mulf_sqr1#10 = (byte*) mulf_sqr1#9 (byte*) mulf_sqr1#7
|
||||
Alias (byte*) mulf_sqr2#10 = (byte*) mulf_sqr2#9 (byte*) mulf_sqr2#7
|
||||
Alias (signed byte*) cp#10 = (signed byte*) cp#9 (signed byte*) cp#7
|
||||
Alias (byte*) print_line_cursor#29 = (byte*) print_line_cursor#30 (byte*) print_line_cursor#31
|
||||
Alias (byte*) print_char_cursor#29 = (byte*) print_char_cursor#30 (byte*) print_char_cursor#31
|
||||
@ -729,6 +783,8 @@ Alias (byte*) main::at#2 = (byte*) main::at_line#1 (byte*) main::at#9 (byte*) ma
|
||||
Alias (byte) main::i#2 = (byte) main::i#6
|
||||
Alias (signed byte*) ap#4 = (signed byte*) ap#5
|
||||
Alias (signed byte*) bp#4 = (signed byte*) bp#5
|
||||
Alias (byte*) mulf_sqr1#4 = (byte*) mulf_sqr1#5
|
||||
Alias (byte*) mulf_sqr2#4 = (byte*) mulf_sqr2#5
|
||||
Alias (signed byte*) cp#4 = (signed byte*) cp#5
|
||||
Alias (byte*) print_line_cursor#27 = (byte*) print_line_cursor#28
|
||||
Alias (byte*) print_char_cursor#27 = (byte*) print_char_cursor#28
|
||||
@ -738,6 +794,8 @@ Alias (byte) main::j#2 = (byte) main::j#4 (byte) main::j#3
|
||||
Alias (byte) main::i#3 = (byte) main::i#7 (byte) main::i#5 (byte) main::i#4
|
||||
Alias (signed byte*) ap#2 = (signed byte*) ap#6 (signed byte*) ap#3 (signed byte*) ap#8
|
||||
Alias (signed byte*) bp#2 = (signed byte*) bp#6 (signed byte*) bp#3 (signed byte*) bp#8
|
||||
Alias (byte*) mulf_sqr1#2 = (byte*) mulf_sqr1#6 (byte*) mulf_sqr1#3 (byte*) mulf_sqr1#8
|
||||
Alias (byte*) mulf_sqr2#2 = (byte*) mulf_sqr2#6 (byte*) mulf_sqr2#3 (byte*) mulf_sqr2#8
|
||||
Alias (signed byte*) cp#2 = (signed byte*) cp#6 (signed byte*) cp#3 (signed byte*) cp#8
|
||||
Alias (byte*) main::at_line#4 = (byte*) main::at_line#8 (byte*) main::at_line#9 (byte*) main::at_line#6
|
||||
Alias (byte*) print_line_cursor#10 = (byte*) print_line_cursor#22 (byte*) print_line_cursor#26 (byte*) print_line_cursor#19 (byte*) print_line_cursor#15 (byte*) print_line_cursor#4
|
||||
@ -764,12 +822,16 @@ Self Phi Eliminated (byte*) print_line_cursor#1
|
||||
Self Phi Eliminated (byte*) main::at_line#3
|
||||
Self Phi Eliminated (signed byte*) ap#10
|
||||
Self Phi Eliminated (signed byte*) bp#10
|
||||
Self Phi Eliminated (byte*) mulf_sqr1#10
|
||||
Self Phi Eliminated (byte*) mulf_sqr2#10
|
||||
Self Phi Eliminated (signed byte*) cp#10
|
||||
Self Phi Eliminated (byte*) print_line_cursor#29
|
||||
Self Phi Eliminated (byte*) print_char_cursor#29
|
||||
Self Phi Eliminated (byte) main::i#3
|
||||
Self Phi Eliminated (signed byte*) ap#2
|
||||
Self Phi Eliminated (signed byte*) bp#2
|
||||
Self Phi Eliminated (byte*) mulf_sqr1#2
|
||||
Self Phi Eliminated (byte*) mulf_sqr2#2
|
||||
Self Phi Eliminated (signed byte*) cp#2
|
||||
Self Phi Eliminated (byte*) main::at_line#4
|
||||
Self Phi Eliminated (byte*) print_line_cursor#10
|
||||
@ -791,18 +853,24 @@ Redundant Phi (byte*) print_char_cursor#14 (byte*) print_line_cursor#0
|
||||
Redundant Phi (byte*) print_screen#5 (byte*) print_line_cursor#0
|
||||
Redundant Phi (signed byte*) ap#11 (signed byte*) ap#0
|
||||
Redundant Phi (signed byte*) bp#11 (signed byte*) bp#0
|
||||
Redundant Phi (byte*) mulf_sqr1#11 (byte*) mulf_sqr1#0
|
||||
Redundant Phi (byte*) mulf_sqr2#11 (byte*) mulf_sqr2#0
|
||||
Redundant Phi (signed byte*) cp#11 (signed byte*) cp#0
|
||||
Redundant Phi (byte*) print_line_cursor#3 (byte*) print_line_cursor#12
|
||||
Redundant Phi (byte*) print_char_cursor#3 (byte*) print_char_cursor#12
|
||||
Redundant Phi (byte*) main::at_line#3 (byte*) main::at_line#0
|
||||
Redundant Phi (signed byte*) ap#10 (signed byte*) ap#11
|
||||
Redundant Phi (signed byte*) bp#10 (signed byte*) bp#11
|
||||
Redundant Phi (byte*) mulf_sqr1#10 (byte*) mulf_sqr1#11
|
||||
Redundant Phi (byte*) mulf_sqr2#10 (byte*) mulf_sqr2#11
|
||||
Redundant Phi (signed byte*) cp#10 (signed byte*) cp#11
|
||||
Redundant Phi (byte*) print_line_cursor#29 (byte*) print_line_cursor#3
|
||||
Redundant Phi (byte*) print_char_cursor#29 (byte*) print_char_cursor#3
|
||||
Redundant Phi (byte) main::i#3 (byte) main::i#2
|
||||
Redundant Phi (signed byte*) ap#2 (signed byte*) ap#4
|
||||
Redundant Phi (signed byte*) bp#2 (signed byte*) bp#4
|
||||
Redundant Phi (byte*) mulf_sqr1#2 (byte*) mulf_sqr1#4
|
||||
Redundant Phi (byte*) mulf_sqr2#2 (byte*) mulf_sqr2#4
|
||||
Redundant Phi (signed byte*) cp#2 (signed byte*) cp#4
|
||||
Redundant Phi (byte*) main::at_line#4 (byte*) main::at#2
|
||||
Redundant Phi (byte*) print_line_cursor#10 (byte*) print_line_cursor#27
|
||||
@ -823,6 +891,8 @@ Redundant Phi (signed byte) fmul8::a#1 (signed byte) fmul8::a#0
|
||||
Redundant Phi (signed byte*) ap#1 (signed byte*) ap#2
|
||||
Redundant Phi (signed byte) fmul8::b#1 (signed byte) fmul8::b#0
|
||||
Redundant Phi (signed byte*) bp#1 (signed byte*) bp#2
|
||||
Redundant Phi (byte*) mulf_sqr1#1 (byte*) mulf_sqr1#2
|
||||
Redundant Phi (byte*) mulf_sqr2#1 (byte*) mulf_sqr2#2
|
||||
Redundant Phi (signed byte*) cp#1 (signed byte*) cp#2
|
||||
Redundant Phi (byte*) print_line_cursor#13 (byte*) print_line_cursor#10
|
||||
Redundant Phi (byte*) print_char_cursor#13 (byte*) print_char_cursor#10
|
||||
@ -889,10 +959,14 @@ Culled Empty Block (label) @23
|
||||
Successful SSA optimization Pass2CullEmptyBlocks
|
||||
Self Phi Eliminated (signed byte*) ap#4
|
||||
Self Phi Eliminated (signed byte*) bp#4
|
||||
Self Phi Eliminated (byte*) mulf_sqr1#4
|
||||
Self Phi Eliminated (byte*) mulf_sqr2#4
|
||||
Self Phi Eliminated (signed byte*) cp#4
|
||||
Successful SSA optimization Pass2SelfPhiElimination
|
||||
Redundant Phi (signed byte*) ap#4 (const signed byte*) ap#0
|
||||
Redundant Phi (signed byte*) bp#4 (const signed byte*) bp#0
|
||||
Redundant Phi (byte*) mulf_sqr1#4 (const byte*) mulf_sqr1#0
|
||||
Redundant Phi (byte*) mulf_sqr2#4 (const byte*) mulf_sqr2#0
|
||||
Redundant Phi (signed byte*) cp#4 (const signed byte*) cp#0
|
||||
Successful SSA optimization Pass2RedundantPhiElimination
|
||||
Inlining constant with var siblings (const byte) print_char_at::ch#0
|
||||
|
16
src/test/ref/inline-asm-ref-scoped.asm
Normal file
16
src/test/ref/inline-asm-ref-scoped.asm
Normal file
@ -0,0 +1,16 @@
|
||||
// Tests that references to labels in other scopes is possible from inline ASM
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
main: {
|
||||
lda #'c'
|
||||
sta sub.ll+1
|
||||
jsr sub
|
||||
rts
|
||||
}
|
||||
sub: {
|
||||
ll:
|
||||
lda #0
|
||||
sta $400
|
||||
rts
|
||||
}
|
22
src/test/ref/inline-asm-ref-scoped.cfg
Normal file
22
src/test/ref/inline-asm-ref-scoped.cfg
Normal file
@ -0,0 +1,22 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi()
|
||||
to:@2
|
||||
@2: scope:[] from @begin
|
||||
[1] phi()
|
||||
[2] call main
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
[3] phi()
|
||||
main: scope:[main] from @2
|
||||
asm { lda#'c' stasub.ll+1 }
|
||||
[5] call sub
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main
|
||||
[6] return
|
||||
to:@return
|
||||
sub: scope:[sub] from main
|
||||
asm { ll: lda#0 sta$400 }
|
||||
to:sub::@return
|
||||
sub::@return: scope:[sub] from sub
|
||||
[8] return
|
||||
to:@return
|
263
src/test/ref/inline-asm-ref-scoped.log
Normal file
263
src/test/ref/inline-asm-ref-scoped.log
Normal file
@ -0,0 +1,263 @@
|
||||
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
asm { lda#'c' stasub.ll+1 }
|
||||
call sub
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@1
|
||||
return
|
||||
to:@return
|
||||
sub: scope:[sub] from main
|
||||
asm { ll: lda#0 sta$400 }
|
||||
to:sub::@return
|
||||
sub::@return: scope:[sub] from sub
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @begin
|
||||
call main
|
||||
to:@3
|
||||
@3: scope:[] from @2
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @2
|
||||
(label) @3
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
(void()) sub()
|
||||
(label) sub::@return
|
||||
|
||||
Culled Empty Block (label) main::@1
|
||||
Culled Empty Block (label) @3
|
||||
Successful SSA optimization Pass2CullEmptyBlocks
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @2
|
||||
Adding NOP phi() at start of @end
|
||||
CALL GRAPH
|
||||
Calls in [] to main:2
|
||||
Calls in [main] to sub:5
|
||||
|
||||
Created 0 initial phi equivalence classes
|
||||
Coalesced down to 0 phi equivalence classes
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @2
|
||||
Adding NOP phi() at start of @end
|
||||
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi()
|
||||
to:@2
|
||||
@2: scope:[] from @begin
|
||||
[1] phi()
|
||||
[2] call main
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
[3] phi()
|
||||
main: scope:[main] from @2
|
||||
asm { lda#'c' stasub.ll+1 }
|
||||
[5] call sub
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main
|
||||
[6] return
|
||||
to:@return
|
||||
sub: scope:[sub] from main
|
||||
asm { ll: lda#0 sta$400 }
|
||||
to:sub::@return
|
||||
sub::@return: scope:[sub] from sub
|
||||
[8] return
|
||||
to:@return
|
||||
|
||||
|
||||
VARIABLE REGISTER WEIGHTS
|
||||
(void()) main()
|
||||
(void()) sub()
|
||||
|
||||
Initial phi equivalence classes
|
||||
Complete equivalence classes
|
||||
|
||||
INITIAL ASM
|
||||
//SEG0 File Comments
|
||||
// Tests that references to labels in other scopes is possible from inline ASM
|
||||
//SEG1 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(bbegin)
|
||||
.pc = $80d "Program"
|
||||
//SEG2 Global Constants & labels
|
||||
//SEG3 @begin
|
||||
bbegin:
|
||||
//SEG4 [1] phi from @begin to @2 [phi:@begin->@2]
|
||||
b2_from_bbegin:
|
||||
jmp b2
|
||||
//SEG5 @2
|
||||
b2:
|
||||
//SEG6 [2] call main
|
||||
jsr main
|
||||
//SEG7 [3] phi from @2 to @end [phi:@2->@end]
|
||||
bend_from_b2:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
//SEG9 main
|
||||
main: {
|
||||
//SEG10 asm { lda#'c' stasub.ll+1 }
|
||||
lda #'c'
|
||||
sta sub.ll+1
|
||||
//SEG11 [5] call sub
|
||||
jsr sub
|
||||
jmp breturn
|
||||
//SEG12 main::@return
|
||||
breturn:
|
||||
//SEG13 [6] return
|
||||
rts
|
||||
}
|
||||
//SEG14 sub
|
||||
sub: {
|
||||
//SEG15 asm { ll: lda#0 sta$400 }
|
||||
ll:
|
||||
lda #0
|
||||
sta $400
|
||||
jmp breturn
|
||||
//SEG16 sub::@return
|
||||
breturn:
|
||||
//SEG17 [8] return
|
||||
rts
|
||||
}
|
||||
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement asm { lda#'c' stasub.ll+1 } always clobbers reg byte a
|
||||
Statement asm { ll: lda#0 sta$400 } always clobbers reg byte a
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [main]
|
||||
Uplift Scope [sub]
|
||||
Uplift Scope []
|
||||
|
||||
Uplifting [main] best 48 combination
|
||||
Uplifting [sub] best 48 combination
|
||||
Uplifting [] best 48 combination
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
//SEG0 File Comments
|
||||
// Tests that references to labels in other scopes is possible from inline ASM
|
||||
//SEG1 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(bbegin)
|
||||
.pc = $80d "Program"
|
||||
//SEG2 Global Constants & labels
|
||||
//SEG3 @begin
|
||||
bbegin:
|
||||
//SEG4 [1] phi from @begin to @2 [phi:@begin->@2]
|
||||
b2_from_bbegin:
|
||||
jmp b2
|
||||
//SEG5 @2
|
||||
b2:
|
||||
//SEG6 [2] call main
|
||||
jsr main
|
||||
//SEG7 [3] phi from @2 to @end [phi:@2->@end]
|
||||
bend_from_b2:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
//SEG9 main
|
||||
main: {
|
||||
//SEG10 asm { lda#'c' stasub.ll+1 }
|
||||
lda #'c'
|
||||
sta sub.ll+1
|
||||
//SEG11 [5] call sub
|
||||
jsr sub
|
||||
jmp breturn
|
||||
//SEG12 main::@return
|
||||
breturn:
|
||||
//SEG13 [6] return
|
||||
rts
|
||||
}
|
||||
//SEG14 sub
|
||||
sub: {
|
||||
//SEG15 asm { ll: lda#0 sta$400 }
|
||||
ll:
|
||||
lda #0
|
||||
sta $400
|
||||
jmp breturn
|
||||
//SEG16 sub::@return
|
||||
breturn:
|
||||
//SEG17 [8] return
|
||||
rts
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b2
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp breturn
|
||||
Removing instruction jmp breturn
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
Removing instruction b2_from_bbegin:
|
||||
Removing instruction b2:
|
||||
Removing instruction bend_from_b2:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction bend:
|
||||
Removing instruction breturn:
|
||||
Removing instruction breturn:
|
||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||
Updating BasicUpstart to call main directly
|
||||
Removing instruction jsr main
|
||||
Succesful ASM optimization Pass5SkipBegin
|
||||
Removing instruction bbegin:
|
||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @2
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(label) main::@return
|
||||
(void()) sub()
|
||||
(label) sub::@return
|
||||
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 30
|
||||
|
||||
//SEG0 File Comments
|
||||
// Tests that references to labels in other scopes is possible from inline ASM
|
||||
//SEG1 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
//SEG2 Global Constants & labels
|
||||
//SEG3 @begin
|
||||
//SEG4 [1] phi from @begin to @2 [phi:@begin->@2]
|
||||
//SEG5 @2
|
||||
//SEG6 [2] call main
|
||||
//SEG7 [3] phi from @2 to @end [phi:@2->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
//SEG10 asm { lda#'c' stasub.ll+1 }
|
||||
lda #'c'
|
||||
sta sub.ll+1
|
||||
//SEG11 [5] call sub
|
||||
jsr sub
|
||||
//SEG12 main::@return
|
||||
//SEG13 [6] return
|
||||
rts
|
||||
}
|
||||
//SEG14 sub
|
||||
sub: {
|
||||
//SEG15 asm { ll: lda#0 sta$400 }
|
||||
ll:
|
||||
lda #0
|
||||
sta $400
|
||||
//SEG16 sub::@return
|
||||
//SEG17 [8] return
|
||||
rts
|
||||
}
|
||||
|
8
src/test/ref/inline-asm-ref-scoped.sym
Normal file
8
src/test/ref/inline-asm-ref-scoped.sym
Normal file
@ -0,0 +1,8 @@
|
||||
(label) @2
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(label) main::@return
|
||||
(void()) sub()
|
||||
(label) sub::@return
|
||||
|
Loading…
Reference in New Issue
Block a user