mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-01-12 11:31:11 +00:00
Implemented type promotion & type checking of all assignments.
This commit is contained in:
parent
0d622f978c
commit
cd06dd2016
@ -81,6 +81,8 @@ public class Compiler {
|
||||
|
||||
program.setGraph(controlFlowGraph);
|
||||
|
||||
new Pass1AddTypePromotions(program).addPromotions();
|
||||
|
||||
log.append("INITIAL CONTROL FLOW GRAPH");
|
||||
log.append(program.getGraph().toString(program));
|
||||
|
||||
@ -122,6 +124,7 @@ public class Compiler {
|
||||
|
||||
public void pass2AssertSSA(Program program) {
|
||||
List<Pass2SsaAssertion> assertions = new ArrayList<>();
|
||||
assertions.add(new Pass2AssertTypeMatch(program));
|
||||
assertions.add(new Pass2AssertSymbols(program));
|
||||
assertions.add(new Pass2AssertBlocks(program));
|
||||
assertions.add(new Pass2AssertNoCallParameters(program));
|
||||
|
@ -151,7 +151,7 @@ public class AsmFragment {
|
||||
} else {
|
||||
return "$ff & " + getAsmConstant(program, operand, Operator.BOOL_AND.getPrecedence(), codeScope);
|
||||
}
|
||||
} else if (Operator.CAST_WORD.equals(operator) || Operator.CAST_SWORD.equals(operator)) {
|
||||
} else if (Operator.CAST_WORD.equals(operator) || Operator.CAST_SWORD.equals(operator) || Operator.CAST_PTRBY.equals(operator)) {
|
||||
SymbolType operandType = SymbolTypeInference.inferType(program.getScope(), operand);
|
||||
if(SymbolType.isWord(operandType) || SymbolType.isSWord(operandType)) {
|
||||
// No cast needed
|
||||
|
@ -0,0 +1,4 @@
|
||||
lda #<{cowo1}
|
||||
sta {zpwo1}
|
||||
lda #>{cowo1}
|
||||
sta {zpwo1}+1
|
@ -101,6 +101,8 @@ public class Operator {
|
||||
return CAST_WORD;
|
||||
} else if (SymbolType.SWORD.equals(castType)) {
|
||||
return CAST_SWORD;
|
||||
} else if (castType instanceof SymbolTypePointer && SymbolType.BYTE.equals(((SymbolTypePointer) castType).getElementType())) {
|
||||
return CAST_PTRBY;
|
||||
} else {
|
||||
throw new RuntimeException("Unknown cast type " + castType);
|
||||
|
||||
@ -123,10 +125,11 @@ public class Operator {
|
||||
public static final Operator DEREF_IDX = new Operator("*idx", "_derefidx_", Type.BINARY, 2);
|
||||
public static final Operator SET_LOWBYTE = new Operator("lo=", "_setlo_", Type.BINARY, 2);
|
||||
public static final Operator SET_HIBYTE = new Operator("hi=", "_sethi_", Type.BINARY, 2);
|
||||
public static final Operator CAST_BYTE = new Operator("_byte_", "_byte_", Type.UNARY, 2);
|
||||
public static final Operator CAST_SBYTE = new Operator("_sbyte_", "_sbyte_", Type.UNARY, 2);
|
||||
public static final Operator CAST_WORD = new Operator("_word_", "_word_", Type.UNARY, 2);
|
||||
public static final Operator CAST_SWORD = new Operator("_sword_", "_sword_", Type.UNARY, 2);
|
||||
public static final Operator CAST_BYTE = new Operator("((byte))", "_byte_", Type.UNARY, 2);
|
||||
public static final Operator CAST_SBYTE = new Operator("((signed byte))", "_sbyte_", Type.UNARY, 2);
|
||||
public static final Operator CAST_WORD = new Operator("((word))", "_word_", Type.UNARY, 2);
|
||||
public static final Operator CAST_SWORD = new Operator("((signed word))", "_sword_", Type.UNARY, 2);
|
||||
public static final Operator CAST_PTRBY = new Operator("((byte*))", "_ptrby_", Type.UNARY, 2);
|
||||
public static final Operator MULTIPLY = new Operator("*", "_mul_", Type.BINARY, 3);
|
||||
public static final Operator DIVIDE = new Operator("/", "_div_", Type.BINARY, 3);
|
||||
public static final Operator PLUS = new Operator("+", "_plus_", Type.BINARY, 4);
|
||||
|
@ -3,6 +3,6 @@ package dk.camelot64.kickc.model;
|
||||
/** A dereferenced pointer */
|
||||
public interface PointerDereference extends LValue {
|
||||
|
||||
Value getPointer();
|
||||
RValue getPointer();
|
||||
|
||||
}
|
||||
|
@ -15,6 +15,17 @@ public class SymbolTypeInference {
|
||||
* @return The type of the resulting value
|
||||
*/
|
||||
public static SymbolType inferType(ProgramScope programScope, Operator operator, RValue rValue) {
|
||||
if (operator.equals(Operator.CAST_BYTE)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if (operator.equals(Operator.CAST_SBYTE)) {
|
||||
return SymbolType.SBYTE;
|
||||
} else if (operator.equals(Operator.CAST_WORD)) {
|
||||
return SymbolType.WORD;
|
||||
} else if (operator.equals(Operator.CAST_SWORD)) {
|
||||
return SymbolType.SWORD;
|
||||
} else if (operator.equals(Operator.CAST_PTRBY)) {
|
||||
return new SymbolTypePointer(SymbolType.BYTE);
|
||||
}
|
||||
if (rValue instanceof ConstantValue) {
|
||||
ConstantValue value = ConstantValueCalculator.calcValue(programScope, operator, (ConstantValue) rValue);
|
||||
if (value != null) {
|
||||
@ -72,13 +83,16 @@ public class SymbolTypeInference {
|
||||
|
||||
public static SymbolType inferType(SymbolType type1, Operator operator, SymbolType type2) {
|
||||
|
||||
if (operator.equals(Operator.PLUS)) {
|
||||
if (Operator.PLUS.equals(operator)) {
|
||||
return inferPlus(type1, type2);
|
||||
} else if (operator.equals(Operator.MINUS)) {
|
||||
} else if (Operator.MINUS.equals(operator)) {
|
||||
return inferMinus(type1, type2);
|
||||
} else if(Operator.SET_HIBYTE.equals(operator)) {
|
||||
return type1;
|
||||
} else if(Operator.SET_LOWBYTE.equals(operator)) {
|
||||
return type1;
|
||||
}
|
||||
|
||||
|
||||
String op = operator.getOperator();
|
||||
switch (op) {
|
||||
case "==":
|
||||
@ -243,20 +257,20 @@ public class SymbolTypeInference {
|
||||
}
|
||||
|
||||
|
||||
public static SymbolType inferType(ProgramScope programScope, RValue rValue) {
|
||||
public static SymbolType inferType(ProgramScope symbols, RValue rValue) {
|
||||
SymbolType type = null;
|
||||
if (rValue instanceof VariableRef) {
|
||||
Variable variable = programScope.getVariable((VariableRef) rValue);
|
||||
Variable variable = symbols.getVariable((VariableRef) rValue);
|
||||
type = variable.getType();
|
||||
} else if (rValue instanceof ConstantRef) {
|
||||
ConstantVar constVar = programScope.getConstant((ConstantRef) rValue);
|
||||
ConstantVar constVar = symbols.getConstant((ConstantRef) rValue);
|
||||
type = constVar.getType();
|
||||
} else if (rValue instanceof Symbol) {
|
||||
Symbol rSymbol = (Symbol) rValue;
|
||||
type = rSymbol.getType();
|
||||
} else if (rValue instanceof ConstantInteger) {
|
||||
ConstantInteger rInt = (ConstantInteger) rValue;
|
||||
return rInt.getType(programScope);
|
||||
return rInt.getType(symbols);
|
||||
} else if (rValue instanceof ConstantString) {
|
||||
type = SymbolType.STRING;
|
||||
} else if (rValue instanceof ConstantChar) {
|
||||
@ -265,12 +279,14 @@ public class SymbolTypeInference {
|
||||
type = SymbolType.BOOLEAN;
|
||||
} else if (rValue instanceof ConstantUnary) {
|
||||
ConstantUnary constUnary = (ConstantUnary) rValue;
|
||||
return inferType(programScope, constUnary.getOperator(), constUnary.getOperand());
|
||||
return inferType(symbols, constUnary.getOperator(), constUnary.getOperand());
|
||||
} else if (rValue instanceof ConstantBinary) {
|
||||
ConstantBinary constBin = (ConstantBinary) rValue;
|
||||
return inferType(programScope, constBin.getLeft(), constBin.getOperator(), constBin.getRight());
|
||||
} else if (rValue instanceof PointerDereferenceSimple) {
|
||||
SymbolType pointerType = inferType(programScope, ((PointerDereferenceSimple) rValue).getPointer());
|
||||
return inferType(symbols, constBin.getLeft(), constBin.getOperator(), constBin.getRight());
|
||||
} else if (rValue instanceof ValueArray) {
|
||||
type = inferTypeArray(symbols, (ValueArray)rValue);
|
||||
} else if (rValue instanceof PointerDereference) {
|
||||
SymbolType pointerType = inferType(symbols, ((PointerDereference) rValue).getPointer());
|
||||
if (pointerType instanceof SymbolTypePointer) {
|
||||
return ((SymbolTypePointer) pointerType).getElementType();
|
||||
} else {
|
||||
@ -283,4 +299,61 @@ public class SymbolTypeInference {
|
||||
return type;
|
||||
}
|
||||
|
||||
private static SymbolType inferTypeArray(ProgramScope symbols, ValueArray array) {
|
||||
SymbolType elmType = null;
|
||||
for (RValue elm : array.getList()) {
|
||||
SymbolType type = inferType(symbols, elm);
|
||||
if(elmType==null) {
|
||||
elmType = type;
|
||||
} else {
|
||||
// element type already defined - check for a match
|
||||
if(!typeMatch(elmType, type)) {
|
||||
throw new RuntimeException("Array element has type mismatch "+elm.toString()+" not matching type "+elmType.getTypeName());
|
||||
}
|
||||
}
|
||||
}
|
||||
if(elmType!=null) {
|
||||
return new SymbolTypeArray(elmType);
|
||||
} else {
|
||||
throw new RuntimeException("Cannot infer array element type "+array.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public static SymbolType inferTypeRValue(ProgramScope symbols, StatementAssignment assignment) {
|
||||
SymbolType rValueType;
|
||||
RValue rValue1 = assignment.getrValue1();
|
||||
RValue rValue2 = assignment.getrValue2();
|
||||
if (assignment.getrValue1() == null && assignment.getOperator() == null) {
|
||||
rValueType = inferType(symbols, rValue2);
|
||||
} else if (assignment.getrValue1() == null) {
|
||||
rValueType = inferType(symbols, assignment.getOperator(), rValue2);
|
||||
} else {
|
||||
rValueType = inferType(symbols, rValue1, assignment.getOperator(), rValue2);
|
||||
}
|
||||
return rValueType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if lValue and rValue types match (the same types, not needing a cast).
|
||||
*
|
||||
* @param lValueType The lValue type
|
||||
* @param rValueType The rvalue type
|
||||
* @return true if the types match
|
||||
*/
|
||||
public static boolean typeMatch(SymbolType lValueType, SymbolType rValueType) {
|
||||
if (lValueType.equals(rValueType)) {
|
||||
// Types match directly
|
||||
return true;
|
||||
} else if (rValueType instanceof SymbolTypeInline && ((SymbolTypeInline) rValueType).getTypes().contains(lValueType)) {
|
||||
// Types match because the right side is a constant that matches the left side
|
||||
return true;
|
||||
} else if (lValueType instanceof SymbolTypePointer && rValueType instanceof SymbolTypePointer) {
|
||||
return typeMatch(((SymbolTypePointer) lValueType).getElementType(), ((SymbolTypePointer) rValueType).getElementType());
|
||||
} else if (SymbolType.STRING.equals(rValueType)) {
|
||||
if(lValueType instanceof SymbolTypePointer && SymbolType.isByte(((SymbolTypePointer) lValueType).getElementType())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,93 @@
|
||||
package dk.camelot64.kickc.passes;
|
||||
|
||||
import dk.camelot64.kickc.model.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
|
||||
/**
|
||||
* Add casts in all assignments where types are not equal, but the rValue type can be promoted to the lValue type.
|
||||
*/
|
||||
public class Pass1AddTypePromotions {
|
||||
|
||||
private Program program;
|
||||
|
||||
public Pass1AddTypePromotions(Program program) {
|
||||
this.program = program;
|
||||
}
|
||||
|
||||
public Program getProgram() {
|
||||
return program;
|
||||
}
|
||||
|
||||
public ProgramScope getSymbols() {
|
||||
return program.getScope();
|
||||
}
|
||||
|
||||
public void addPromotions() {
|
||||
for (ControlFlowBlock block : getProgram().getGraph().getAllBlocks()) {
|
||||
List<Statement> statements = block.getStatements();
|
||||
ListIterator<Statement> stmtIt = statements.listIterator();
|
||||
while (stmtIt.hasNext()) {
|
||||
Statement statement = stmtIt.next();
|
||||
if (statement instanceof StatementAssignment) {
|
||||
getPromotionAssignment((StatementAssignment) statement, stmtIt);
|
||||
}
|
||||
// TODO: Implement promotion for calls
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Examines an assignment to determine if a cast of the rValue is needed (the lvalue type and the rvalue type is not equal)
|
||||
* and possible (the types are promotion compatible).
|
||||
*
|
||||
* If a promotion is needed it is added by adding a new tmp-var with a cast and modifying the statement.
|
||||
*
|
||||
* @param assignment The assignment to examine
|
||||
* @param stmtIt Iterator allowing the method to add a tmp-var-assignment.
|
||||
*/
|
||||
private void getPromotionAssignment(StatementAssignment assignment, ListIterator<Statement> stmtIt) {
|
||||
LValue lValue = assignment.getlValue();
|
||||
SymbolType lValueType = SymbolTypeInference.inferType(getSymbols(), lValue);
|
||||
SymbolType rValueType = SymbolTypeInference.inferTypeRValue(getSymbols(), assignment);
|
||||
if (SymbolTypeInference.typeMatch(lValueType, rValueType)) {
|
||||
return;
|
||||
}
|
||||
// No direct type match - attempt promotion
|
||||
if(canPromote(lValueType, rValueType)) {
|
||||
// Promotion possible - add tmp-var and a cast
|
||||
if(assignment.getOperator()==null) {
|
||||
// No operator - add cast directly!
|
||||
assignment.setOperator(Operator.getCastUnary(lValueType));
|
||||
} else {
|
||||
throw new RuntimeException("Tmp-var promotions not implemented yet "+assignment);
|
||||
}
|
||||
} else {
|
||||
String msg = "ERROR! Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). " +
|
||||
"In " + assignment.toString(getProgram(), false);
|
||||
getProgram().getLog().append(msg);
|
||||
throw new CompileError(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if it is possible to promote (cast without loss) one type to another
|
||||
* @param lValueType The type of the lValue
|
||||
* @param rValueType The type of the rValue (that will be cast)
|
||||
* @return True if a cast is possible without any loss
|
||||
*/
|
||||
private boolean canPromote(SymbolType lValueType, SymbolType rValueType) {
|
||||
if(lValueType instanceof SymbolTypePointer && SymbolType.isWord(rValueType)) {
|
||||
return true;
|
||||
}
|
||||
if(lValueType.equals(SymbolType.WORD) && SymbolType.isByte(rValueType)) {
|
||||
return true;
|
||||
}
|
||||
// No type promotion found
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package dk.camelot64.kickc.passes;
|
||||
|
||||
import dk.camelot64.kickc.model.*;
|
||||
|
||||
/**
|
||||
* Asserts that types match in all assignments and calculations
|
||||
*/
|
||||
public class Pass2AssertTypeMatch extends Pass2SsaAssertion {
|
||||
|
||||
public Pass2AssertTypeMatch(Program program) {
|
||||
super(program);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void check() throws AssertionFailed {
|
||||
for (ControlFlowBlock block : getGraph().getAllBlocks()) {
|
||||
for (Statement statement : block.getStatements()) {
|
||||
if (statement instanceof StatementAssignment) {
|
||||
checkAssignment((StatementAssignment) statement);
|
||||
}
|
||||
// TODO: Implement checking for calls / conditional jumps / ...
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void checkAssignment(StatementAssignment statement) {
|
||||
LValue lValue = statement.getlValue();
|
||||
SymbolType lValueType = SymbolTypeInference.inferType(getSymbols(), lValue);
|
||||
SymbolType rValueType = SymbolTypeInference.inferTypeRValue(getSymbols(), statement);
|
||||
if(SymbolTypeInference.typeMatch(lValueType, rValueType)) {
|
||||
return;
|
||||
}
|
||||
// Types do not match
|
||||
getLog().append("ERROR! Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). In " + statement.toString(getProgram(), false));
|
||||
throw new CompileError("ERROR! Type mismatch (" + lValueType.getTypeName() + ") cannot be assigned from (" + rValueType.getTypeName() + "). In " + statement.toString(getProgram(), false));
|
||||
}
|
||||
|
||||
}
|
@ -179,10 +179,11 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization {
|
||||
case "--":
|
||||
case "<":
|
||||
case ">":
|
||||
case "_byte_":
|
||||
case "_sbyte_":
|
||||
case "_word_":
|
||||
case "_sword_":
|
||||
case "((byte))":
|
||||
case "((sbyte))":
|
||||
case "((word))":
|
||||
case "((signed word))":
|
||||
case "((byte*))":
|
||||
return new ConstantUnary(operator, c);
|
||||
case "*": { // pointer dereference - not constant
|
||||
return null;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package dk.camelot64.kickc.passes;
|
||||
|
||||
import dk.camelot64.kickc.CompileLog;
|
||||
import dk.camelot64.kickc.model.ControlFlowGraph;
|
||||
import dk.camelot64.kickc.model.Program;
|
||||
import dk.camelot64.kickc.model.ProgramScope;
|
||||
@ -7,20 +8,26 @@ import dk.camelot64.kickc.model.ProgramScope;
|
||||
/** Assertion checking that a pass 2 representation of the program is consistent */
|
||||
public abstract class Pass2SsaAssertion {
|
||||
|
||||
private ControlFlowGraph graph;
|
||||
private ProgramScope programScope;
|
||||
private Program program;
|
||||
|
||||
public Pass2SsaAssertion(Program program) {
|
||||
this.graph = program.getGraph();
|
||||
this.programScope = program.getScope();
|
||||
this.program = program;
|
||||
}
|
||||
|
||||
public ControlFlowGraph getGraph() {
|
||||
return graph;
|
||||
return program.getGraph();
|
||||
}
|
||||
|
||||
public ProgramScope getSymbols() {
|
||||
return programScope;
|
||||
return program.getScope();
|
||||
}
|
||||
|
||||
public CompileLog getLog() {
|
||||
return program.getLog();
|
||||
}
|
||||
|
||||
public Program getProgram() {
|
||||
return program;
|
||||
}
|
||||
|
||||
public abstract void check() throws AssertionFailed;
|
||||
|
@ -210,6 +210,16 @@ public class TestPrograms extends TestCase {
|
||||
fail("Expected compile error.");
|
||||
}
|
||||
|
||||
public void testTypeMismatch() throws IOException, URISyntaxException {
|
||||
try {
|
||||
compileAndCompare("typemismatch");
|
||||
} catch (CompileError e) {
|
||||
// expecting error!
|
||||
return;
|
||||
}
|
||||
fail("Expected compile error.");
|
||||
}
|
||||
|
||||
|
||||
private void compileAndCompare(String filename) throws IOException, URISyntaxException {
|
||||
TestPrograms tester = new TestPrograms();
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
// Minimal classic for() loop
|
||||
|
||||
byte* SCREEN = $0400;
|
||||
byte* SCREEN = (byte*)$0400;
|
||||
|
||||
void main() {
|
||||
for(byte i=0; i!=100; i++) {
|
||||
|
@ -24,8 +24,8 @@ void main() {
|
||||
}
|
||||
|
||||
// Incrementing directly on a word
|
||||
++*$d020;
|
||||
--*($d000+$21);
|
||||
++*(byte*)$d020;
|
||||
--*(byte*)($d000+$21);
|
||||
|
||||
// Increment on a const named pointer
|
||||
byte* BGCOL = $d020;
|
||||
|
@ -70,7 +70,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -120,7 +120,7 @@ main::@return: scope:[main] from main::@8
|
||||
Removing empty block main::@8
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -169,7 +169,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -222,7 +222,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#5 ← phi( @1/(byte*) SCREEN#9 )
|
||||
@ -288,7 +288,7 @@ main::@return: scope:[main] from main::@7
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#5 ← phi( @1/(byte*) SCREEN#9 )
|
||||
@ -406,7 +406,7 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#5 ← phi( @1/(byte*) SCREEN#9 )
|
||||
@ -476,7 +476,7 @@ Alias (byte*) SCREEN#2 = (byte*) SCREEN#8
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -538,7 +538,7 @@ Self Phi Eliminated (byte) main::k#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -600,7 +600,7 @@ Redundant Phi (byte) main::k#2 (byte) main::k#4
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -658,7 +658,7 @@ Simple Condition (boolean~) main::$3 if((byte) main::k#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -705,7 +705,7 @@ main::@return: scope:[main] from main::@7
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Constant (const byte) main::j#0 = 0
|
||||
Constant (const byte) main::k#0 = 0
|
||||
@ -945,7 +945,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
@ -1801,7 +1801,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -392,10 +392,11 @@ init_plot_tables: {
|
||||
inx
|
||||
cpx #0
|
||||
bne b1
|
||||
lda #0
|
||||
lda #<0
|
||||
sta yoffs
|
||||
lda #>0
|
||||
sta yoffs+1
|
||||
tax
|
||||
ldx #0
|
||||
b3:
|
||||
txa
|
||||
and #7
|
||||
|
@ -177,7 +177,7 @@ plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1
|
||||
[101] (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) [ plot::x#4 plot::y#4 ] ( main:0::lines:7::line:20::line_ydxi:41::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_ydxi:85::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_xdyi:34::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_xdyi:79::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_ydxd:55::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_ydxd:71::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_xdyd:49::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_xdyd:65::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] )
|
||||
[101] (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) [ plot::x#4 plot::y#4 ] ( main:0::lines:7::line:20::line_ydxi:41::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_ydxi:85::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_xdyi:34::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_xdyi:79::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_ydxd:55::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_ydxd:71::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_xdyd:49::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] main:0::lines:7::line:20::line_xdyd:65::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] )
|
||||
[102] (byte~) plot::$0 ← (const byte[]) plot_xhi#0 *idx (byte) plot::x#4 [ plot::x#4 plot::y#4 plot::$0 ] ( main:0::lines:7::line:20::line_ydxi:41::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:0::lines:7::line:20::line_ydxi:85::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:0::lines:7::line:20::line_xdyi:34::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:0::lines:7::line:20::line_xdyi:79::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:0::lines:7::line:20::line_ydxd:55::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:0::lines:7::line:20::line_ydxd:71::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:0::lines:7::line:20::line_xdyd:49::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:0::lines:7::line:20::line_xdyd:65::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::$0 ] )
|
||||
[103] (byte*) plot::plotter_x#1 ← (byte/signed byte/word/signed word) 0 hi= (byte~) plot::$0 [ plot::x#4 plot::y#4 plot::plotter_x#1 ] ( main:0::lines:7::line:20::line_ydxi:41::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_ydxi:85::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_xdyi:34::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_xdyi:79::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_ydxd:55::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_ydxd:71::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_xdyd:49::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_xdyd:65::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] )
|
||||
[103] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word) 0 hi= (byte~) plot::$0 [ plot::x#4 plot::y#4 plot::plotter_x#1 ] ( main:0::lines:7::line:20::line_ydxi:41::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_ydxi:85::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_xdyi:34::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_xdyi:79::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_ydxd:55::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_ydxd:71::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_xdyd:49::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:0::lines:7::line:20::line_xdyd:65::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] )
|
||||
[104] (byte~) plot::$1 ← (const byte[]) plot_xlo#0 *idx (byte) plot::x#4 [ plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] ( main:0::lines:7::line:20::line_ydxi:41::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:0::lines:7::line:20::line_ydxi:85::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:0::lines:7::line:20::line_xdyi:34::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:0::lines:7::line:20::line_xdyi:79::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:0::lines:7::line:20::line_ydxd:55::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:0::lines:7::line:20::line_ydxd:71::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:0::lines:7::line:20::line_xdyd:49::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:0::lines:7::line:20::line_xdyd:65::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] )
|
||||
[105] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 [ plot::x#4 plot::y#4 plot::plotter_x#2 ] ( main:0::lines:7::line:20::line_ydxi:41::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:0::lines:7::line:20::line_ydxi:85::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:0::lines:7::line:20::line_xdyi:34::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:0::lines:7::line:20::line_xdyi:79::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:0::lines:7::line:20::line_ydxd:55::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:0::lines:7::line:20::line_ydxd:71::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:0::lines:7::line:20::line_xdyd:49::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:0::lines:7::line:20::line_xdyd:65::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] )
|
||||
[106] (byte~) plot::$2 ← (const byte[]) plot_yhi#0 *idx (byte) plot::y#4 [ plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] ( main:0::lines:7::line:20::line_ydxi:41::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:0::lines:7::line:20::line_ydxi:85::plot:91 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:0::lines:7::line:20::line_xdyi:34::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:0::lines:7::line:20::line_xdyi:79::plot:120 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:0::lines:7::line:20::line_ydxd:55::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:0::lines:7::line:20::line_ydxd:71::plot:135 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:0::lines:7::line:20::line_xdyd:49::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:0::lines:7::line:20::line_xdyd:65::plot:150 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] )
|
||||
@ -313,7 +313,7 @@ init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_p
|
||||
[170] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@1 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:0::init_plot_tables:6 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
to:init_plot_tables::@3
|
||||
init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_plot_tables::@4
|
||||
[171] (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@2/(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[171] (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@2/((byte*))(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[171] (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@2/(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[172] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] )
|
||||
[173] (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] )
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,27 +2,27 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(byte*) BITMAP
|
||||
(const byte*) BITMAP#0 BITMAP = (word/signed word) 8192
|
||||
(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word) 8192
|
||||
(byte) BMM
|
||||
(const byte) BMM#0 BMM = (byte/signed byte/word/signed word) 32
|
||||
(byte*) COLS
|
||||
(const byte*) COLS#0 COLS = (word) 55296
|
||||
(const byte*) COLS#0 COLS = ((byte*))(word) 55296
|
||||
(byte) CSEL
|
||||
(const byte) CSEL#0 CSEL = (byte/signed byte/word/signed word) 8
|
||||
(byte*) D011
|
||||
(const byte*) D011#0 D011 = (word) 53265
|
||||
(const byte*) D011#0 D011 = ((byte*))(word) 53265
|
||||
(byte*) D016
|
||||
(const byte*) D016#0 D016 = (word) 53270
|
||||
(const byte*) D016#0 D016 = ((byte*))(word) 53270
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 D018 = (word) 53272
|
||||
(const byte*) D018#0 D018 = ((byte*))(word) 53272
|
||||
(byte) DEN
|
||||
(const byte) DEN#0 DEN = (byte/signed byte/word/signed word) 16
|
||||
(byte) ECM
|
||||
(const byte) ECM#0 ECM = (byte/signed byte/word/signed word) 64
|
||||
(byte*) FGCOL
|
||||
(const byte*) FGCOL#0 FGCOL = (word) 53281
|
||||
(const byte*) FGCOL#0 FGCOL = ((byte*))(word) 53281
|
||||
(byte) MCM
|
||||
(const byte) MCM#0 MCM = (byte/signed byte/word/signed word) 16
|
||||
(byte) RSEL
|
||||
@ -30,9 +30,9 @@
|
||||
(byte) RST8
|
||||
(const byte) RST8#0 RST8 = (byte/word/signed word) 128
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCROLL
|
||||
(const byte*) SCROLL#0 SCROLL = (word) 53270
|
||||
(const byte*) SCROLL#0 SCROLL = ((byte*))(word) 53270
|
||||
(void()) init_plot_tables()
|
||||
(byte~) init_plot_tables::$0 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$10 reg byte a 22.0
|
||||
@ -306,15 +306,15 @@
|
||||
(byte) plot::y#3 reg byte y 22.0
|
||||
(byte) plot::y#4 reg byte y 6.857142857142857
|
||||
(byte[]) plot_bit
|
||||
(const byte[]) plot_bit#0 plot_bit = (word/signed word) 5120
|
||||
(const byte[]) plot_bit#0 plot_bit = ((byte*))(word/signed word) 5120
|
||||
(byte[]) plot_xhi
|
||||
(const byte[]) plot_xhi#0 plot_xhi = (word/signed word) 4352
|
||||
(const byte[]) plot_xhi#0 plot_xhi = ((byte*))(word/signed word) 4352
|
||||
(byte[]) plot_xlo
|
||||
(const byte[]) plot_xlo#0 plot_xlo = (word/signed word) 4096
|
||||
(const byte[]) plot_xlo#0 plot_xlo = ((byte*))(word/signed word) 4096
|
||||
(byte[]) plot_yhi
|
||||
(const byte[]) plot_yhi#0 plot_yhi = (word/signed word) 4864
|
||||
(const byte[]) plot_yhi#0 plot_yhi = ((byte*))(word/signed word) 4864
|
||||
(byte[]) plot_ylo
|
||||
(const byte[]) plot_ylo#0 plot_ylo = (word/signed word) 4608
|
||||
(const byte[]) plot_ylo#0 plot_ylo = ((byte*))(word/signed word) 4608
|
||||
|
||||
zp ZP_BYTE:2 [ lines::l#2 lines::l#1 init_plot_tables::$6 ]
|
||||
zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 lines::$2 line::x1#0 ]
|
||||
|
@ -116,10 +116,11 @@ init_plot_tables: {
|
||||
inx
|
||||
cpx #0
|
||||
bne b1
|
||||
lda #0
|
||||
lda #<0
|
||||
sta yoffs
|
||||
lda #>0
|
||||
sta yoffs+1
|
||||
tax
|
||||
ldx #0
|
||||
b3:
|
||||
txa
|
||||
and #7
|
||||
|
@ -48,7 +48,7 @@ plots::@return: scope:[plots] from plots::@3
|
||||
to:@return
|
||||
plot: scope:[plot] from plots::@1
|
||||
[23] (byte~) plot::$0 ← (const byte[]) plot_xhi#0 *idx (byte) plot::x#0 [ plot::x#0 plot::y#0 plot::$0 ] ( main:0::plots:9::plot:19 [ plots::i#2 plot::x#0 plot::y#0 plot::$0 ] )
|
||||
[24] (byte*) plot::plotter_x#1 ← (byte/signed byte/word/signed word) 0 hi= (byte~) plot::$0 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( main:0::plots:9::plot:19 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] )
|
||||
[24] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word) 0 hi= (byte~) plot::$0 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( main:0::plots:9::plot:19 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] )
|
||||
[25] (byte~) plot::$1 ← (const byte[]) plot_xlo#0 *idx (byte) plot::x#0 [ plot::x#0 plot::y#0 plot::plotter_x#1 plot::$1 ] ( main:0::plots:9::plot:19 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 plot::$1 ] )
|
||||
[26] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( main:0::plots:9::plot:19 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] )
|
||||
[27] (byte~) plot::$2 ← (const byte[]) plot_yhi#0 *idx (byte) plot::y#0 [ plot::x#0 plot::y#0 plot::plotter_x#2 plot::$2 ] ( main:0::plots:9::plot:19 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 plot::$2 ] )
|
||||
@ -82,7 +82,7 @@ init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_p
|
||||
[46] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@1 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:0::init_plot_tables:6 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
to:init_plot_tables::@3
|
||||
init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_plot_tables::@4
|
||||
[47] (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@2/(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[47] (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@2/((byte*))(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[47] (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@2/(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[48] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] )
|
||||
[49] (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] ( main:0::init_plot_tables:6 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] )
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,37 +2,37 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(byte*) BITMAP
|
||||
(const byte*) BITMAP#0 BITMAP = (word/signed word) 8192
|
||||
(const byte*) BITMAP#0 BITMAP = ((byte*))(word/signed word) 8192
|
||||
(byte) BMM
|
||||
(const byte) BMM#0 BMM = (byte/signed byte/word/signed word) 32
|
||||
(byte*) COLS
|
||||
(const byte*) COLS#0 COLS = (word) 55296
|
||||
(const byte*) COLS#0 COLS = ((byte*))(word) 55296
|
||||
(byte) CSEL
|
||||
(const byte) CSEL#0 CSEL = (byte/signed byte/word/signed word) 8
|
||||
(byte*) D011
|
||||
(const byte*) D011#0 D011 = (word) 53265
|
||||
(const byte*) D011#0 D011 = ((byte*))(word) 53265
|
||||
(byte*) D016
|
||||
(const byte*) D016#0 D016 = (word) 53270
|
||||
(const byte*) D016#0 D016 = ((byte*))(word) 53270
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 D018 = (word) 53272
|
||||
(const byte*) D018#0 D018 = ((byte*))(word) 53272
|
||||
(byte) DEN
|
||||
(const byte) DEN#0 DEN = (byte/signed byte/word/signed word) 16
|
||||
(byte) ECM
|
||||
(const byte) ECM#0 ECM = (byte/signed byte/word/signed word) 64
|
||||
(byte*) FGCOL
|
||||
(const byte*) FGCOL#0 FGCOL = (word) 53281
|
||||
(const byte*) FGCOL#0 FGCOL = ((byte*))(word) 53281
|
||||
(byte) MCM
|
||||
(const byte) MCM#0 MCM = (byte/signed byte/word/signed word) 16
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = (word) 53266
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word) 53266
|
||||
(byte) RSEL
|
||||
(const byte) RSEL#0 RSEL = (byte/signed byte/word/signed word) 8
|
||||
(byte) RST8
|
||||
(const byte) RST8#0 RST8 = (byte/word/signed word) 128
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) init_plot_tables()
|
||||
(byte~) init_plot_tables::$0 reg byte a 22.0
|
||||
(byte~) init_plot_tables::$10 reg byte a 22.0
|
||||
@ -98,15 +98,15 @@
|
||||
(byte) plot::y
|
||||
(byte) plot::y#0 reg byte x 15.000000000000002
|
||||
(byte[]) plot_bit
|
||||
(const byte[]) plot_bit#0 plot_bit = (word/signed word) 5120
|
||||
(const byte[]) plot_bit#0 plot_bit = ((byte*))(word/signed word) 5120
|
||||
(byte[]) plot_xhi
|
||||
(const byte[]) plot_xhi#0 plot_xhi = (word/signed word) 4352
|
||||
(const byte[]) plot_xhi#0 plot_xhi = ((byte*))(word/signed word) 4352
|
||||
(byte[]) plot_xlo
|
||||
(const byte[]) plot_xlo#0 plot_xlo = (word/signed word) 4096
|
||||
(const byte[]) plot_xlo#0 plot_xlo = ((byte*))(word/signed word) 4096
|
||||
(byte[]) plot_yhi
|
||||
(const byte[]) plot_yhi#0 plot_yhi = (word/signed word) 4864
|
||||
(const byte[]) plot_yhi#0 plot_yhi = ((byte*))(word/signed word) 4864
|
||||
(byte[]) plot_ylo
|
||||
(const byte[]) plot_ylo#0 plot_ylo = (word/signed word) 4608
|
||||
(const byte[]) plot_ylo#0 plot_ylo = ((byte*))(word/signed word) 4608
|
||||
(void()) plots()
|
||||
(byte~) plots::$0 reg byte y 101.0
|
||||
(byte~) plots::$1 reg byte a 101.0
|
||||
|
@ -107,7 +107,7 @@ SYMBOLS
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::x0 ← (byte/signed byte/word/signed word) 4
|
||||
@ -166,7 +166,7 @@ Removing empty block main::@4
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::x0 ← (byte/signed byte/word/signed word) 4
|
||||
@ -224,7 +224,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte) STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::x0 ← (byte/signed byte/word/signed word) 4
|
||||
@ -285,7 +285,7 @@ Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) STAR#2 ← phi( @1/(byte) STAR#4 )
|
||||
@ -371,7 +371,7 @@ main::@return: scope:[main] from main::@2
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) STAR#2 ← phi( @1/(byte) STAR#4 )
|
||||
@ -544,7 +544,7 @@ Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) STAR#2 ← phi( @1/(byte) STAR#4 )
|
||||
@ -630,7 +630,7 @@ Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) STAR#2 ← phi( @1/(byte) STAR#4 )
|
||||
@ -733,7 +733,7 @@ Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 4
|
||||
@ -798,7 +798,7 @@ Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 4
|
||||
@ -857,7 +857,7 @@ Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 4
|
||||
@ -916,7 +916,7 @@ Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 4
|
||||
@ -969,7 +969,7 @@ Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 4
|
||||
@ -1015,7 +1015,7 @@ main::@return: scope:[main] from main::@2
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte) STAR#0 = 81
|
||||
Constant (const byte[1000]) SCREEN#0 = 1024
|
||||
Constant (const byte[1000]) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::x#0 = 4
|
||||
Constant (const byte) main::y#0 = 4
|
||||
Constant (const byte) main::x1#0 = 39
|
||||
@ -1247,7 +1247,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[1000]) SCREEN
|
||||
(const byte[1000]) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte[1000]) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) STAR
|
||||
(const byte) STAR#0 = (byte/signed byte/word/signed word) 81
|
||||
(void()) main()
|
||||
@ -2227,7 +2227,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[1000]) SCREEN
|
||||
(const byte[1000]) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1000]) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) STAR
|
||||
(const byte) STAR#0 STAR = (byte/signed byte/word/signed word) 81
|
||||
(void()) main()
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[1000]) SCREEN
|
||||
(const byte[1000]) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1000]) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) STAR
|
||||
(const byte) STAR#0 STAR = (byte/signed byte/word/signed word) 81
|
||||
(void()) main()
|
||||
|
@ -15,9 +15,9 @@ main: {
|
||||
sta y
|
||||
ldy #yd/2
|
||||
tax
|
||||
lda #0+0*$28
|
||||
lda #<0+0*$28
|
||||
sta idx
|
||||
txa
|
||||
lda #>0+0*$28
|
||||
sta idx+1
|
||||
b1:
|
||||
lda #<screen
|
||||
|
@ -11,7 +11,7 @@ main::@1: scope:[main] from main main::@2
|
||||
[2] (byte) main::y#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@2/(byte) main::y#4 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[2] (byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word) 2 main::@2/(byte) main::e#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[2] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@2/(byte) main::x#1 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[2] (word) main::idx#3 ← phi( main/(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@2/(word) main::idx#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[2] (word) main::idx#3 ← phi( main/((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@2/(word) main::idx#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[4] (byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word) 1 [ main::idx#3 main::e#3 main::y#2 main::x#1 ] ( main:0 [ main::idx#3 main::e#3 main::y#2 main::x#1 ] )
|
||||
[5] (word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word) 1 [ main::e#3 main::y#2 main::x#1 main::idx#1 ] ( main:0 [ main::e#3 main::y#2 main::x#1 main::idx#1 ] )
|
||||
|
@ -107,7 +107,7 @@ INITIAL CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1 ← (byte/signed byte/word/signed word) 39
|
||||
@ -122,7 +122,7 @@ main: scope:[main] from
|
||||
(byte) main::e ← (byte~) main::$2
|
||||
(byte~) main::$3 ← (byte) main::y * (byte/signed byte/word/signed word) 40
|
||||
(byte~) main::$4 ← (byte) main::x + (byte~) main::$3
|
||||
(word) main::idx ← (byte~) main::$4
|
||||
(word) main::idx ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
*((byte[1000]) main::screen + (word) main::idx) ← (byte) main::STAR
|
||||
@ -165,7 +165,7 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1 ← (byte/signed byte/word/signed word) 39
|
||||
@ -180,7 +180,7 @@ main: scope:[main] from
|
||||
(byte) main::e ← (byte~) main::$2
|
||||
(byte~) main::$3 ← (byte) main::y * (byte/signed byte/word/signed word) 40
|
||||
(byte~) main::$4 ← (byte) main::x + (byte~) main::$3
|
||||
(word) main::idx ← (byte~) main::$4
|
||||
(word) main::idx ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
*((byte[1000]) main::screen + (word) main::idx) ← (byte) main::STAR
|
||||
@ -222,7 +222,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1 ← (byte/signed byte/word/signed word) 39
|
||||
@ -237,7 +237,7 @@ main: scope:[main] from @1
|
||||
(byte) main::e ← (byte~) main::$2
|
||||
(byte~) main::$3 ← (byte) main::y * (byte/signed byte/word/signed word) 40
|
||||
(byte~) main::$4 ← (byte) main::x + (byte~) main::$3
|
||||
(word) main::idx ← (byte~) main::$4
|
||||
(word) main::idx ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
*((byte[1000]) main::screen + (word) main::idx) ← (byte) main::STAR
|
||||
@ -282,7 +282,7 @@ CONTROL FLOW GRAPH SSA
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x0#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y0#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -297,7 +297,7 @@ main: scope:[main] from @1
|
||||
(byte) main::e#0 ← (byte~) main::$2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← (byte~) main::$4
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#3 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -366,7 +366,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x0#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y0#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -381,7 +381,7 @@ main: scope:[main] from @1
|
||||
(byte) main::e#0 ← (byte~) main::$2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← (byte~) main::$4
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#3 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -535,7 +535,7 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x0#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y0#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -550,7 +550,7 @@ main: scope:[main] from @1
|
||||
(byte) main::e#0 ← (byte~) main::$2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← (byte~) main::$4
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#3 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -619,7 +619,7 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x0#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y0#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -634,7 +634,7 @@ main: scope:[main] from @1
|
||||
(byte) main::e#0 ← (byte~) main::$2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← (byte~) main::$4
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#3 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -700,7 +700,6 @@ Alias (byte) main::yd#0 = (byte~) main::$1
|
||||
Alias (byte) main::x#0 = (byte) main::x0#0
|
||||
Alias (byte) main::y#0 = (byte) main::y0#0
|
||||
Alias (byte) main::e#0 = (byte~) main::$2
|
||||
Alias (word) main::idx#0 = (byte~) main::$4
|
||||
Alias (byte) main::x#1 = (byte~) main::$5 (byte) main::x#4
|
||||
Alias (word) main::idx#1 = (word~) main::$6 (word) main::idx#4
|
||||
Alias (byte) main::e#1 = (byte~) main::$7 (byte) main::e#4
|
||||
@ -719,7 +718,7 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -728,7 +727,8 @@ main: scope:[main] from @1
|
||||
(byte) main::yd#0 ← (byte) main::y1#0 - (byte) main::y#0
|
||||
(byte) main::e#0 ← (byte) main::yd#0 / (byte/signed byte/word/signed word) 2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(word) main::idx#0 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -786,7 +786,7 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -795,7 +795,8 @@ main: scope:[main] from @1
|
||||
(byte) main::yd#0 ← (byte) main::y1#0 - (byte) main::y#0
|
||||
(byte) main::e#0 ← (byte) main::yd#0 / (byte/signed byte/word/signed word) 2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(word) main::idx#0 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -846,7 +847,7 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -855,7 +856,8 @@ main: scope:[main] from @1
|
||||
(byte) main::yd#0 ← (byte) main::y1#0 - (byte) main::y#0
|
||||
(byte) main::e#0 ← (byte) main::yd#0 / (byte/signed byte/word/signed word) 2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(word) main::idx#0 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -906,7 +908,7 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -915,7 +917,8 @@ main: scope:[main] from @1
|
||||
(byte) main::yd#0 ← (byte) main::y1#0 - (byte) main::y#0
|
||||
(byte) main::e#0 ← (byte) main::yd#0 / (byte/signed byte/word/signed word) 2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(word) main::idx#0 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -958,7 +961,7 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte[1000]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[1000]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::x#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::y#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) main::x1#0 ← (byte/signed byte/word/signed word) 39
|
||||
@ -967,7 +970,8 @@ main: scope:[main] from @1
|
||||
(byte) main::yd#0 ← (byte) main::y1#0 - (byte) main::y#0
|
||||
(byte) main::e#0 ← (byte) main::yd#0 / (byte/signed byte/word/signed word) 2
|
||||
(byte~) main::$3 ← (byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(word) main::idx#0 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(byte~) main::$4 ← (byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -1001,7 +1005,7 @@ main::@return: scope:[main] from main::@2
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte) main::STAR#0 = 81
|
||||
Constant (const byte[1000]) main::screen#0 = 1024
|
||||
Constant (const byte[1000]) main::screen#0 = ((byte*))1024
|
||||
Constant (const byte) main::x#0 = 0
|
||||
Constant (const byte) main::y#0 = 0
|
||||
Constant (const byte) main::x1#0 = 39
|
||||
@ -1015,7 +1019,8 @@ main: scope:[main] from @1
|
||||
(byte) main::yd#0 ← (const byte) main::y1#0 - (const byte) main::y#0
|
||||
(byte) main::e#0 ← (byte) main::yd#0 / (byte/signed byte/word/signed word) 2
|
||||
(byte~) main::$3 ← (const byte) main::y#0 * (byte/signed byte/word/signed word) 40
|
||||
(word) main::idx#0 ← (const byte) main::x#0 + (byte~) main::$3
|
||||
(byte~) main::$4 ← (const byte) main::x#0 + (byte~) main::$3
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(const byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -1058,7 +1063,8 @@ CONTROL FLOW GRAPH
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::e#0 ← (const byte) main::yd#0 / (byte/signed byte/word/signed word) 2
|
||||
(word) main::idx#0 ← (const byte) main::x#0 + (const byte) main::$3
|
||||
(byte~) main::$4 ← (const byte) main::x#0 + (const byte) main::$3
|
||||
(word) main::idx#0 ← ((word)) (byte~) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(const byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
@ -1091,7 +1097,45 @@ main::@return: scope:[main] from main::@2
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte) main::e#0 = main::yd#0/2
|
||||
Constant (const word) main::idx#0 = main::x#0+main::$3
|
||||
Constant (const byte) main::$4 = main::x#0+main::$3
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(word) main::idx#0 ← ((word)) (const byte) main::$4
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(const byte) main::y#0 main::@2/(byte) main::y#4 )
|
||||
(byte) main::e#3 ← phi( main/(const byte) main::e#0 main::@2/(byte) main::e#5 )
|
||||
(byte) main::x#2 ← phi( main/(const byte) main::x#0 main::@2/(byte) main::x#1 )
|
||||
(word) main::idx#3 ← phi( main/(word) main::idx#0 main::@2/(word) main::idx#5 )
|
||||
*((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0
|
||||
(byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word) 1
|
||||
(word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word) 1
|
||||
(byte) main::e#1 ← (byte) main::e#3 + (const byte) main::yd#0
|
||||
if((const byte) main::xd#0>=(byte) main::e#1) goto main::@2
|
||||
to:main::@3
|
||||
main::@2: scope:[main] from main::@1 main::@3
|
||||
(byte) main::y#4 ← phi( main::@1/(byte) main::y#2 main::@3/(byte) main::y#1 )
|
||||
(byte) main::e#5 ← phi( main::@1/(byte) main::e#1 main::@3/(byte) main::e#2 )
|
||||
(word) main::idx#5 ← phi( main::@1/(word) main::idx#1 main::@3/(word) main::idx#2 )
|
||||
if((byte) main::x#1<(const byte) main::$13) goto main::@1
|
||||
to:main::@return
|
||||
main::@3: scope:[main] from main::@1
|
||||
(byte) main::y#1 ← (byte) main::y#2 + (byte/signed byte/word/signed word) 1
|
||||
(word) main::idx#2 ← (word) main::idx#1 + (byte/signed byte/word/signed word) 40
|
||||
(byte) main::e#2 ← (byte) main::e#1 - (const byte) main::xd#0
|
||||
to:main::@2
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
@1: scope:[] from @begin
|
||||
call main param-assignment
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const word) main::idx#0 = ((word))main::$4
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -1145,10 +1189,11 @@ Inlining constant with var siblings (const word) main::idx#0
|
||||
Inlining constant with var siblings (const word) main::idx#0
|
||||
Inlining constant with var siblings (const word) main::idx#0
|
||||
Inlining constant with var siblings (const word) main::idx#0
|
||||
Constant inlined main::idx#0 = ((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40
|
||||
Constant inlined main::$13 = (const byte) main::x1#0+(byte/signed byte/word/signed word) 1
|
||||
Constant inlined main::idx#0 = (byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40
|
||||
Constant inlined main::$3 = (byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40
|
||||
Constant inlined main::x#0 = (byte/signed byte/word/signed word) 0
|
||||
Constant inlined main::$4 = (byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40
|
||||
Constant inlined main::y#0 = (byte/signed byte/word/signed word) 0
|
||||
Constant inlined main::e#0 = (const byte) main::yd#0/(byte/signed byte/word/signed word) 2
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
@ -1161,7 +1206,7 @@ main::@1: scope:[main] from main main::@2
|
||||
(byte) main::y#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@2/(byte) main::y#4 )
|
||||
(byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word) 2 main::@2/(byte) main::e#5 )
|
||||
(byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@2/(byte) main::x#1 )
|
||||
(word) main::idx#3 ← phi( main/(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@2/(word) main::idx#5 )
|
||||
(word) main::idx#3 ← phi( main/((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@2/(word) main::idx#5 )
|
||||
*((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0
|
||||
(byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word) 1
|
||||
(word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word) 1
|
||||
@ -1209,7 +1254,7 @@ FINAL SYMBOL TABLE
|
||||
(word) main::idx#3
|
||||
(word) main::idx#5
|
||||
(byte[1000]) main::screen
|
||||
(const byte[1000]) main::screen#0 = (word/signed word) 1024
|
||||
(const byte[1000]) main::screen#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) main::x
|
||||
(byte) main::x#1
|
||||
(byte) main::x#2
|
||||
@ -1245,7 +1290,7 @@ main::@1: scope:[main] from main main::@5
|
||||
(byte) main::y#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@5/(byte~) main::y#5 )
|
||||
(byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word) 2 main::@5/(byte~) main::e#6 )
|
||||
(byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@5/(byte~) main::x#5 )
|
||||
(word) main::idx#3 ← phi( main/(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@5/(word~) main::idx#6 )
|
||||
(word) main::idx#3 ← phi( main/((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@5/(word~) main::idx#6 )
|
||||
*((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0
|
||||
(byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word) 1
|
||||
(word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word) 1
|
||||
@ -1307,7 +1352,7 @@ main::@1: scope:[main] from main main::@5
|
||||
[2] (byte) main::y#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@5/(byte~) main::y#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[2] (byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word) 2 main::@5/(byte~) main::e#6 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[2] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@5/(byte~) main::x#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[2] (word) main::idx#3 ← phi( main/(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@5/(word~) main::idx#6 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[2] (word) main::idx#3 ← phi( main/((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@5/(word~) main::idx#6 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[4] (byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word) 1 [ main::idx#3 main::e#3 main::y#2 main::x#1 ]
|
||||
[5] (word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word) 1 [ main::e#3 main::y#2 main::x#1 main::idx#1 ]
|
||||
@ -1380,7 +1425,7 @@ main::@1: scope:[main] from main main::@2
|
||||
[2] (byte) main::y#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@2/(byte) main::y#4 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[2] (byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word) 2 main::@2/(byte) main::e#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[2] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@2/(byte) main::x#1 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[2] (word) main::idx#3 ← phi( main/(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@2/(word) main::idx#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[2] (word) main::idx#3 ← phi( main/((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@2/(word) main::idx#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ]
|
||||
[4] (byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word) 1 [ main::idx#3 main::e#3 main::y#2 main::x#1 ]
|
||||
[5] (word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word) 1 [ main::e#3 main::y#2 main::x#1 main::idx#1 ]
|
||||
@ -1416,7 +1461,7 @@ main::@1: scope:[main] from main main::@2
|
||||
[2] (byte) main::y#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@2/(byte) main::y#4 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[2] (byte) main::e#3 ← phi( main/(const byte) main::yd#0/(byte/signed byte/word/signed word) 2 main::@2/(byte) main::e#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[2] (byte) main::x#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@2/(byte) main::x#1 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[2] (word) main::idx#3 ← phi( main/(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@2/(word) main::idx#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[2] (word) main::idx#3 ← phi( main/((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 main::@2/(word) main::idx#5 ) [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] )
|
||||
[4] (byte) main::x#1 ← (byte) main::x#2 + (byte/signed byte/word/signed word) 1 [ main::idx#3 main::e#3 main::y#2 main::x#1 ] ( main:0 [ main::idx#3 main::e#3 main::y#2 main::x#1 ] )
|
||||
[5] (word) main::idx#1 ← (word) main::idx#3 + (byte/signed byte/word/signed word) 1 [ main::e#3 main::y#2 main::x#1 main::idx#1 ] ( main:0 [ main::e#3 main::y#2 main::x#1 main::idx#1 ] )
|
||||
@ -1543,10 +1588,10 @@ main: {
|
||||
//SEG11 [2] phi (byte) main::x#2 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#2] -- zpby1=coby1
|
||||
lda #0
|
||||
sta x
|
||||
//SEG12 [2] phi (word) main::idx#3 = (byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=coby1
|
||||
lda #0+0*$28
|
||||
//SEG12 [2] phi (word) main::idx#3 = ((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=cowo1
|
||||
lda #<0+0*$28
|
||||
sta idx
|
||||
lda #0
|
||||
lda #>0+0*$28
|
||||
sta idx+1
|
||||
jmp b1
|
||||
//SEG13 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
@ -1691,10 +1736,10 @@ main: {
|
||||
ldy #yd/2
|
||||
//SEG11 [2] phi (byte) main::x#2 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#2] -- xby=coby1
|
||||
ldx #0
|
||||
//SEG12 [2] phi (word) main::idx#3 = (byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=coby1
|
||||
lda #0+0*$28
|
||||
//SEG12 [2] phi (word) main::idx#3 = ((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=cowo1
|
||||
lda #<0+0*$28
|
||||
sta idx
|
||||
lda #0
|
||||
lda #>0+0*$28
|
||||
sta idx+1
|
||||
jmp b1
|
||||
//SEG13 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
@ -1766,7 +1811,6 @@ main: {
|
||||
}
|
||||
|
||||
Replacing instruction ldx #0 with TAX
|
||||
Replacing instruction lda #0 with TXA
|
||||
Replacing label b2_from_b1 with b2
|
||||
Replacing label b1_from_b2 with b1
|
||||
Removing instruction bbegin:
|
||||
@ -1808,10 +1852,10 @@ main: {
|
||||
ldy #yd/2
|
||||
//SEG11 [2] phi (byte) main::x#2 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#2] -- xby=coby1
|
||||
tax
|
||||
//SEG12 [2] phi (word) main::idx#3 = (byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=coby1
|
||||
lda #0+0*$28
|
||||
//SEG12 [2] phi (word) main::idx#3 = ((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=cowo1
|
||||
lda #<0+0*$28
|
||||
sta idx
|
||||
txa
|
||||
lda #>0+0*$28
|
||||
sta idx+1
|
||||
jmp b1
|
||||
//SEG13 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
@ -1915,10 +1959,10 @@ main: {
|
||||
ldy #yd/2
|
||||
//SEG11 [2] phi (byte) main::x#2 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#2] -- xby=coby1
|
||||
tax
|
||||
//SEG12 [2] phi (word) main::idx#3 = (byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=coby1
|
||||
lda #0+0*$28
|
||||
//SEG12 [2] phi (word) main::idx#3 = ((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=cowo1
|
||||
lda #<0+0*$28
|
||||
sta idx
|
||||
txa
|
||||
lda #>0+0*$28
|
||||
sta idx+1
|
||||
jmp b1
|
||||
//SEG13 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
@ -2016,10 +2060,10 @@ main: {
|
||||
ldy #yd/2
|
||||
//SEG11 [2] phi (byte) main::x#2 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#2] -- xby=coby1
|
||||
tax
|
||||
//SEG12 [2] phi (word) main::idx#3 = (byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=coby1
|
||||
lda #0+0*$28
|
||||
//SEG12 [2] phi (word) main::idx#3 = ((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=cowo1
|
||||
lda #<0+0*$28
|
||||
sta idx
|
||||
txa
|
||||
lda #>0+0*$28
|
||||
sta idx+1
|
||||
//SEG13 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG14 [2] phi (byte) main::y#2 = (byte) main::y#4 [phi:main::@2->main::@1#0] -- register_copy
|
||||
@ -2106,7 +2150,7 @@ FINAL SYMBOL TABLE
|
||||
(word) main::idx#3 idx zp ZP_WORD:2 11.0
|
||||
(word) main::idx#5 idx zp ZP_WORD:2 16.5
|
||||
(byte[1000]) main::screen
|
||||
(const byte[1000]) main::screen#0 screen = (word/signed word) 1024
|
||||
(const byte[1000]) main::screen#0 screen = ((byte*))(word/signed word) 1024
|
||||
(byte) main::x
|
||||
(byte) main::x#1 reg byte x 3.666666666666667
|
||||
(byte) main::x#2 reg byte x 11.0
|
||||
@ -2160,10 +2204,10 @@ main: {
|
||||
ldy #yd/2
|
||||
//SEG11 [2] phi (byte) main::x#2 = (byte/signed byte/word/signed word) 0 [phi:main->main::@1#2] -- xby=coby1
|
||||
tax
|
||||
//SEG12 [2] phi (word) main::idx#3 = (byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=coby1
|
||||
lda #0+0*$28
|
||||
//SEG12 [2] phi (word) main::idx#3 = ((word))(byte/signed byte/word/signed word) 0+(byte/signed byte/word/signed word) 0*(byte/signed byte/word/signed word) 40 [phi:main->main::@1#3] -- zpwo1=cowo1
|
||||
lda #<0+0*$28
|
||||
sta idx
|
||||
txa
|
||||
lda #>0+0*$28
|
||||
sta idx+1
|
||||
//SEG13 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG14 [2] phi (byte) main::y#2 = (byte) main::y#4 [phi:main::@2->main::@1#0] -- register_copy
|
||||
|
@ -19,7 +19,7 @@
|
||||
(word) main::idx#3 idx zp ZP_WORD:2 11.0
|
||||
(word) main::idx#5 idx zp ZP_WORD:2 16.5
|
||||
(byte[1000]) main::screen
|
||||
(const byte[1000]) main::screen#0 screen = (word/signed word) 1024
|
||||
(const byte[1000]) main::screen#0 screen = ((byte*))(word/signed word) 1024
|
||||
(byte) main::x
|
||||
(byte) main::x#1 reg byte x 3.666666666666667
|
||||
(byte) main::x#2 reg byte x 11.0
|
||||
|
@ -16,7 +16,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@return
|
||||
line: scope:[line] from main main::@1
|
||||
[5] (byte) line::x1#3 ← phi( main/(byte/signed byte/word/signed word) 2 main::@1/(byte/signed byte/word/signed word) 5 ) [ line::x#0 screen#14 line::x1#3 ] ( main:0::line:2 [ line::x#0 screen#14 line::x1#3 ] main:0::line:3 [ line::x#0 screen#14 line::x1#3 ] )
|
||||
[5] (byte*) screen#14 ← phi( main/(word/signed word) 1024 main::@1/(byte*) screen#1 ) [ line::x#0 screen#14 line::x1#3 ] ( main:0::line:2 [ line::x#0 screen#14 line::x1#3 ] main:0::line:3 [ line::x#0 screen#14 line::x1#3 ] )
|
||||
[5] (byte*) screen#14 ← phi( main/((byte*))(word/signed word) 1024 main::@1/(byte*) screen#1 ) [ line::x#0 screen#14 line::x1#3 ] ( main:0::line:2 [ line::x#0 screen#14 line::x1#3 ] main:0::line:3 [ line::x#0 screen#14 line::x1#3 ] )
|
||||
[5] (byte) line::x#0 ← phi( main/(byte/signed byte/word/signed word) 1 main::@1/(byte/signed byte/word/signed word) 3 ) [ line::x#0 screen#14 line::x1#3 ] ( main:0::line:2 [ line::x#0 screen#14 line::x1#3 ] main:0::line:3 [ line::x#0 screen#14 line::x1#3 ] )
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line line::@1
|
||||
|
@ -55,7 +55,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) screen ← (word/signed word) 1024
|
||||
(byte*) screen ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call line (byte/signed byte/word/signed word) 1 (byte/signed byte/word/signed word) 2
|
||||
@ -90,7 +90,7 @@ Removing empty block @1
|
||||
Removing empty block line::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) screen ← (word/signed word) 1024
|
||||
(byte*) screen ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call line (byte/signed byte/word/signed word) 1 (byte/signed byte/word/signed word) 2
|
||||
@ -123,7 +123,7 @@ line modifies screen
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) screen ← (word/signed word) 1024
|
||||
(byte*) screen ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) line::x0 ← (byte/signed byte/word/signed word) 1
|
||||
@ -169,7 +169,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) screen#0 ← (word/signed word) 1024
|
||||
(byte*) screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) screen#13 ← phi( @2/(byte*) screen#15 )
|
||||
@ -226,7 +226,7 @@ line::@return: scope:[line] from line::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) screen#0 ← (word/signed word) 1024
|
||||
(byte*) screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) screen#13 ← phi( @2/(byte*) screen#15 )
|
||||
@ -331,7 +331,7 @@ Alias (byte) line::x#0 = (byte) line::x0#2
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) screen#0 ← (word/signed word) 1024
|
||||
(byte*) screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) line::x0#0 ← (byte/signed byte/word/signed word) 1
|
||||
@ -377,7 +377,7 @@ Self Phi Eliminated (byte) line::x1#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) screen#0 ← (word/signed word) 1024
|
||||
(byte*) screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) line::x0#0 ← (byte/signed byte/word/signed word) 1
|
||||
@ -423,7 +423,7 @@ Redundant Phi (byte) line::x1#2 (byte) line::x1#3
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) screen#0 ← (word/signed word) 1024
|
||||
(byte*) screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) line::x0#0 ← (byte/signed byte/word/signed word) 1
|
||||
@ -468,7 +468,7 @@ Simple Condition (boolean~) line::$0 if((byte) line::x#1<(byte) line::x1#3) goto
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) screen#0 ← (word/signed word) 1024
|
||||
(byte*) screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) line::x0#0 ← (byte/signed byte/word/signed word) 1
|
||||
@ -508,7 +508,7 @@ line::@return: scope:[line] from line::@1
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Constant (const byte*) screen#0 = 1024
|
||||
Constant (const byte*) screen#0 = ((byte*))1024
|
||||
Constant (const byte) line::x0#0 = 1
|
||||
Constant (const byte) line::x1#0 = 2
|
||||
Constant (const byte) line::x0#1 = 3
|
||||
@ -598,7 +598,7 @@ Inlining constant with var siblings (const byte*) screen#0
|
||||
Inlining constant with var siblings (const byte*) screen#0
|
||||
Constant inlined line::x0#0 = (byte/signed byte/word/signed word) 1
|
||||
Constant inlined line::x1#1 = (byte/signed byte/word/signed word) 5
|
||||
Constant inlined screen#0 = (word/signed word) 1024
|
||||
Constant inlined screen#0 = ((byte*))(word/signed word) 1024
|
||||
Constant inlined line::x1#0 = (byte/signed byte/word/signed word) 2
|
||||
Constant inlined line::x0#1 = (byte/signed byte/word/signed word) 3
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
@ -616,7 +616,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@return
|
||||
line: scope:[line] from main main::@1
|
||||
(byte) line::x1#3 ← phi( main/(byte/signed byte/word/signed word) 2 main::@1/(byte/signed byte/word/signed word) 5 )
|
||||
(byte*) screen#14 ← phi( main/(word/signed word) 1024 main::@1/(byte*) screen#1 )
|
||||
(byte*) screen#14 ← phi( main/((byte*))(word/signed word) 1024 main::@1/(byte*) screen#1 )
|
||||
(byte) line::x#0 ← phi( main/(byte/signed byte/word/signed word) 1 main::@1/(byte/signed byte/word/signed word) 3 )
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line line::@1
|
||||
@ -679,7 +679,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@return
|
||||
line: scope:[line] from main main::@1
|
||||
(byte) line::x1#3 ← phi( main/(byte/signed byte/word/signed word) 2 main::@1/(byte/signed byte/word/signed word) 5 )
|
||||
(byte*) screen#14 ← phi( main/(word/signed word) 1024 main::@1/(byte*~) screen#16 )
|
||||
(byte*) screen#14 ← phi( main/((byte*))(word/signed word) 1024 main::@1/(byte*~) screen#16 )
|
||||
(byte) line::x#0 ← phi( main/(byte/signed byte/word/signed word) 1 main::@1/(byte/signed byte/word/signed word) 3 )
|
||||
(byte~) line::x#3 ← (byte) line::x#0
|
||||
(byte*~) screen#17 ← (byte*) screen#14
|
||||
@ -733,7 +733,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@return
|
||||
line: scope:[line] from main main::@1
|
||||
[6] (byte) line::x1#3 ← phi( main/(byte/signed byte/word/signed word) 2 main::@1/(byte/signed byte/word/signed word) 5 ) [ line::x#0 screen#14 line::x1#3 ]
|
||||
[6] (byte*) screen#14 ← phi( main/(word/signed word) 1024 main::@1/(byte*~) screen#16 ) [ line::x#0 screen#14 line::x1#3 ]
|
||||
[6] (byte*) screen#14 ← phi( main/((byte*))(word/signed word) 1024 main::@1/(byte*~) screen#16 ) [ line::x#0 screen#14 line::x1#3 ]
|
||||
[6] (byte) line::x#0 ← phi( main/(byte/signed byte/word/signed word) 1 main::@1/(byte/signed byte/word/signed word) 3 ) [ line::x#0 screen#14 line::x1#3 ]
|
||||
[7] (byte~) line::x#3 ← (byte) line::x#0 [ screen#14 line::x1#3 line::x#3 ]
|
||||
[8] (byte*~) screen#17 ← (byte*) screen#14 [ line::x1#3 line::x#3 screen#17 ]
|
||||
@ -789,7 +789,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@return
|
||||
line: scope:[line] from main main::@1
|
||||
[5] (byte) line::x1#3 ← phi( main/(byte/signed byte/word/signed word) 2 main::@1/(byte/signed byte/word/signed word) 5 ) [ line::x#0 screen#14 line::x1#3 ]
|
||||
[5] (byte*) screen#14 ← phi( main/(word/signed word) 1024 main::@1/(byte*) screen#1 ) [ line::x#0 screen#14 line::x1#3 ]
|
||||
[5] (byte*) screen#14 ← phi( main/((byte*))(word/signed word) 1024 main::@1/(byte*) screen#1 ) [ line::x#0 screen#14 line::x1#3 ]
|
||||
[5] (byte) line::x#0 ← phi( main/(byte/signed byte/word/signed word) 1 main::@1/(byte/signed byte/word/signed word) 3 ) [ line::x#0 screen#14 line::x1#3 ]
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line line::@1
|
||||
@ -823,7 +823,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@return
|
||||
line: scope:[line] from main main::@1
|
||||
[5] (byte) line::x1#3 ← phi( main/(byte/signed byte/word/signed word) 2 main::@1/(byte/signed byte/word/signed word) 5 ) [ line::x#0 screen#14 line::x1#3 ] ( main:0::line:2 [ line::x#0 screen#14 line::x1#3 ] main:0::line:3 [ line::x#0 screen#14 line::x1#3 ] )
|
||||
[5] (byte*) screen#14 ← phi( main/(word/signed word) 1024 main::@1/(byte*) screen#1 ) [ line::x#0 screen#14 line::x1#3 ] ( main:0::line:2 [ line::x#0 screen#14 line::x1#3 ] main:0::line:3 [ line::x#0 screen#14 line::x1#3 ] )
|
||||
[5] (byte*) screen#14 ← phi( main/((byte*))(word/signed word) 1024 main::@1/(byte*) screen#1 ) [ line::x#0 screen#14 line::x1#3 ] ( main:0::line:2 [ line::x#0 screen#14 line::x1#3 ] main:0::line:3 [ line::x#0 screen#14 line::x1#3 ] )
|
||||
[5] (byte) line::x#0 ← phi( main/(byte/signed byte/word/signed word) 1 main::@1/(byte/signed byte/word/signed word) 3 ) [ line::x#0 screen#14 line::x1#3 ] ( main:0::line:2 [ line::x#0 screen#14 line::x1#3 ] main:0::line:3 [ line::x#0 screen#14 line::x1#3 ] )
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line line::@1
|
||||
@ -915,7 +915,7 @@ main: {
|
||||
//SEG10 [5] phi (byte) line::x1#3 = (byte/signed byte/word/signed word) 2 [phi:main->line#0] -- zpby1=coby1
|
||||
lda #2
|
||||
sta line.x1
|
||||
//SEG11 [5] phi (byte*) screen#14 = (word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
//SEG11 [5] phi (byte*) screen#14 = ((byte*))(word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -1030,7 +1030,7 @@ main: {
|
||||
//SEG10 [5] phi (byte) line::x1#3 = (byte/signed byte/word/signed word) 2 [phi:main->line#0] -- zpby1=coby1
|
||||
lda #2
|
||||
sta line.x1
|
||||
//SEG11 [5] phi (byte*) screen#14 = (word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
//SEG11 [5] phi (byte*) screen#14 = ((byte*))(word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -1115,7 +1115,7 @@ main: {
|
||||
//SEG10 [5] phi (byte) line::x1#3 = (byte/signed byte/word/signed word) 2 [phi:main->line#0] -- zpby1=coby1
|
||||
lda #2
|
||||
sta line.x1
|
||||
//SEG11 [5] phi (byte*) screen#14 = (word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
//SEG11 [5] phi (byte*) screen#14 = ((byte*))(word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -1194,7 +1194,7 @@ main: {
|
||||
//SEG10 [5] phi (byte) line::x1#3 = (byte/signed byte/word/signed word) 2 [phi:main->line#0] -- zpby1=coby1
|
||||
lda #2
|
||||
sta line.x1
|
||||
//SEG11 [5] phi (byte*) screen#14 = (word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
//SEG11 [5] phi (byte*) screen#14 = ((byte*))(word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -1289,7 +1289,7 @@ main: {
|
||||
//SEG10 [5] phi (byte) line::x1#3 = (byte/signed byte/word/signed word) 2 [phi:main->line#0] -- zpby1=coby1
|
||||
lda #2
|
||||
sta line.x1
|
||||
//SEG11 [5] phi (byte*) screen#14 = (word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
//SEG11 [5] phi (byte*) screen#14 = ((byte*))(word/signed word) 1024 [phi:main->line#1] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
|
@ -11,9 +11,9 @@ main::@1: scope:[main] from main main::@1
|
||||
[2] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte) main::b#1 ) [ main::b#2 ] ( main:0 [ main::b#2 ] )
|
||||
[3] (byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2 [ main::b#2 main::b2#0 ] ( main:0 [ main::b#2 main::b2#0 ] )
|
||||
[4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ] ( main:0 [ main::b#2 ] )
|
||||
[5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] )
|
||||
[5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] )
|
||||
[6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ] ( main:0 [ main::b#2 main::sb#0 ] )
|
||||
[7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] )
|
||||
[7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] )
|
||||
[8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ] ( main:0 [ main::b#2 ] )
|
||||
[9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ] ( main:0 [ main::b#1 ] )
|
||||
[10] if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@1 [ main::b#1 ] ( main:0 [ main::b#1 ] )
|
||||
|
@ -44,10 +44,10 @@ main::@1:
|
||||
(byte~) main::$0 ← (byte/word/signed word) 200 - (byte) main::b
|
||||
(byte) main::b2 ← (byte~) main::$0
|
||||
*((byte*) SCREEN + (byte) main::b) ← (byte) main::b2
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b
|
||||
(signed byte~) main::$2 ← - (signed byte~) main::$1
|
||||
(signed byte) main::sb ← (signed byte~) main::$2
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb
|
||||
*((byte*) SCREEN2 + (byte) main::b) ← (byte~) main::$3
|
||||
(byte) main::b ← ++ (byte) main::b
|
||||
(boolean~) main::$4 ← (byte) main::b != (byte/signed byte/word/signed word) 101
|
||||
@ -62,7 +62,7 @@ w::@1:
|
||||
(word) w::w1 ← (word/signed word) 1300
|
||||
(word) w::w2 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1 - (word) w::w2
|
||||
(byte~) w::$1 ← _byte_ (word~) w::$0
|
||||
(byte~) w::$1 ← ((byte)) (word~) w::$0
|
||||
(byte) w::b ← (byte~) w::$1
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte~) w::$3 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i
|
||||
@ -116,7 +116,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*~) $1 ← (byte*) SCREEN + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) SCREEN2 ← (byte*~) $1
|
||||
@ -134,10 +134,10 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte~) main::$0 ← (byte/word/signed word) 200 - (byte) main::b
|
||||
(byte) main::b2 ← (byte~) main::$0
|
||||
*((byte*) SCREEN + (byte) main::b) ← (byte) main::b2
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b
|
||||
(signed byte~) main::$2 ← - (signed byte~) main::$1
|
||||
(signed byte) main::sb ← (signed byte~) main::$2
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb
|
||||
*((byte*) SCREEN2 + (byte) main::b) ← (byte~) main::$3
|
||||
(byte) main::b ← ++ (byte) main::b
|
||||
(boolean~) main::$4 ← (byte) main::b != (byte/signed byte/word/signed word) 101
|
||||
@ -158,7 +158,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1 ← (word/signed word) 1300
|
||||
(word) w::w2 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1 - (word) w::w2
|
||||
(byte~) w::$1 ← _byte_ (word~) w::$0
|
||||
(byte~) w::$1 ← ((byte)) (word~) w::$0
|
||||
(byte) w::b ← (byte~) w::$1
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte~) w::$3 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i
|
||||
@ -183,7 +183,7 @@ Removing empty block @1
|
||||
Removing empty block w::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*~) $1 ← (byte*) SCREEN + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) SCREEN2 ← (byte*~) $1
|
||||
@ -201,10 +201,10 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte~) main::$0 ← (byte/word/signed word) 200 - (byte) main::b
|
||||
(byte) main::b2 ← (byte~) main::$0
|
||||
*((byte*) SCREEN + (byte) main::b) ← (byte) main::b2
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b
|
||||
(signed byte~) main::$2 ← - (signed byte~) main::$1
|
||||
(signed byte) main::sb ← (signed byte~) main::$2
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb
|
||||
*((byte*) SCREEN2 + (byte) main::b) ← (byte~) main::$3
|
||||
(byte) main::b ← ++ (byte) main::b
|
||||
(boolean~) main::$4 ← (byte) main::b != (byte/signed byte/word/signed word) 101
|
||||
@ -223,7 +223,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1 ← (word/signed word) 1300
|
||||
(word) w::w2 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1 - (word) w::w2
|
||||
(byte~) w::$1 ← _byte_ (word~) w::$0
|
||||
(byte~) w::$1 ← ((byte)) (word~) w::$0
|
||||
(byte) w::b ← (byte~) w::$1
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte~) w::$3 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i
|
||||
@ -246,7 +246,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*~) $1 ← (byte*) SCREEN + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) SCREEN2 ← (byte*~) $1
|
||||
@ -264,10 +264,10 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte~) main::$0 ← (byte/word/signed word) 200 - (byte) main::b
|
||||
(byte) main::b2 ← (byte~) main::$0
|
||||
*((byte*) SCREEN + (byte) main::b) ← (byte) main::b2
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b
|
||||
(signed byte~) main::$2 ← - (signed byte~) main::$1
|
||||
(signed byte) main::sb ← (signed byte~) main::$2
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb
|
||||
*((byte*) SCREEN2 + (byte) main::b) ← (byte~) main::$3
|
||||
(byte) main::b ← ++ (byte) main::b
|
||||
(boolean~) main::$4 ← (byte) main::b != (byte/signed byte/word/signed word) 101
|
||||
@ -288,7 +288,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1 ← (word/signed word) 1300
|
||||
(word) w::w2 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1 - (word) w::w2
|
||||
(byte~) w::$1 ← _byte_ (word~) w::$0
|
||||
(byte~) w::$1 ← ((byte)) (word~) w::$0
|
||||
(byte) w::b ← (byte~) w::$1
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte~) w::$3 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i
|
||||
@ -317,7 +317,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*~) $1 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) SCREEN2#0 ← (byte*~) $1
|
||||
@ -344,10 +344,10 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte~) main::$0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
(byte) main::b2#0 ← (byte~) main::$0
|
||||
*((byte*) SCREEN#1 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte~) main::$2 ← - (signed byte~) main::$1
|
||||
(signed byte) main::sb#0 ← (signed byte~) main::$2
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((byte*) SCREEN2#1 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
(boolean~) main::$4 ← (byte) main::b#1 != (byte/signed byte/word/signed word) 101
|
||||
@ -375,7 +375,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1#0 ← (word/signed word) 1300
|
||||
(word) w::w2#0 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1#0 - (word) w::w2#0
|
||||
(byte~) w::$1 ← _byte_ (word~) w::$0
|
||||
(byte~) w::$1 ← ((byte)) (word~) w::$0
|
||||
(byte) w::b#0 ← (byte~) w::$1
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte~) w::$3 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i#2
|
||||
@ -402,7 +402,7 @@ w::@return: scope:[w] from w::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*~) $1 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) SCREEN2#0 ← (byte*~) $1
|
||||
@ -429,10 +429,10 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte~) main::$0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
(byte) main::b2#0 ← (byte~) main::$0
|
||||
*((byte*) SCREEN#1 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte~) main::$2 ← - (signed byte~) main::$1
|
||||
(signed byte) main::sb#0 ← (signed byte~) main::$2
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((byte*) SCREEN2#1 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
(boolean~) main::$4 ← (byte) main::b#1 != (byte/signed byte/word/signed word) 101
|
||||
@ -460,7 +460,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1#0 ← (word/signed word) 1300
|
||||
(word) w::w2#0 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1#0 - (word) w::w2#0
|
||||
(byte~) w::$1 ← _byte_ (word~) w::$0
|
||||
(byte~) w::$1 ← ((byte)) (word~) w::$0
|
||||
(byte) w::b#0 ← (byte~) w::$1
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte~) w::$3 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i#2
|
||||
@ -566,7 +566,7 @@ Culled Empty Block (label) @3
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*~) $1 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) SCREEN2#0 ← (byte*~) $1
|
||||
@ -593,10 +593,10 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte~) main::$0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
(byte) main::b2#0 ← (byte~) main::$0
|
||||
*((byte*) SCREEN#1 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte~) main::$2 ← - (signed byte~) main::$1
|
||||
(signed byte) main::sb#0 ← (signed byte~) main::$2
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((byte*) SCREEN2#1 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
(boolean~) main::$4 ← (byte) main::b#1 != (byte/signed byte/word/signed word) 101
|
||||
@ -622,7 +622,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1#0 ← (word/signed word) 1300
|
||||
(word) w::w2#0 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1#0 - (word) w::w2#0
|
||||
(byte~) w::$1 ← _byte_ (word~) w::$0
|
||||
(byte~) w::$1 ← ((byte)) (word~) w::$0
|
||||
(byte) w::b#0 ← (byte~) w::$1
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte~) w::$3 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i#2
|
||||
@ -658,7 +658,7 @@ Alias (byte) w::b2#0 = (byte~) w::$3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*) SCREEN2#0 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte/word/signed word~) $2 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 6
|
||||
@ -677,9 +677,9 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte) main::b#2 ← phi( main/(byte) main::b#0 main::@1/(byte) main::b#1 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((byte*) SCREEN#1 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((byte*) SCREEN2#1 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
(boolean~) main::$4 ← (byte) main::b#1 != (byte/signed byte/word/signed word) 101
|
||||
@ -701,7 +701,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1#0 ← (word/signed word) 1300
|
||||
(word) w::w2#0 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1#0 - (word) w::w2#0
|
||||
(byte) w::b#0 ← _byte_ (word~) w::$0
|
||||
(byte) w::b#0 ← ((byte)) (word~) w::$0
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte) w::b2#0 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i#2
|
||||
*((byte*) SCREEN3#1 + (byte) w::i#2) ← (byte) w::b#0
|
||||
@ -727,7 +727,7 @@ Self Phi Eliminated (byte*) SCREEN4#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*) SCREEN2#0 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte/word/signed word~) $2 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 6
|
||||
@ -746,9 +746,9 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte) main::b#2 ← phi( main/(byte) main::b#0 main::@1/(byte) main::b#1 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((byte*) SCREEN#1 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((byte*) SCREEN2#1 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
(boolean~) main::$4 ← (byte) main::b#1 != (byte/signed byte/word/signed word) 101
|
||||
@ -770,7 +770,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1#0 ← (word/signed word) 1300
|
||||
(word) w::w2#0 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1#0 - (word) w::w2#0
|
||||
(byte) w::b#0 ← _byte_ (word~) w::$0
|
||||
(byte) w::b#0 ← ((byte)) (word~) w::$0
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte) w::b2#0 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i#2
|
||||
*((byte*) SCREEN3#1 + (byte) w::i#2) ← (byte) w::b#0
|
||||
@ -796,7 +796,7 @@ Redundant Phi (byte*) SCREEN4#1 (byte*) SCREEN4#2
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*) SCREEN2#0 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte/word/signed word~) $2 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 6
|
||||
@ -811,9 +811,9 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte) main::b#2 ← phi( main/(byte) main::b#0 main::@1/(byte) main::b#1 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
(boolean~) main::$4 ← (byte) main::b#1 != (byte/signed byte/word/signed word) 101
|
||||
@ -833,7 +833,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1#0 ← (word/signed word) 1300
|
||||
(word) w::w2#0 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1#0 - (word) w::w2#0
|
||||
(byte) w::b#0 ← _byte_ (word~) w::$0
|
||||
(byte) w::b#0 ← ((byte)) (word~) w::$0
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte) w::b2#0 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i#2
|
||||
*((byte*) SCREEN3#0 + (byte) w::i#2) ← (byte) w::b#0
|
||||
@ -855,7 +855,7 @@ Simple Condition (boolean~) w::$4 if((byte) w::i#1!=(byte/signed byte/word/signe
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 3
|
||||
(byte*) SCREEN2#0 ← (byte*) SCREEN#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte/word/signed word~) $2 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 6
|
||||
@ -870,9 +870,9 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte) main::b#2 ← phi( main/(byte) main::b#0 main::@1/(byte) main::b#1 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@1
|
||||
@ -891,7 +891,7 @@ w::@1: scope:[w] from w w::@1
|
||||
(word) w::w1#0 ← (word/signed word) 1300
|
||||
(word) w::w2#0 ← (word/signed word) 1250
|
||||
(word~) w::$0 ← (word) w::w1#0 - (word) w::w2#0
|
||||
(byte) w::b#0 ← _byte_ (word~) w::$0
|
||||
(byte) w::b#0 ← ((byte)) (word~) w::$0
|
||||
(byte/signed byte/word/signed word~) w::$2 ← (word/signed word) 1400 - (word/signed word) 1350
|
||||
(byte) w::b2#0 ← (byte/signed byte/word/signed word~) w::$2 + (byte) w::i#2
|
||||
*((byte*) SCREEN3#0 + (byte) w::i#2) ← (byte) w::b#0
|
||||
@ -907,7 +907,7 @@ w::@return: scope:[w] from w::@1
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte/signed byte/word/signed word) $0 = 40*3
|
||||
Constant (const byte/word/signed word) $2 = 40*6
|
||||
Constant (const word/signed word) $4 = 40*9
|
||||
@ -929,9 +929,9 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte) main::b#2 ← phi( main/(const byte) main::b#0 main::@1/(byte) main::b#1 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@1
|
||||
@ -947,7 +947,7 @@ w: scope:[w] from main::@2
|
||||
w::@1: scope:[w] from w w::@1
|
||||
(byte) w::i#2 ← phi( w/(const byte) w::i#0 w::@1/(byte) w::i#1 )
|
||||
(word~) w::$0 ← (const word) w::w1#0 - (const word) w::w2#0
|
||||
(byte) w::b#0 ← _byte_ (word~) w::$0
|
||||
(byte) w::b#0 ← ((byte)) (word~) w::$0
|
||||
(byte) w::b2#0 ← (const byte/signed byte/word/signed word) w::$2 + (byte) w::i#2
|
||||
*((byte*) SCREEN3#0 + (byte) w::i#2) ← (byte) w::b#0
|
||||
*((byte*) SCREEN4#0 + (byte) w::i#2) ← (byte) w::b2#0
|
||||
@ -976,9 +976,9 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte) main::b#2 ← phi( main/(const byte) main::b#0 main::@1/(byte) main::b#1 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@1
|
||||
@ -993,7 +993,7 @@ w: scope:[w] from main::@2
|
||||
to:w::@1
|
||||
w::@1: scope:[w] from w w::@1
|
||||
(byte) w::i#2 ← phi( w/(const byte) w::i#0 w::@1/(byte) w::i#1 )
|
||||
(byte) w::b#0 ← _byte_ (const word) w::$0
|
||||
(byte) w::b#0 ← ((byte)) (const word) w::$0
|
||||
(byte) w::b2#0 ← (const byte/signed byte/word/signed word) w::$2 + (byte) w::i#2
|
||||
*((const byte*) SCREEN3#0 + (byte) w::i#2) ← (byte) w::b#0
|
||||
*((const byte*) SCREEN4#0 + (byte) w::i#2) ← (byte) w::b2#0
|
||||
@ -1008,7 +1008,7 @@ w::@return: scope:[w] from w::@1
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
|
||||
Constant (const byte) w::b#0 = _byte_w::$0
|
||||
Constant (const byte) w::b#0 = ((byte))w::$0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -1019,9 +1019,9 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte) main::b#2 ← phi( main/(const byte) main::b#0 main::@1/(byte) main::b#1 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@1
|
||||
@ -1081,9 +1081,9 @@ main::@1: scope:[main] from main main::@1
|
||||
(byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte) main::b#1 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@1
|
||||
@ -1117,7 +1117,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word) 40*(byte/signed byte/word/signed word) 3
|
||||
(byte*) SCREEN3
|
||||
@ -1141,7 +1141,7 @@ FINAL SYMBOL TABLE
|
||||
(label) w::@1
|
||||
(label) w::@return
|
||||
(byte) w::b
|
||||
(const byte) w::b#0 = _byte_(const word) w::w1#0-(const word) w::w2#0
|
||||
(const byte) w::b#0 = ((byte))(const word) w::w1#0-(const word) w::w2#0
|
||||
(byte) w::b2
|
||||
(byte) w::b2#0
|
||||
(byte) w::i
|
||||
@ -1169,9 +1169,9 @@ main::@1: scope:[main] from main main::@4
|
||||
(byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@4/(byte~) main::b#3 )
|
||||
(byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2
|
||||
*((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0
|
||||
(signed byte~) main::$1 ← _sbyte_ (byte) main::b#2
|
||||
(signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2
|
||||
(signed byte) main::sb#0 ← - (signed byte~) main::$1
|
||||
(byte~) main::$3 ← _byte_ (signed byte) main::sb#0
|
||||
(byte~) main::$3 ← ((byte)) (signed byte) main::sb#0
|
||||
*((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3
|
||||
(byte) main::b#1 ← ++ (byte) main::b#2
|
||||
if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@4
|
||||
@ -1226,9 +1226,9 @@ main::@1: scope:[main] from main main::@4
|
||||
[2] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@4/(byte~) main::b#3 ) [ main::b#2 ]
|
||||
[3] (byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2 [ main::b#2 main::b2#0 ]
|
||||
[4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ]
|
||||
[5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ]
|
||||
[5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ]
|
||||
[6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ]
|
||||
[7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ]
|
||||
[7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ]
|
||||
[8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ]
|
||||
[9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ]
|
||||
[10] if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@4 [ main::b#1 ]
|
||||
@ -1287,9 +1287,9 @@ main::@1: scope:[main] from main main::@1
|
||||
[2] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte) main::b#1 ) [ main::b#2 ]
|
||||
[3] (byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2 [ main::b#2 main::b2#0 ]
|
||||
[4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ]
|
||||
[5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ]
|
||||
[5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ]
|
||||
[6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ]
|
||||
[7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ]
|
||||
[7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ]
|
||||
[8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ]
|
||||
[9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ]
|
||||
[10] if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@1 [ main::b#1 ]
|
||||
@ -1329,9 +1329,9 @@ main::@1: scope:[main] from main main::@1
|
||||
[2] (byte) main::b#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte) main::b#1 ) [ main::b#2 ] ( main:0 [ main::b#2 ] )
|
||||
[3] (byte) main::b2#0 ← (byte/word/signed word) 200 - (byte) main::b#2 [ main::b#2 main::b2#0 ] ( main:0 [ main::b#2 main::b2#0 ] )
|
||||
[4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ] ( main:0 [ main::b#2 ] )
|
||||
[5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] )
|
||||
[5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] )
|
||||
[6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ] ( main:0 [ main::b#2 main::sb#0 ] )
|
||||
[7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] )
|
||||
[7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] )
|
||||
[8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ] ( main:0 [ main::b#2 ] )
|
||||
[9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ] ( main:0 [ main::b#1 ] )
|
||||
[10] if((byte) main::b#1!=(byte/signed byte/word/signed word) 101) goto main::@1 [ main::b#1 ] ( main:0 [ main::b#1 ] )
|
||||
@ -1486,7 +1486,7 @@ main: {
|
||||
lda b2
|
||||
ldx b
|
||||
sta SCREEN,x
|
||||
//SEG15 [5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- zpsby1=_sbyte_zpby1
|
||||
//SEG15 [5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- zpsby1=_sbyte_zpby1
|
||||
lda b
|
||||
sta _1
|
||||
//SEG16 [6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ] ( main:0 [ main::b#2 main::sb#0 ] ) -- zpsby1=_neg_zpsby2
|
||||
@ -1495,7 +1495,7 @@ main: {
|
||||
clc
|
||||
adc #1
|
||||
sta sb
|
||||
//SEG17 [7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- zpby1=_byte_zpsby1
|
||||
//SEG17 [7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- zpby1=_byte_zpsby1
|
||||
lda sb
|
||||
sta _3
|
||||
//SEG18 [8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_zpby1=zpby2
|
||||
@ -1643,13 +1643,13 @@ main: {
|
||||
sbc $ff
|
||||
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN,x
|
||||
//SEG15 [5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
//SEG15 [5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
txa
|
||||
//SEG16 [6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ] ( main:0 [ main::b#2 main::sb#0 ] ) -- asby=_neg_asby
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
//SEG17 [7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG17 [7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG18 [8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN2,x
|
||||
//SEG19 [9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ] ( main:0 [ main::b#1 ] ) -- xby=_inc_xby
|
||||
@ -1749,13 +1749,13 @@ main: {
|
||||
sbc $ff
|
||||
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN,x
|
||||
//SEG15 [5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
//SEG15 [5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
txa
|
||||
//SEG16 [6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ] ( main:0 [ main::b#2 main::sb#0 ] ) -- asby=_neg_asby
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
//SEG17 [7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG17 [7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG18 [8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN2,x
|
||||
//SEG19 [9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ] ( main:0 [ main::b#1 ] ) -- xby=_inc_xby
|
||||
@ -1850,13 +1850,13 @@ main: {
|
||||
sbc $ff
|
||||
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN,x
|
||||
//SEG15 [5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
//SEG15 [5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
txa
|
||||
//SEG16 [6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ] ( main:0 [ main::b#2 main::sb#0 ] ) -- asby=_neg_asby
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
//SEG17 [7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG17 [7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG18 [8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN2,x
|
||||
//SEG19 [9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ] ( main:0 [ main::b#1 ] ) -- xby=_inc_xby
|
||||
@ -1941,13 +1941,13 @@ main: {
|
||||
sbc $ff
|
||||
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN,x
|
||||
//SEG15 [5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
//SEG15 [5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
txa
|
||||
//SEG16 [6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ] ( main:0 [ main::b#2 main::sb#0 ] ) -- asby=_neg_asby
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
//SEG17 [7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG17 [7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG18 [8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN2,x
|
||||
//SEG19 [9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ] ( main:0 [ main::b#1 ] ) -- xby=_inc_xby
|
||||
@ -2001,7 +2001,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word) 40*(byte/signed byte/word/signed word) 3
|
||||
(byte*) SCREEN3
|
||||
@ -2025,7 +2025,7 @@ FINAL SYMBOL TABLE
|
||||
(label) w::@1
|
||||
(label) w::@return
|
||||
(byte) w::b
|
||||
(const byte) w::b#0 b = _byte_(const word) w::w1#0-(const word) w::w2#0
|
||||
(const byte) w::b#0 b = ((byte))(const word) w::w1#0-(const word) w::w2#0
|
||||
(byte) w::b2
|
||||
(byte) w::b2#0 reg byte x 11.0
|
||||
(byte) w::i
|
||||
@ -2076,13 +2076,13 @@ main: {
|
||||
sbc $ff
|
||||
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::b#2) ← (byte) main::b2#0 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN,x
|
||||
//SEG15 [5] (signed byte~) main::$1 ← _sbyte_ (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
//SEG15 [5] (signed byte~) main::$1 ← ((signed byte)) (byte) main::b#2 [ main::b#2 main::$1 ] ( main:0 [ main::b#2 main::$1 ] ) -- asby=_sbyte_xby
|
||||
txa
|
||||
//SEG16 [6] (signed byte) main::sb#0 ← - (signed byte~) main::$1 [ main::b#2 main::sb#0 ] ( main:0 [ main::b#2 main::sb#0 ] ) -- asby=_neg_asby
|
||||
eor #$ff
|
||||
clc
|
||||
adc #1
|
||||
//SEG17 [7] (byte~) main::$3 ← _byte_ (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG17 [7] (byte~) main::$3 ← ((byte)) (signed byte) main::sb#0 [ main::b#2 main::$3 ] ( main:0 [ main::b#2 main::$3 ] ) -- aby=_byte_asby
|
||||
//SEG18 [8] *((const byte*) SCREEN2#0 + (byte) main::b#2) ← (byte~) main::$3 [ main::b#2 ] ( main:0 [ main::b#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta SCREEN2,x
|
||||
//SEG19 [9] (byte) main::b#1 ← ++ (byte) main::b#2 [ main::b#1 ] ( main:0 [ main::b#1 ] ) -- xby=_inc_xby
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 SCREEN2 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word) 40*(byte/signed byte/word/signed word) 3
|
||||
(byte*) SCREEN3
|
||||
@ -26,7 +26,7 @@
|
||||
(label) w::@1
|
||||
(label) w::@return
|
||||
(byte) w::b
|
||||
(const byte) w::b#0 b = _byte_(const word) w::w1#0-(const word) w::w2#0
|
||||
(const byte) w::b#0 b = ((byte))(const word) w::w1#0-(const word) w::w2#0
|
||||
(byte) w::b2
|
||||
(byte) w::b2#0 reg byte x 11.0
|
||||
(byte) w::i
|
||||
|
@ -94,9 +94,9 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN ← (word) 53248
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
asm { sei }
|
||||
@ -153,9 +153,9 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN ← (word) 53248
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
asm { sei }
|
||||
@ -217,9 +217,9 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 )
|
||||
@ -310,9 +310,9 @@ main::@return: scope:[main] from main::@6
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 )
|
||||
@ -486,9 +486,9 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 )
|
||||
@ -579,9 +579,9 @@ Inversing boolean not (boolean~) main::$4 ← (byte~) main::$2 == (byte/signed b
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 )
|
||||
@ -688,9 +688,9 @@ Alias (byte*) main::sc#2 = (byte*~) main::$7
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
asm { sei }
|
||||
@ -765,9 +765,9 @@ Alias (byte*) PROCPORT#2 = (byte*) PROCPORT#6
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
asm { sei }
|
||||
@ -833,9 +833,9 @@ Self Phi Eliminated (byte*) PROCPORT#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
asm { sei }
|
||||
@ -900,9 +900,9 @@ Redundant Phi (byte*) PROCPORT#2 (byte*) PROCPORT#8
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
asm { sei }
|
||||
@ -964,9 +964,9 @@ Simple Condition (boolean~) main::$8 if((byte) main::y#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
asm { sei }
|
||||
@ -1019,9 +1019,9 @@ main::@return: scope:[main] from main::@6
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) PROCPORT#0 = 1
|
||||
Constant (const byte*) CHARGEN#0 = 53248
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) PROCPORT#0 = ((byte*))1
|
||||
Constant (const byte*) CHARGEN#0 = ((byte*))53248
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::y#0 = 0
|
||||
Constant (const byte) main::x#0 = 0
|
||||
Constant (const byte) main::c#0 = '.'
|
||||
@ -1304,11 +1304,11 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) CHARGEN
|
||||
(const byte*) CHARGEN#0 = (word) 53248
|
||||
(const byte*) CHARGEN#0 = ((byte*))(word) 53248
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 = (byte/signed byte/word/signed word) 1
|
||||
(const byte*) PROCPORT#0 = ((byte*))(byte/signed byte/word/signed word) 1
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(byte~) main::$2
|
||||
(label) main::@1
|
||||
@ -2352,11 +2352,11 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) CHARGEN
|
||||
(const byte*) CHARGEN#0 CHARGEN = (word) 53248
|
||||
(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word) 53248
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 PROCPORT = (byte/signed byte/word/signed word) 1
|
||||
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word) 1
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(byte~) main::$2 reg byte a 202.0
|
||||
(label) main::@1
|
||||
|
@ -2,11 +2,11 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) CHARGEN
|
||||
(const byte*) CHARGEN#0 CHARGEN = (word) 53248
|
||||
(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word) 53248
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 PROCPORT = (byte/signed byte/word/signed word) 1
|
||||
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word) 1
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(byte~) main::$2 reg byte a 202.0
|
||||
(label) main::@1
|
||||
|
@ -105,8 +105,8 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots ← (word/signed word) 4096
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte[]) plots ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -183,8 +183,8 @@ Removing empty block line::@6
|
||||
Removing empty block @2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots ← (word/signed word) 4096
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte[]) plots ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -242,8 +242,8 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots ← (word/signed word) 4096
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte[]) plots ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -316,8 +316,8 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#6 )
|
||||
@ -418,8 +418,8 @@ plot::@return: scope:[plot] from plot
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#6 )
|
||||
@ -602,8 +602,8 @@ Culled Empty Block (label) @4
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#6 )
|
||||
@ -702,8 +702,8 @@ Inversing boolean not (boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#6 )
|
||||
@ -813,8 +813,8 @@ Alias (byte) plot::idx#0 = (byte~) plot::$0
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -897,8 +897,8 @@ Self Phi Eliminated (byte*) SCREEN#5
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -979,8 +979,8 @@ Redundant Phi (byte*) SCREEN#5 (byte*) SCREEN#10
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -1049,8 +1049,8 @@ Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -1118,8 +1118,8 @@ Simple Condition (boolean~) line::$3 if((byte) line::x#1<=(byte) line::x1#0) got
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[]) plots#0 ← (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[]) plots#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -1178,8 +1178,8 @@ plot::@return: scope:[plot] from plot
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Constant (const byte[]) plots#0 = 4096
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte[]) plots#0 = ((byte*))4096
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Constant (const byte) line::x#0 = 0
|
||||
Constant (const byte) line::x1#0 = 10
|
||||
@ -1432,7 +1432,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::x0 , (byte) line::x1)
|
||||
(label) line::@1
|
||||
(label) line::@2
|
||||
@ -1462,7 +1462,7 @@ FINAL SYMBOL TABLE
|
||||
(byte) plot::x#1
|
||||
(byte) plot::x#2
|
||||
(byte[]) plots
|
||||
(const byte[]) plots#0 = (word/signed word) 4096
|
||||
(const byte[]) plots#0 = ((byte*))(word/signed word) 4096
|
||||
|
||||
Block Sequence Planned @begin @3 @end main main::@1 main::@2 main::@5 main::@return line line::@2 line::@8 line::@return line::@1 plot plot::@return
|
||||
Added new block during phi lifting main::@6(between main::@1 and main::@1)
|
||||
@ -2571,7 +2571,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::x0 , (byte) line::x1)
|
||||
(label) line::@1
|
||||
(label) line::@2
|
||||
@ -2601,7 +2601,7 @@ FINAL SYMBOL TABLE
|
||||
(byte) plot::x#1 reg byte y 202.0
|
||||
(byte) plot::x#2 reg byte y 103.0
|
||||
(byte[]) plots
|
||||
(const byte[]) plots#0 plots = (word/signed word) 4096
|
||||
(const byte[]) plots#0 plots = ((byte*))(word/signed word) 4096
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
zp ZP_BYTE:2 [ line::x#2 line::x#1 ]
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::x0 , (byte) line::x1)
|
||||
(label) line::@1
|
||||
(label) line::@2
|
||||
@ -32,7 +32,7 @@
|
||||
(byte) plot::x#1 reg byte y 202.0
|
||||
(byte) plot::x#2 reg byte y 103.0
|
||||
(byte[]) plots
|
||||
(const byte[]) plots#0 plots = (word/signed word) 4096
|
||||
(const byte[]) plots#0 plots = ((byte*))(word/signed word) 4096
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
zp ZP_BYTE:2 [ line::x#2 line::x#1 ]
|
||||
|
@ -54,9 +54,9 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC ← (word) 53248
|
||||
(byte*) VIC ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC + (byte/signed byte/word/signed word~) $0
|
||||
(byte*~) $2 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -88,9 +88,9 @@ main::@return: scope:[main] from main::@2
|
||||
Removing empty block main::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC ← (word) 53248
|
||||
(byte*) VIC ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC + (byte/signed byte/word/signed word~) $0
|
||||
(byte*~) $2 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -121,9 +121,9 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC ← (word) 53248
|
||||
(byte*) VIC ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC + (byte/signed byte/word/signed word~) $0
|
||||
(byte*~) $2 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -156,9 +156,9 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC#0 ← (word) 53248
|
||||
(byte*) VIC#0 ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*~) $2 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -200,9 +200,9 @@ main::@return: scope:[main] from main::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC#0 ← (word) 53248
|
||||
(byte*) VIC#0 ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*~) $2 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -284,9 +284,9 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC#0 ← (word) 53248
|
||||
(byte*) VIC#0 ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*~) $2 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -331,9 +331,9 @@ Alias (byte*) BGCOL#0 = (byte*) BGCOL#1 (byte*) BGCOL#2 (byte*~) $2
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC#0 ← (word) 53248
|
||||
(byte*) VIC#0 ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) BGCOL#0 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -367,9 +367,9 @@ Self Phi Eliminated (byte*) SCREEN#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC#0 ← (word) 53248
|
||||
(byte*) VIC#0 ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) BGCOL#0 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -403,9 +403,9 @@ Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC#0 ← (word) 53248
|
||||
(byte*) VIC#0 ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) BGCOL#0 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -436,9 +436,9 @@ Simple Condition (boolean~) main::$1 if((byte) main::i#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) STAR#0 ← (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC#0 ← (word) 53248
|
||||
(byte*) VIC#0 ← ((byte*)) (word) 53248
|
||||
(byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2
|
||||
(byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word~) $0
|
||||
(byte*) BGCOL#0 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1
|
||||
@ -464,9 +464,9 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) STAR#0 = 81
|
||||
Constant (const byte*) VIC#0 = 53248
|
||||
Constant (const byte*) VIC#0 = ((byte*))53248
|
||||
Constant (const byte/signed byte/word/signed word) $0 = 16*2
|
||||
Constant (const byte) RED#0 = 2
|
||||
Constant (const byte) main::i#0 = 40
|
||||
@ -580,11 +580,11 @@ FINAL SYMBOL TABLE
|
||||
(byte) RED
|
||||
(const byte) RED#0 = (byte/signed byte/word/signed word) 2
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) STAR
|
||||
(const byte) STAR#0 = (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC
|
||||
(const byte*) VIC#0 = (word) 53248
|
||||
(const byte*) VIC#0 = ((byte*))(word) 53248
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
@ -1022,11 +1022,11 @@ FINAL SYMBOL TABLE
|
||||
(byte) RED
|
||||
(const byte) RED#0 RED = (byte/signed byte/word/signed word) 2
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) STAR
|
||||
(const byte) STAR#0 STAR = (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC
|
||||
(const byte*) VIC#0 VIC = (word) 53248
|
||||
(const byte*) VIC#0 VIC = ((byte*))(word) 53248
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
|
@ -6,11 +6,11 @@
|
||||
(byte) RED
|
||||
(const byte) RED#0 RED = (byte/signed byte/word/signed word) 2
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) STAR
|
||||
(const byte) STAR#0 STAR = (byte/signed byte/word/signed word) 81
|
||||
(byte*) VIC
|
||||
(const byte*) VIC#0 VIC = (word) 53248
|
||||
(const byte*) VIC#0 VIC = ((byte*))(word) 53248
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
|
@ -45,7 +45,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs ← (word/signed word) 4352
|
||||
(byte[15]) fibs ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
*((byte[15]) fibs + (byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 0
|
||||
@ -76,7 +76,7 @@ main::@return: scope:[main] from main::@2
|
||||
Removing empty block main::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs ← (word/signed word) 4352
|
||||
(byte[15]) fibs ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
*((byte[15]) fibs + (byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 0
|
||||
@ -106,7 +106,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs ← (word/signed word) 4352
|
||||
(byte[15]) fibs ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
*((byte[15]) fibs + (byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 0
|
||||
@ -138,7 +138,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs#0 ← (word/signed word) 4352
|
||||
(byte[15]) fibs#0 ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[15]) fibs#1 ← phi( @1/(byte[15]) fibs#3 )
|
||||
@ -172,7 +172,7 @@ main::@return: scope:[main] from main::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs#0 ← (word/signed word) 4352
|
||||
(byte[15]) fibs#0 ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[15]) fibs#1 ← phi( @1/(byte[15]) fibs#3 )
|
||||
@ -232,7 +232,7 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs#0 ← (word/signed word) 4352
|
||||
(byte[15]) fibs#0 ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[15]) fibs#1 ← phi( @1/(byte[15]) fibs#3 )
|
||||
@ -266,7 +266,7 @@ Alias (byte[15]) fibs#0 = (byte[15]) fibs#1 (byte[15]) fibs#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs#0 ← (word/signed word) 4352
|
||||
(byte[15]) fibs#0 ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
*((byte[15]) fibs#0 + (byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 0
|
||||
@ -298,7 +298,7 @@ Self Phi Eliminated (byte[15]) fibs#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs#0 ← (word/signed word) 4352
|
||||
(byte[15]) fibs#0 ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
*((byte[15]) fibs#0 + (byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 0
|
||||
@ -330,7 +330,7 @@ Redundant Phi (byte[15]) fibs#2 (byte[15]) fibs#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs#0 ← (word/signed word) 4352
|
||||
(byte[15]) fibs#0 ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
*((byte[15]) fibs#0 + (byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 0
|
||||
@ -361,7 +361,7 @@ Simple Condition (boolean~) main::$5 if((byte) main::i#1<(byte/signed byte/word/
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[15]) fibs#0 ← (word/signed word) 4352
|
||||
(byte[15]) fibs#0 ← ((byte*)) (word/signed word) 4352
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
*((byte[15]) fibs#0 + (byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 0
|
||||
@ -387,7 +387,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte[15]) fibs#0 = 4352
|
||||
Constant (const byte[15]) fibs#0 = ((byte*))4352
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@ -516,7 +516,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[15]) fibs
|
||||
(const byte[15]) fibs#0 = (word/signed word) 4352
|
||||
(const byte[15]) fibs#0 = ((byte*))(word/signed word) 4352
|
||||
(void()) main()
|
||||
(byte~) main::$1
|
||||
(byte~) main::$3
|
||||
@ -994,7 +994,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[15]) fibs
|
||||
(const byte[15]) fibs#0 fibs = (word/signed word) 4352
|
||||
(const byte[15]) fibs#0 fibs = ((byte*))(word/signed word) 4352
|
||||
(void()) main()
|
||||
(byte~) main::$1 reg byte a 11.0
|
||||
(byte~) main::$3 reg byte alu 22.0
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[15]) fibs
|
||||
(const byte[15]) fibs#0 fibs = (word/signed word) 4352
|
||||
(const byte[15]) fibs#0 fibs = ((byte*))(word/signed word) 4352
|
||||
(void()) main()
|
||||
(byte~) main::$1 reg byte a 11.0
|
||||
(byte~) main::$3 reg byte alu 22.0
|
||||
|
@ -200,10 +200,10 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) buffer1 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2 ← (word/signed word) 4352
|
||||
(byte*) RASTER ← (word) 53266
|
||||
(byte[1000]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER ← ((byte*)) (word) 53266
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call prepare
|
||||
@ -343,10 +343,10 @@ Removing empty block @3
|
||||
Removing empty block plot::@4
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) buffer1 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2 ← (word/signed word) 4352
|
||||
(byte*) RASTER ← (word) 53266
|
||||
(byte[1000]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call prepare
|
||||
@ -464,10 +464,10 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) buffer1 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2 ← (word/signed word) 4352
|
||||
(byte*) RASTER ← (word) 53266
|
||||
(byte[1000]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from @4
|
||||
call prepare param-assignment
|
||||
@ -602,10 +602,10 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from @4
|
||||
(byte[256]) buffer2#15 ← phi( @4/(byte[256]) buffer2#17 )
|
||||
@ -818,10 +818,10 @@ plot::@return: scope:[plot] from plot::@3
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from @4
|
||||
(byte[256]) buffer2#15 ← phi( @4/(byte[256]) buffer2#17 )
|
||||
@ -1216,10 +1216,10 @@ Culled Empty Block (label) @5
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from @4
|
||||
(byte[256]) buffer2#15 ← phi( @4/(byte[256]) buffer2#17 )
|
||||
@ -1454,10 +1454,10 @@ Alias (byte*) plot::line#1 = (byte*~) plot::$5
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from @4
|
||||
call prepare param-assignment
|
||||
@ -1637,10 +1637,10 @@ Self Phi Eliminated (byte) plot::y#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from @4
|
||||
call prepare param-assignment
|
||||
@ -1813,10 +1813,10 @@ Redundant Phi (byte) plot::y#2 (byte) plot::y#4
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from @4
|
||||
call prepare param-assignment
|
||||
@ -1970,10 +1970,10 @@ Simple Condition (boolean~) plot::$6 if((byte) plot::y#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte[1000]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte[1000]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[256]) buffer1#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte[256]) buffer2#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
to:@4
|
||||
main: scope:[main] from @4
|
||||
call prepare param-assignment
|
||||
@ -2106,10 +2106,10 @@ plot::@return: scope:[plot] from plot::@3
|
||||
to:@end
|
||||
@end: scope:[] from @4
|
||||
|
||||
Constant (const byte[1000]) SCREEN#0 = 1024
|
||||
Constant (const byte[256]) buffer1#0 = 4096
|
||||
Constant (const byte[256]) buffer2#0 = 4352
|
||||
Constant (const byte*) RASTER#0 = 53266
|
||||
Constant (const byte[1000]) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte[256]) buffer1#0 = ((byte*))4096
|
||||
Constant (const byte[256]) buffer2#0 = ((byte*))4352
|
||||
Constant (const byte*) RASTER#0 = ((byte*))53266
|
||||
Constant (const byte) main::c#0 = 25
|
||||
Constant (const byte) prepare::i#0 = 0
|
||||
Constant (const byte) flip::srcIdx#0 = 0
|
||||
@ -3449,13 +3449,13 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 = (word) 53266
|
||||
(const byte*) RASTER#0 = ((byte*))(word) 53266
|
||||
(byte[1000]) SCREEN
|
||||
(const byte[1000]) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte[1000]) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte[256]) buffer1
|
||||
(const byte[256]) buffer1#0 = (word/signed word) 4096
|
||||
(const byte[256]) buffer1#0 = ((byte*))(word/signed word) 4096
|
||||
(byte[256]) buffer2
|
||||
(const byte[256]) buffer2#0 = (word/signed word) 4352
|
||||
(const byte[256]) buffer2#0 = ((byte*))(word/signed word) 4352
|
||||
(void()) flip()
|
||||
(byte~) flip::$0
|
||||
(byte~) flip::$4
|
||||
@ -6064,13 +6064,13 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = (word) 53266
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word) 53266
|
||||
(byte[1000]) SCREEN
|
||||
(const byte[1000]) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1000]) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[256]) buffer1
|
||||
(const byte[256]) buffer1#0 buffer1 = (word/signed word) 4096
|
||||
(const byte[256]) buffer1#0 buffer1 = ((byte*))(word/signed word) 4096
|
||||
(byte[256]) buffer2
|
||||
(const byte[256]) buffer2#0 buffer2 = (word/signed word) 4352
|
||||
(const byte[256]) buffer2#0 buffer2 = ((byte*))(word/signed word) 4352
|
||||
(void()) flip()
|
||||
(byte~) flip::$0 reg byte a 2002.0
|
||||
(byte~) flip::$4 reg byte a 202.0
|
||||
|
@ -2,13 +2,13 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = (word) 53266
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word) 53266
|
||||
(byte[1000]) SCREEN
|
||||
(const byte[1000]) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1000]) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[256]) buffer1
|
||||
(const byte[256]) buffer1#0 buffer1 = (word/signed word) 4096
|
||||
(const byte[256]) buffer1#0 buffer1 = ((byte*))(word/signed word) 4096
|
||||
(byte[256]) buffer2
|
||||
(const byte[256]) buffer2#0 buffer2 = (word/signed word) 4352
|
||||
(const byte[256]) buffer2#0 buffer2 = ((byte*))(word/signed word) 4352
|
||||
(void()) flip()
|
||||
(byte~) flip::$0 reg byte a 2002.0
|
||||
(byte~) flip::$4 reg byte a 202.0
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
// Minimal classic for() loop
|
||||
|
||||
byte* SCREEN = $0400;
|
||||
byte* SCREEN = (byte*)$0400;
|
||||
|
||||
void main() {
|
||||
for(byte i=0; i!=100; i++) {
|
||||
@ -12,7 +12,8 @@ void main() {
|
||||
|
||||
Adding pre/post-modifier (byte) main::i ← ++ (byte) main::i
|
||||
PROGRAM
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*~) $0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN ← (byte*~) $0
|
||||
proc (void()) main()
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
main::@1:
|
||||
@ -26,6 +27,7 @@ endproc // main()
|
||||
call main
|
||||
|
||||
SYMBOLS
|
||||
(byte*~) $0
|
||||
(byte*) SCREEN
|
||||
(void()) main()
|
||||
(boolean~) main::$0
|
||||
@ -35,7 +37,8 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*~) $0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN ← (byte*~) $0
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -59,7 +62,8 @@ main::@return: scope:[main] from main::@2
|
||||
Removing empty block main::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*~) $0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN ← (byte*~) $0
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -82,7 +86,8 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*~) $0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN ← (byte*~) $0
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -108,7 +113,8 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*~) $0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← (byte*~) $0
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#2 ← phi( @1/(byte*) SCREEN#3 )
|
||||
@ -135,7 +141,8 @@ main::@return: scope:[main] from main::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*~) $0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← (byte*~) $0
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#2 ← phi( @1/(byte*) SCREEN#3 )
|
||||
@ -161,6 +168,7 @@ main::@return: scope:[main] from main::@1
|
||||
@end: scope:[] from @2
|
||||
|
||||
INITIAL SSA SYMBOL TABLE
|
||||
(byte*~) $0
|
||||
(label) @1
|
||||
(label) @2
|
||||
(label) @begin
|
||||
@ -183,7 +191,8 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*~) $0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← (byte*~) $0
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#2 ← phi( @1/(byte*) SCREEN#3 )
|
||||
@ -206,11 +215,11 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Alias (byte*) SCREEN#0 = (byte*) SCREEN#2 (byte*) SCREEN#3
|
||||
Alias (byte*) SCREEN#0 = (byte*) SCREEN#2 (byte*) SCREEN#3 (byte*~) $0
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -235,7 +244,7 @@ Self Phi Eliminated (byte*) SCREEN#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -260,7 +269,7 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -284,7 +293,7 @@ Simple Condition (boolean~) main::$0 if((byte) main::i#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -303,7 +312,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@ -355,7 +364,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
@ -733,7 +742,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
|
@ -49,8 +49,8 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -83,8 +83,8 @@ main::@return: scope:[main] from main::@4
|
||||
Removing empty block main::@4
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -116,8 +116,8 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -154,8 +154,8 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN2#4 ← phi( @1/(byte*) SCREEN2#5 )
|
||||
@ -197,8 +197,8 @@ main::@return: scope:[main] from main::@2
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN2#4 ← phi( @1/(byte*) SCREEN2#5 )
|
||||
@ -275,8 +275,8 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN2#4 ← phi( @1/(byte*) SCREEN2#5 )
|
||||
@ -321,8 +321,8 @@ Alias (byte*) SCREEN2#2 = (byte*) SCREEN2#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -362,8 +362,8 @@ Self Phi Eliminated (byte*) SCREEN2#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -402,8 +402,8 @@ Redundant Phi (byte*) SCREEN2#1 (byte*) SCREEN2#2
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -438,8 +438,8 @@ Simple Condition (boolean~) main::$1 if((byte) main::j#1!=(byte/word/signed word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN1#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1280
|
||||
(byte*) SCREEN1#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word) 1280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -467,8 +467,8 @@ main::@return: scope:[main] from main::@2
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN1#0 = 1024
|
||||
Constant (const byte*) SCREEN2#0 = 1280
|
||||
Constant (const byte*) SCREEN1#0 = ((byte*))1024
|
||||
Constant (const byte*) SCREEN2#0 = ((byte*))1280
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Constant (const byte) main::j#0 = 100
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
@ -569,9 +569,9 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN1
|
||||
(const byte*) SCREEN1#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN1#0 = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 = (word/signed word) 1280
|
||||
(const byte*) SCREEN2#0 = ((byte*))(word/signed word) 1280
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
@ -1098,9 +1098,9 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN1
|
||||
(const byte*) SCREEN1#0 SCREEN1 = (word/signed word) 1024
|
||||
(const byte*) SCREEN1#0 SCREEN1 = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 SCREEN2 = (word/signed word) 1280
|
||||
(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word) 1280
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -2,9 +2,9 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN1
|
||||
(const byte*) SCREEN1#0 SCREEN1 = (word/signed word) 1024
|
||||
(const byte*) SCREEN1#0 SCREEN1 = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 SCREEN2 = (word/signed word) 1280
|
||||
(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word) 1280
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -210,12 +210,12 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) CHARSET ← (word/signed word) 8192
|
||||
(byte*) CHARGEN ← (word) 53248
|
||||
(byte*) PROCPORT ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018 ← (word) 53272
|
||||
(byte*) CHARSET4 ← (word/signed word) 10240
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
@ -334,12 +334,12 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) CHARSET ← (word/signed word) 8192
|
||||
(byte*) CHARGEN ← (word) 53248
|
||||
(byte*) PROCPORT ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018 ← (word) 53272
|
||||
(byte*) CHARSET4 ← (word/signed word) 10240
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -468,12 +468,12 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -688,12 +688,12 @@ main::@return: scope:[main] from main::@12
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -1111,12 +1111,12 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -1334,12 +1334,12 @@ Inversing boolean not (boolean~) main::$38 ← (byte) main::bits#3 < (byte/signe
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -1606,12 +1606,12 @@ Alias (byte*) D018#1 = (byte*) D018#2
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -1766,12 +1766,12 @@ Alias (byte*) D018#10 = (byte*) D018#11 (byte*) D018#7 (byte*) D018#5 (byte*) D0
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -1894,12 +1894,12 @@ Self Phi Eliminated (byte*) D018#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -2020,12 +2020,12 @@ Redundant Phi (byte*) D018#1 (byte*) D018#10
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -2138,12 +2138,12 @@ Simple Condition (boolean~) main::$44 if((byte) main::i#1!=(byte/signed byte/wor
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← (word) 53248
|
||||
(byte*) PROCPORT#0 ← (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← (word) 53272
|
||||
(byte*) CHARSET4#0 ← (word/signed word) 10240
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) CHARSET#0 ← ((byte*)) (word/signed word) 8192
|
||||
(byte*) CHARGEN#0 ← ((byte*)) (word) 53248
|
||||
(byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word) 1
|
||||
(byte*) D018#0 ← ((byte*)) (word) 53272
|
||||
(byte*) CHARSET4#0 ← ((byte*)) (word/signed word) 10240
|
||||
(byte[]) bits_count#0 ← { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -2241,12 +2241,12 @@ main::@return: scope:[main] from main::@12
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) CHARSET#0 = 8192
|
||||
Constant (const byte*) CHARGEN#0 = 53248
|
||||
Constant (const byte*) PROCPORT#0 = 1
|
||||
Constant (const byte*) D018#0 = 53272
|
||||
Constant (const byte*) CHARSET4#0 = 10240
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte*) CHARSET#0 = ((byte*))8192
|
||||
Constant (const byte*) CHARGEN#0 = ((byte*))53248
|
||||
Constant (const byte*) PROCPORT#0 = ((byte*))1
|
||||
Constant (const byte*) D018#0 = ((byte*))53272
|
||||
Constant (const byte*) CHARSET4#0 = ((byte*))10240
|
||||
Constant (const byte[]) bits_count#0 = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }
|
||||
Constant (const byte) main::bits_gen#0 = 0
|
||||
Constant (const byte) main::i#0 = 0
|
||||
@ -2591,17 +2591,17 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) CHARGEN
|
||||
(const byte*) CHARGEN#0 = (word) 53248
|
||||
(const byte*) CHARGEN#0 = ((byte*))(word) 53248
|
||||
(byte*) CHARSET
|
||||
(const byte*) CHARSET#0 = (word/signed word) 8192
|
||||
(const byte*) CHARSET#0 = ((byte*))(word/signed word) 8192
|
||||
(byte*) CHARSET4
|
||||
(const byte*) CHARSET4#0 = (word/signed word) 10240
|
||||
(const byte*) CHARSET4#0 = ((byte*))(word/signed word) 10240
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 = (word) 53272
|
||||
(const byte*) D018#0 = ((byte*))(word) 53272
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 = (byte/signed byte/word/signed word) 1
|
||||
(const byte*) PROCPORT#0 = ((byte*))(byte/signed byte/word/signed word) 1
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte[]) bits_count
|
||||
(const byte[]) bits_count#0 = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
(void()) main()
|
||||
@ -5209,17 +5209,17 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) CHARGEN
|
||||
(const byte*) CHARGEN#0 CHARGEN = (word) 53248
|
||||
(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word) 53248
|
||||
(byte*) CHARSET
|
||||
(const byte*) CHARSET#0 CHARSET = (word/signed word) 8192
|
||||
(const byte*) CHARSET#0 CHARSET = ((byte*))(word/signed word) 8192
|
||||
(byte*) CHARSET4
|
||||
(const byte*) CHARSET4#0 CHARSET4 = (word/signed word) 10240
|
||||
(const byte*) CHARSET4#0 CHARSET4 = ((byte*))(word/signed word) 10240
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 D018 = (word) 53272
|
||||
(const byte*) D018#0 D018 = ((byte*))(word) 53272
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 PROCPORT = (byte/signed byte/word/signed word) 1
|
||||
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word) 1
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[]) bits_count
|
||||
(const byte[]) bits_count#0 bits_count = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
(void()) main()
|
||||
|
@ -2,17 +2,17 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) CHARGEN
|
||||
(const byte*) CHARGEN#0 CHARGEN = (word) 53248
|
||||
(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word) 53248
|
||||
(byte*) CHARSET
|
||||
(const byte*) CHARSET#0 CHARSET = (word/signed word) 8192
|
||||
(const byte*) CHARSET#0 CHARSET = ((byte*))(word/signed word) 8192
|
||||
(byte*) CHARSET4
|
||||
(const byte*) CHARSET4#0 CHARSET4 = (word/signed word) 10240
|
||||
(const byte*) CHARSET4#0 CHARSET4 = ((byte*))(word/signed word) 10240
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 D018 = (word) 53272
|
||||
(const byte*) D018#0 D018 = ((byte*))(word) 53272
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 PROCPORT = (byte/signed byte/word/signed word) 1
|
||||
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word) 1
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[]) bits_count
|
||||
(const byte[]) bits_count#0 bits_count = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4 }
|
||||
(void()) main()
|
||||
|
@ -41,7 +41,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -72,7 +72,7 @@ main::@return: scope:[main] from main::@4
|
||||
Removing empty block main::@4
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -102,7 +102,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -136,7 +136,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#3 ← phi( @1/(byte*) SCREEN#5 )
|
||||
@ -174,7 +174,7 @@ main::@return: scope:[main] from main::@2
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#3 ← phi( @1/(byte*) SCREEN#5 )
|
||||
@ -241,7 +241,7 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#3 ← phi( @1/(byte*) SCREEN#5 )
|
||||
@ -279,7 +279,7 @@ Inversing boolean not (boolean~) main::$1 ← (byte) main::i#2 >= (byte/signed b
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#3 ← phi( @1/(byte*) SCREEN#5 )
|
||||
@ -318,7 +318,7 @@ Alias (byte*) SCREEN#1 = (byte*) SCREEN#2
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -352,7 +352,7 @@ Alias (byte*) SCREEN#1 = (byte*) SCREEN#4
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -383,7 +383,7 @@ Self Phi Eliminated (byte*) SCREEN#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -414,7 +414,7 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -445,7 +445,7 @@ Simple Condition (boolean~) main::$2 if((byte) main::i#1<(byte/signed byte/word/
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -469,7 +469,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@ -529,7 +529,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
@ -965,7 +965,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -30,7 +30,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL ← (word) 53280
|
||||
(byte*) BGCOL ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
to:main::@1
|
||||
@ -52,7 +52,7 @@ main::@return: scope:[main] from main::@2
|
||||
Removing empty block main::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL ← (word) 53280
|
||||
(byte*) BGCOL ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
to:main::@1
|
||||
@ -73,7 +73,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL ← (word) 53280
|
||||
(byte*) BGCOL ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
to:main::@1
|
||||
@ -97,7 +97,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) BGCOL#2 ← phi( @1/(byte*) BGCOL#3 )
|
||||
@ -121,7 +121,7 @@ main::@return: scope:[main] from main::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) BGCOL#2 ← phi( @1/(byte*) BGCOL#3 )
|
||||
@ -161,7 +161,7 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) BGCOL#2 ← phi( @1/(byte*) BGCOL#3 )
|
||||
@ -185,7 +185,7 @@ Alias (byte*) BGCOL#0 = (byte*) BGCOL#2 (byte*) BGCOL#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
to:main::@1
|
||||
@ -207,7 +207,7 @@ Self Phi Eliminated (byte*) BGCOL#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
to:main::@1
|
||||
@ -229,7 +229,7 @@ Redundant Phi (byte*) BGCOL#1 (byte*) BGCOL#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
to:main::@1
|
||||
@ -246,7 +246,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) BGCOL#0 = 53280
|
||||
Constant (const byte*) BGCOL#0 = ((byte*))53280
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -271,7 +271,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 = (word) 53280
|
||||
(const byte*) BGCOL#0 = ((byte*))(word) 53280
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
@ -543,7 +543,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
|
@ -51,7 +51,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
@ -87,7 +87,7 @@ main::@return: scope:[main] from main::@4
|
||||
Removing empty block main::@4
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
@ -122,7 +122,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -160,7 +160,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -210,7 +210,7 @@ main::@return: scope:[main] from main::@2
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -303,7 +303,7 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -353,7 +353,7 @@ Inversing boolean not (boolean~) main::$2 ← (byte) main::j#1 != (byte/signed b
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -406,7 +406,7 @@ Alias (byte*) SCREEN#1 = (byte*) SCREEN#5
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -450,7 +450,7 @@ Alias (byte*) SCREEN#1 = (byte*) SCREEN#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -490,7 +490,7 @@ Self Phi Eliminated (byte*) SCREEN#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -530,7 +530,7 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -568,7 +568,7 @@ Simple Condition (boolean~) main::$3 if((byte) main::i#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TXT#0 ← { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -599,7 +599,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte[]) TXT#0 = { 3, 1, 13, 5, 12, 15, 20, 32 }
|
||||
Constant (const byte) main::j#0 = 0
|
||||
Constant (const byte) main::i#0 = 0
|
||||
@ -681,7 +681,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte[]) TXT
|
||||
(const byte[]) TXT#0 = { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
(void()) main()
|
||||
@ -1256,7 +1256,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[]) TXT
|
||||
(const byte[]) TXT#0 TXT = { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
(void()) main()
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[]) TXT
|
||||
(const byte[]) TXT#0 TXT = { (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 13, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 12, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 20, (byte/signed byte/word/signed word) 32 }
|
||||
(void()) main()
|
||||
|
@ -55,7 +55,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
@ -92,7 +92,7 @@ main::@return: scope:[main] from main::@4
|
||||
Removing empty block main::@4
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
@ -128,7 +128,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -167,7 +167,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -218,7 +218,7 @@ main::@return: scope:[main] from main::@2
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -313,7 +313,7 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -364,7 +364,7 @@ Inversing boolean not (boolean~) main::$2 ← (byte) main::i#1 != (byte/signed b
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -419,7 +419,7 @@ Alias (byte[]) TEXT#1 = (byte[]) TEXT#5
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -465,7 +465,7 @@ Alias (byte[]) TEXT#1 = (byte[]) TEXT#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -507,7 +507,7 @@ Self Phi Eliminated (byte*) SCREEN#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -548,7 +548,7 @@ Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -587,7 +587,7 @@ Simple Condition (boolean~) main::$4 if((byte*) main::cursor#1<(byte*~) main::$3
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte[]) TEXT#0 ← (string) "camelot "
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -619,7 +619,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte[]) TEXT#0 = "camelot "
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Constant (const byte) main::i#2 = 0
|
||||
@ -734,7 +734,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte[]) TEXT
|
||||
(const byte[]) TEXT#0 = (string) "camelot "
|
||||
(void()) main()
|
||||
@ -1383,7 +1383,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[]) TEXT
|
||||
(const byte[]) TEXT#0 TEXT = (string) "camelot "
|
||||
(void()) main()
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[]) TEXT
|
||||
(const byte[]) TEXT#0 TEXT = (string) "camelot "
|
||||
(void()) main()
|
||||
|
@ -38,7 +38,7 @@ INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte[16]) main::buf ← (word/signed word) 4352
|
||||
(byte[16]) main::buf ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -65,7 +65,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte[16]) main::buf ← (word/signed word) 4352
|
||||
(byte[16]) main::buf ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -91,7 +91,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[16]) main::buf ← (word/signed word) 4352
|
||||
(byte[16]) main::buf ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -118,7 +118,7 @@ CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[16]) main::buf#0 ← (word/signed word) 4352
|
||||
(byte[16]) main::buf#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -146,7 +146,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[16]) main::buf#0 ← (word/signed word) 4352
|
||||
(byte[16]) main::buf#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -196,7 +196,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[16]) main::buf#0 ← (word/signed word) 4352
|
||||
(byte[16]) main::buf#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -224,7 +224,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[16]) main::buf#0 ← (word/signed word) 4352
|
||||
(byte[16]) main::buf#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -251,7 +251,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[16]) main::buf#0 ← (word/signed word) 4352
|
||||
(byte[16]) main::buf#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -278,7 +278,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[16]) main::buf#0 ← (word/signed word) 4352
|
||||
(byte[16]) main::buf#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -304,7 +304,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[16]) main::buf#0 ← (word/signed word) 4352
|
||||
(byte[16]) main::buf#0 ← ((byte*)) (word/signed word) 4352
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 5
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@1
|
||||
@ -323,7 +323,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte[16]) main::buf#0 = 4352
|
||||
Constant (const byte[16]) main::buf#0 = ((byte*))4352
|
||||
Constant (const byte) main::i#0 = 5
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@ -436,7 +436,7 @@ FINAL SYMBOL TABLE
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
(byte[16]) main::buf
|
||||
(const byte[16]) main::buf#0 = (word/signed word) 4352
|
||||
(const byte[16]) main::buf#0 = ((byte*))(word/signed word) 4352
|
||||
(byte) main::i
|
||||
(byte) main::i#1
|
||||
(byte) main::i#2
|
||||
@ -845,7 +845,7 @@ FINAL SYMBOL TABLE
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
(byte[16]) main::buf
|
||||
(const byte[16]) main::buf#0 buf = (word/signed word) 4352
|
||||
(const byte[16]) main::buf#0 buf = ((byte*))(word/signed word) 4352
|
||||
(byte) main::i
|
||||
(byte) main::i#1 reg byte x 16.5
|
||||
(byte) main::i#2 reg byte x 14.666666666666666
|
||||
|
@ -6,7 +6,7 @@
|
||||
(label) main::@1
|
||||
(label) main::@return
|
||||
(byte[16]) main::buf
|
||||
(const byte[16]) main::buf#0 buf = (word/signed word) 4352
|
||||
(const byte[16]) main::buf#0 buf = ((byte*))(word/signed word) 4352
|
||||
(byte) main::i
|
||||
(byte) main::i#1 reg byte x 16.5
|
||||
(byte) main::i#2 reg byte x 14.666666666666666
|
||||
|
@ -60,7 +60,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char ← (byte) 'a'
|
||||
(byte) num ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -97,7 +97,7 @@ main::@return: scope:[main] from main::@2
|
||||
Removing empty block main::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char ← (byte) 'a'
|
||||
(byte) num ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -133,7 +133,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char ← (byte) 'a'
|
||||
(byte) num ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -172,7 +172,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char#0 ← (byte) 'a'
|
||||
(byte) num#0 ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -222,7 +222,7 @@ main::@return: scope:[main] from main::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char#0 ← (byte) 'a'
|
||||
(byte) num#0 ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -317,7 +317,7 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char#0 ← (byte) 'a'
|
||||
(byte) num#0 ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -371,7 +371,7 @@ Alias (byte[]) nums#0 = (byte[]) nums#2 (byte[]) nums#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char#0 ← (byte) 'a'
|
||||
(byte) num#0 ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -412,7 +412,7 @@ Self Phi Eliminated (byte[]) nums#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char#0 ← (byte) 'a'
|
||||
(byte) num#0 ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -453,7 +453,7 @@ Redundant Phi (byte[]) nums#1 (byte[]) nums#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char#0 ← (byte) 'a'
|
||||
(byte) num#0 ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -489,7 +489,7 @@ Simple Condition (boolean~) main::$4 if((byte) main::i#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) char#0 ← (byte) 'a'
|
||||
(byte) num#0 ← (byte/signed byte/word/signed word) 1
|
||||
(string~) $0 ← (string) "bc" + (string) "d"
|
||||
@ -520,7 +520,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) char#0 = 'a'
|
||||
Constant (const byte) num#0 = 1
|
||||
Constant (const string) $0 = "bc"+"d"
|
||||
@ -687,7 +687,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) char
|
||||
(const byte) char#0 = (byte) 'a'
|
||||
(void()) main()
|
||||
@ -1182,7 +1182,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) char
|
||||
(const byte) char#0 char = (byte) 'a'
|
||||
(void()) main()
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) char
|
||||
(const byte) char#0 char = (byte) 'a'
|
||||
(void()) main()
|
||||
|
@ -56,7 +56,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 100
|
||||
@ -98,7 +98,7 @@ Removing empty block @1
|
||||
Removing empty block nest::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 100
|
||||
@ -133,7 +133,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 100
|
||||
@ -175,7 +175,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) SCREEN#4 ← phi( @2/(byte*) SCREEN#6 )
|
||||
@ -221,7 +221,7 @@ nest::@return: scope:[nest] from nest::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) SCREEN#4 ← phi( @2/(byte*) SCREEN#6 )
|
||||
@ -301,7 +301,7 @@ Culled Empty Block (label) @3
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) SCREEN#4 ← phi( @2/(byte*) SCREEN#6 )
|
||||
@ -349,7 +349,7 @@ Alias (byte*) SCREEN#2 = (byte*) SCREEN#5 (byte*) SCREEN#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 100
|
||||
@ -391,7 +391,7 @@ Self Phi Eliminated (byte*) SCREEN#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 100
|
||||
@ -433,7 +433,7 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#2
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 100
|
||||
@ -473,7 +473,7 @@ Simple Condition (boolean~) nest::$0 if((byte) nest::j#1>(byte/signed byte/word/
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 100
|
||||
@ -506,7 +506,7 @@ nest::@return: scope:[nest] from nest::@1
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 100
|
||||
Constant (const byte) nest::j#0 = 100
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
@ -586,7 +586,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@3
|
||||
@ -1196,7 +1196,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@3
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@3
|
||||
|
@ -116,7 +116,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 100
|
||||
@ -200,7 +200,7 @@ Removing empty block @2
|
||||
Removing empty block nest2::@4
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 100
|
||||
@ -271,7 +271,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 100
|
||||
@ -356,7 +356,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#13 ← phi( @3/(byte*) SCREEN#15 )
|
||||
@ -462,7 +462,7 @@ nest2::@return: scope:[nest2] from nest2::@3
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#13 ← phi( @3/(byte*) SCREEN#15 )
|
||||
@ -650,7 +650,7 @@ Culled Empty Block (label) @4
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#13 ← phi( @3/(byte*) SCREEN#15 )
|
||||
@ -764,7 +764,7 @@ Alias (byte*) SCREEN#1 = (byte*) SCREEN#4
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 100
|
||||
@ -859,7 +859,7 @@ Self Phi Eliminated (byte) nest2::i#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 100
|
||||
@ -954,7 +954,7 @@ Redundant Phi (byte) nest2::i#2 (byte) nest2::i#4
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 100
|
||||
@ -1043,7 +1043,7 @@ Simple Condition (boolean~) nest2::$1 if((byte) nest2::i#1>(byte/signed byte/wor
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 100
|
||||
@ -1117,7 +1117,7 @@ nest2::@return: scope:[nest2] from nest2::@3
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 100
|
||||
Constant (const byte) main::j#0 = 100
|
||||
Constant (const byte) nest1::i#0 = 100
|
||||
@ -1427,7 +1427,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
@ -2742,7 +2742,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -67,7 +67,7 @@ INITIAL CONTROL FLOW GRAPH
|
||||
(byte) cnt ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt2 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt3 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte~) main::$0 ← call inccnt
|
||||
@ -105,7 +105,7 @@ CONTROL FLOW GRAPH
|
||||
(byte) cnt ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt2 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt3 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from
|
||||
(byte~) main::$0 ← call inccnt
|
||||
@ -145,7 +145,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
(byte) cnt ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt2 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt3 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) inccnt::return ← call inccnt param-assignment
|
||||
@ -203,7 +203,7 @@ CONTROL FLOW GRAPH SSA
|
||||
(byte) cnt#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt2#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt3#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte[256]) SCREEN#3 ← phi( @2/(byte[256]) SCREEN#4 )
|
||||
@ -289,7 +289,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
(byte) cnt#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt2#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt3#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte[256]) SCREEN#3 ← phi( @2/(byte[256]) SCREEN#4 )
|
||||
@ -466,7 +466,7 @@ CONTROL FLOW GRAPH
|
||||
(byte) cnt#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt2#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte) cnt3#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
call inccnt param-assignment
|
||||
@ -509,7 +509,7 @@ Not aliassing across scopes: inccnt::return#0 cnt#1
|
||||
Constant (const byte) cnt#0 = 0
|
||||
Constant (const byte) cnt2#0 = 0
|
||||
Constant (const byte) cnt3#0 = 0
|
||||
Constant (const byte[256]) SCREEN#0 = 1024
|
||||
Constant (const byte[256]) SCREEN#0 = ((byte*))1024
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -686,7 +686,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[256]) SCREEN
|
||||
(const byte[256]) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte[256]) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) cnt
|
||||
(byte) cnt#1
|
||||
(byte) cnt#11
|
||||
@ -1303,7 +1303,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[256]) SCREEN
|
||||
(const byte[256]) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[256]) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) cnt
|
||||
(byte) cnt#1 reg byte x 0.75
|
||||
(byte) cnt#11 reg byte x 4.0
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[256]) SCREEN
|
||||
(const byte[256]) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[256]) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) cnt
|
||||
(byte) cnt#1 reg byte x 0.75
|
||||
(byte) cnt#11 reg byte x 4.0
|
||||
|
@ -51,7 +51,7 @@ SYMBOLS
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) cnt ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call inccnt
|
||||
@ -81,7 +81,7 @@ Removing empty block @1
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) cnt ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call inccnt
|
||||
@ -112,7 +112,7 @@ inccnt modifies cnt
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte) cnt ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
call inccnt param-assignment
|
||||
@ -153,7 +153,7 @@ Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte) cnt#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte[256]) SCREEN#3 ← phi( @2/(byte[256]) SCREEN#4 )
|
||||
@ -203,7 +203,7 @@ inccnt::@return: scope:[inccnt] from inccnt
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte) cnt#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte[256]) SCREEN#3 ← phi( @2/(byte[256]) SCREEN#4 )
|
||||
@ -294,7 +294,7 @@ Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) cnt#0 ← (byte/signed byte/word/signed word) 0
|
||||
(byte[256]) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[256]) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
call inccnt param-assignment
|
||||
@ -326,7 +326,7 @@ inccnt::@return: scope:[inccnt] from inccnt
|
||||
@end: scope:[] from @3
|
||||
|
||||
Constant (const byte) cnt#0 = 0
|
||||
Constant (const byte[256]) SCREEN#0 = 1024
|
||||
Constant (const byte[256]) SCREEN#0 = ((byte*))1024
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -468,7 +468,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[256]) SCREEN
|
||||
(const byte[256]) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte[256]) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) cnt
|
||||
(byte) cnt#1
|
||||
(byte) cnt#11
|
||||
@ -936,7 +936,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[256]) SCREEN
|
||||
(const byte[256]) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[256]) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) cnt
|
||||
(byte) cnt#1 reg byte x 1.6
|
||||
(byte) cnt#11 reg byte x 4.0
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte[256]) SCREEN
|
||||
(const byte[256]) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[256]) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) cnt
|
||||
(byte) cnt#1 reg byte x 1.6
|
||||
(byte) cnt#11 reg byte x 4.0
|
||||
|
@ -75,7 +75,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -128,7 +128,7 @@ Removing empty block @1
|
||||
Removing empty block @2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -174,7 +174,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -237,7 +237,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#6 ← phi( @3/(byte*) SCREEN#10 )
|
||||
@ -312,7 +312,7 @@ plot::@return: scope:[plot] from plot
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#6 ← phi( @3/(byte*) SCREEN#10 )
|
||||
@ -443,7 +443,7 @@ Culled Empty Block (label) @4
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN#6 ← phi( @3/(byte*) SCREEN#10 )
|
||||
@ -526,7 +526,7 @@ Alias (byte*) SCREEN#2 = (byte*) SCREEN#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -594,7 +594,7 @@ Alias (byte*) SCREEN#1 = (byte*) SCREEN#2
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -662,7 +662,7 @@ Self Phi Eliminated (byte*) SCREEN#5
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -726,7 +726,7 @@ Redundant Phi (byte*) SCREEN#5 (byte*) SCREEN#4
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -787,7 +787,7 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -848,7 +848,7 @@ Simple Condition (boolean~) main::$3 if((byte) main::j#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -902,7 +902,7 @@ plot::@return: scope:[plot] from plot
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Constant (const byte) main::j#0 = 10
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
@ -1086,7 +1086,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::l)
|
||||
(byte~) line::$1
|
||||
(label) line::@1
|
||||
@ -2045,7 +2045,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::l)
|
||||
(byte~) line::$1 reg byte a 4.0
|
||||
(label) line::@1
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::l)
|
||||
(byte~) line::$1 reg byte a 4.0
|
||||
(label) line::@1
|
||||
|
@ -71,7 +71,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -122,7 +122,7 @@ Removing empty block main::@6
|
||||
Removing empty block @1
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -169,7 +169,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -229,7 +229,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) SCREEN#5 ← phi( @2/(byte*) SCREEN#11 )
|
||||
@ -303,7 +303,7 @@ plot::@return: scope:[plot] from plot
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) SCREEN#5 ← phi( @2/(byte*) SCREEN#11 )
|
||||
@ -433,7 +433,7 @@ Culled Empty Block (label) @3
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) SCREEN#5 ← phi( @2/(byte*) SCREEN#11 )
|
||||
@ -516,7 +516,7 @@ Alias (byte*) SCREEN#10 = (byte*) SCREEN#4
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -585,7 +585,7 @@ Self Phi Eliminated (byte*) SCREEN#10
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -651,7 +651,7 @@ Redundant Phi (byte*) SCREEN#10 (byte*) SCREEN#3
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -712,7 +712,7 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -774,7 +774,7 @@ Simple Condition (boolean~) main::$5 if((byte) main::k#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -827,7 +827,7 @@ plot::@return: scope:[plot] from plot
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Constant (const byte) main::j#0 = 0
|
||||
Constant (const byte) main::k#0 = 0
|
||||
@ -1001,7 +1001,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
@ -1920,7 +1920,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
|
@ -27,8 +27,8 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
[14] if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@2 [ main::j#1 ] ( main:0 [ main::j#1 ] )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
[15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] )
|
||||
[16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] )
|
||||
[15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] )
|
||||
[16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] )
|
||||
[17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
|
@ -24,8 +24,8 @@ void main() {
|
||||
}
|
||||
|
||||
// Incrementing directly on a word
|
||||
++*$d020;
|
||||
--*($d000+$21);
|
||||
++*(byte*)$d020;
|
||||
--*(byte*)($d000+$21);
|
||||
|
||||
// Increment on a const named pointer
|
||||
byte* BGCOL = $d020;
|
||||
@ -33,8 +33,8 @@ void main() {
|
||||
|
||||
|
||||
}
|
||||
Adding pre/post-modifier *((word) 53280) ← ++ *((word) 53280)
|
||||
Adding pre/post-modifier *((var) main::$13) ← -- *((var) main::$13)
|
||||
Adding pre/post-modifier *((var) main::$13) ← ++ *((var) main::$13)
|
||||
Adding pre/post-modifier *((var) main::$17) ← -- *((var) main::$17)
|
||||
Adding pre/post-modifier *((byte*) main::BGCOL) ← ++ *((byte*) main::BGCOL)
|
||||
PROGRAM
|
||||
proc (void()) main()
|
||||
@ -66,11 +66,17 @@ main::@2:
|
||||
(byte) main::j ← ++ (byte) main::j
|
||||
(boolean~) main::$12 ← (byte) main::j != (byte/signed byte/word/signed word) 11
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL ← (word) 53280
|
||||
*((byte*) main::BGCOL) ← ++ *((byte*) main::BGCOL)
|
||||
main::@return:
|
||||
@ -85,10 +91,16 @@ SYMBOLS
|
||||
(byte*~) main::$10
|
||||
(byte*~) main::$11
|
||||
(boolean~) main::$12
|
||||
(word~) main::$13
|
||||
(word~) main::$14
|
||||
(word~) main::$15
|
||||
(byte*~) main::$13
|
||||
(byte*~) main::$14
|
||||
(byte*~) main::$15
|
||||
(word~) main::$16
|
||||
(byte*~) main::$17
|
||||
(word~) main::$18
|
||||
(byte*~) main::$19
|
||||
(byte*~) main::$2
|
||||
(word~) main::$20
|
||||
(byte*~) main::$21
|
||||
(boolean~) main::$3
|
||||
(byte*~) main::$4
|
||||
(byte*~) main::$5
|
||||
@ -110,7 +122,7 @@ INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte*) main::screen ← (word/signed word) 1024
|
||||
(byte*) main::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a ← *((byte*~) main::$0)
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -144,12 +156,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL) ← ++ *((byte*) main::BGCOL)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -166,7 +184,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::screen ← (word/signed word) 1024
|
||||
(byte*) main::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a ← *((byte*~) main::$0)
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -200,12 +218,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL) ← ++ *((byte*) main::BGCOL)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -223,7 +247,7 @@ CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::screen#0 ← (word/signed word) 1024
|
||||
(byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a#0 ← *((byte*~) main::$0)
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -262,12 +286,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL#0 ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL#0 ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL#0) ← ++ *((byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -284,7 +314,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::screen#0 ← (word/signed word) 1024
|
||||
(byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a#0 ← *((byte*~) main::$0)
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -323,12 +353,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL#0 ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL#0 ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL#0) ← ++ *((byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -352,10 +388,16 @@ INITIAL SSA SYMBOL TABLE
|
||||
(byte*~) main::$10
|
||||
(byte*~) main::$11
|
||||
(boolean~) main::$12
|
||||
(word~) main::$13
|
||||
(word~) main::$14
|
||||
(word~) main::$15
|
||||
(byte*~) main::$13
|
||||
(byte*~) main::$14
|
||||
(byte*~) main::$15
|
||||
(word~) main::$16
|
||||
(byte*~) main::$17
|
||||
(word~) main::$18
|
||||
(byte*~) main::$19
|
||||
(byte*~) main::$2
|
||||
(word~) main::$20
|
||||
(byte*~) main::$21
|
||||
(boolean~) main::$3
|
||||
(byte*~) main::$4
|
||||
(byte*~) main::$5
|
||||
@ -394,7 +436,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::screen#0 ← (word/signed word) 1024
|
||||
(byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a#0 ← *((byte*~) main::$0)
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -433,12 +475,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL#0 ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL#0 ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL#0) ← ++ *((byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -457,7 +505,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::screen#0 ← (word/signed word) 1024
|
||||
(byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a#0 ← *((byte*~) main::$0)
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -494,12 +542,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL#0 ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL#0 ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL#0) ← ++ *((byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -518,7 +572,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::screen#0 ← (word/signed word) 1024
|
||||
(byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a#0 ← *((byte*~) main::$0)
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -555,12 +609,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL#0 ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL#0 ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL#0) ← ++ *((byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -578,7 +638,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::screen#0 ← (word/signed word) 1024
|
||||
(byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a#0 ← *((byte*~) main::$0)
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -613,12 +673,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((boolean~) main::$12) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL#0 ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL#0 ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL#0) ← ++ *((byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -636,7 +702,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::screen#0 ← (word/signed word) 1024
|
||||
(byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*~) main::$0 ← (byte*) main::screen#0 + (byte/signed byte/word/signed word) 80
|
||||
(byte) main::a#0 ← *((byte*~) main::$0)
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -669,12 +735,18 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
(word~) main::$13 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
*((word~) main::$13) ← -- *((word~) main::$13)
|
||||
(word~) main::$14 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(word~) main::$15 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*) main::BGCOL#0 ← (word) 53280
|
||||
(byte*~) main::$13 ← ((byte*)) (word) 53280
|
||||
*((byte*~) main::$13) ← ++ *((byte*~) main::$13)
|
||||
(byte*~) main::$14 ← ((byte*)) (word) 53280
|
||||
(byte*~) main::$15 ← ((byte*)) (word) 53280
|
||||
(word~) main::$16 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$17 ← ((byte*)) (word~) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(word~) main::$18 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$19 ← ((byte*)) (word~) main::$18
|
||||
(word~) main::$20 ← (word) 53248 + (byte/signed byte/word/signed word) 33
|
||||
(byte*~) main::$21 ← ((byte*)) (word~) main::$20
|
||||
(byte*) main::BGCOL#0 ← ((byte*)) (word) 53280
|
||||
*((byte*) main::BGCOL#0) ← ++ *((byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -685,13 +757,16 @@ main::@return: scope:[main] from main::@4
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) main::screen#0 = 1024
|
||||
Constant (const byte*) main::screen#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Constant (const byte) main::j#0 = 0
|
||||
Constant (const word) main::$13 = 53248+33
|
||||
Constant (const word) main::$14 = 53248+33
|
||||
Constant (const word) main::$15 = 53248+33
|
||||
Constant (const byte*) main::BGCOL#0 = 53280
|
||||
Constant (const byte*) main::$13 = ((byte*))53280
|
||||
Constant (const byte*) main::$14 = ((byte*))53280
|
||||
Constant (const byte*) main::$15 = ((byte*))53280
|
||||
Constant (const word) main::$16 = 53248+33
|
||||
Constant (const word) main::$18 = 53248+33
|
||||
Constant (const word) main::$20 = 53248+33
|
||||
Constant (const byte*) main::BGCOL#0 = ((byte*))53280
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -727,8 +802,11 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
*((const word) main::$13) ← -- *((const word) main::$13)
|
||||
*((const byte*) main::$13) ← ++ *((const byte*) main::$13)
|
||||
(byte*~) main::$17 ← ((byte*)) (const word) main::$16
|
||||
*((byte*~) main::$17) ← -- *((byte*~) main::$17)
|
||||
(byte*~) main::$19 ← ((byte*)) (const word) main::$18
|
||||
(byte*~) main::$21 ← ((byte*)) (const word) main::$20
|
||||
*((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -747,6 +825,9 @@ Constant (const byte*) main::$6 = main::screen#0+82
|
||||
Constant (const byte*) main::$7 = main::screen#0+122
|
||||
Constant (const byte*) main::$8 = main::screen#0+160
|
||||
Constant (const byte*) main::$10 = main::screen#0+200
|
||||
Constant (const byte*) main::$17 = ((byte*))main::$16
|
||||
Constant (const byte*) main::$19 = ((byte*))main::$18
|
||||
Constant (const byte*) main::$21 = ((byte*))main::$20
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -774,8 +855,8 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
*((const word) main::$13) ← -- *((const word) main::$13)
|
||||
*((const byte*) main::$13) ← ++ *((const byte*) main::$13)
|
||||
*((const byte*) main::$17) ← -- *((const byte*) main::$17)
|
||||
*((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -798,17 +879,23 @@ Inlining constant with var siblings (const byte) main::i#0
|
||||
Inlining constant with var siblings (const byte) main::i#0
|
||||
Inlining constant with var siblings (const byte) main::j#0
|
||||
Inlining constant with var siblings (const byte) main::j#0
|
||||
Constant inlined main::$13 = ((byte*))(word) 53280
|
||||
Constant inlined main::$14 = ((byte*))(word) 53280
|
||||
Constant inlined main::$15 = ((byte*))(word) 53280
|
||||
Constant inlined main::$20 = (word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::$10 = (const byte*) main::screen#0+(byte/word/signed word) 200
|
||||
Constant inlined main::$21 = ((byte*))(word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::$16 = (word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::$1 = (const byte*) main::screen#0+(byte/signed byte/word/signed word) 40
|
||||
Constant inlined main::$17 = ((byte*))(word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::$18 = (word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::$0 = (const byte*) main::screen#0+(byte/signed byte/word/signed word) 80
|
||||
Constant inlined main::$19 = ((byte*))(word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::$5 = (const byte*) main::screen#0+(byte/signed byte/word/signed word) 121
|
||||
Constant inlined main::i#0 = (byte/signed byte/word/signed word) 0
|
||||
Constant inlined main::$13 = (word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::$6 = (const byte*) main::screen#0+(byte/signed byte/word/signed word) 82
|
||||
Constant inlined main::$14 = (word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::$15 = (word) 53248+(byte/signed byte/word/signed word) 33
|
||||
Constant inlined main::j#0 = (byte/signed byte/word/signed word) 0
|
||||
Constant inlined main::$7 = (const byte*) main::screen#0+(byte/signed byte/word/signed word) 122
|
||||
Constant inlined main::$10 = (const byte*) main::screen#0+(byte/word/signed word) 200
|
||||
Constant inlined main::$8 = (const byte*) main::screen#0+(byte/word/signed word) 160
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
CONTROL FLOW GRAPH
|
||||
@ -837,8 +924,8 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@2
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
*((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33)
|
||||
*(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280)
|
||||
*(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33)
|
||||
*((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -863,7 +950,7 @@ FINAL SYMBOL TABLE
|
||||
(label) main::@4
|
||||
(label) main::@return
|
||||
(byte*) main::BGCOL
|
||||
(const byte*) main::BGCOL#0 = (word) 53280
|
||||
(const byte*) main::BGCOL#0 = ((byte*))(word) 53280
|
||||
(byte) main::a
|
||||
(byte) main::a#0
|
||||
(byte) main::i
|
||||
@ -875,7 +962,7 @@ FINAL SYMBOL TABLE
|
||||
(byte*) main::sc2
|
||||
(const byte*) main::sc2#0 = (const byte*) main::screen#0+(byte/signed byte/word/signed word) 81
|
||||
(byte*) main::screen
|
||||
(const byte*) main::screen#0 = (word/signed word) 1024
|
||||
(const byte*) main::screen#0 = ((byte*))(word/signed word) 1024
|
||||
|
||||
Block Sequence Planned @begin @1 @end main main::@1 main::@3 main::@2 main::@4 main::@return
|
||||
Added new block during phi lifting main::@5(between main::@1 and main::@1)
|
||||
@ -911,8 +998,8 @@ main::@2: scope:[main] from main::@3 main::@6
|
||||
if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@6
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
*((word) 53280) ← ++ *((word) 53280)
|
||||
*((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33)
|
||||
*(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280)
|
||||
*(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33)
|
||||
*((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0)
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -961,8 +1048,8 @@ main::@2: scope:[main] from main::@3 main::@6
|
||||
[14] if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@6 [ main::j#1 ]
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
[15] *((word) 53280) ← ++ *((word) 53280) [ ]
|
||||
[16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ]
|
||||
[15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ]
|
||||
[16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ]
|
||||
[17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ]
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -1015,8 +1102,8 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
[14] if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@2 [ main::j#1 ]
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
[15] *((word) 53280) ← ++ *((word) 53280) [ ]
|
||||
[16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ]
|
||||
[15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ]
|
||||
[16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ]
|
||||
[17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ]
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -1053,8 +1140,8 @@ main::@2: scope:[main] from main::@2 main::@3
|
||||
[14] if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@2 [ main::j#1 ] ( main:0 [ main::j#1 ] )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@2
|
||||
[15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] )
|
||||
[16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] )
|
||||
[15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] )
|
||||
[16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] )
|
||||
[17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
@ -1238,9 +1325,9 @@ main: {
|
||||
jmp b4
|
||||
//SEG30 main::@4
|
||||
b4:
|
||||
//SEG31 [15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
//SEG31 [15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc $d020
|
||||
//SEG32 [16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
//SEG32 [16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
dec $d000+$21
|
||||
//SEG33 [17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc BGCOL
|
||||
@ -1391,9 +1478,9 @@ main: {
|
||||
bne b2_from_b2
|
||||
//SEG30 main::@4
|
||||
b4:
|
||||
//SEG31 [15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
//SEG31 [15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc $d020
|
||||
//SEG32 [16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
//SEG32 [16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
dec $d000+$21
|
||||
//SEG33 [17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc BGCOL
|
||||
@ -1501,9 +1588,9 @@ main: {
|
||||
bne b2_from_b2
|
||||
//SEG30 main::@4
|
||||
b4:
|
||||
//SEG31 [15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
//SEG31 [15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc $d020
|
||||
//SEG32 [16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
//SEG32 [16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
dec $d000+$21
|
||||
//SEG33 [17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc BGCOL
|
||||
@ -1612,9 +1699,9 @@ main: {
|
||||
bne b2
|
||||
//SEG30 main::@4
|
||||
b4:
|
||||
//SEG31 [15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
//SEG31 [15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc $d020
|
||||
//SEG32 [16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
//SEG32 [16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
dec $d000+$21
|
||||
//SEG33 [17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc BGCOL
|
||||
@ -1719,9 +1806,9 @@ main: {
|
||||
cpx #$b
|
||||
bne b2
|
||||
//SEG30 main::@4
|
||||
//SEG31 [15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
//SEG31 [15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc $d020
|
||||
//SEG32 [16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
//SEG32 [16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
dec $d000+$21
|
||||
//SEG33 [17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc BGCOL
|
||||
@ -1818,9 +1905,9 @@ main: {
|
||||
cpx #$b
|
||||
bne b2
|
||||
//SEG30 main::@4
|
||||
//SEG31 [15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
//SEG31 [15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc $d020
|
||||
//SEG32 [16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
//SEG32 [16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
dec $d000+$21
|
||||
//SEG33 [17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc BGCOL
|
||||
@ -1843,7 +1930,7 @@ FINAL SYMBOL TABLE
|
||||
(label) main::@4
|
||||
(label) main::@return
|
||||
(byte*) main::BGCOL
|
||||
(const byte*) main::BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) main::BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(byte) main::a
|
||||
(byte) main::a#0 reg byte a 20.0
|
||||
(byte) main::i
|
||||
@ -1855,7 +1942,7 @@ FINAL SYMBOL TABLE
|
||||
(byte*) main::sc2
|
||||
(const byte*) main::sc2#0 sc2 = (const byte*) main::screen#0+(byte/signed byte/word/signed word) 81
|
||||
(byte*) main::screen
|
||||
(const byte*) main::screen#0 screen = (word/signed word) 1024
|
||||
(const byte*) main::screen#0 screen = ((byte*))(word/signed word) 1024
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::j#2 main::j#1 ]
|
||||
@ -1948,9 +2035,9 @@ main: {
|
||||
cpx #$b
|
||||
bne b2
|
||||
//SEG30 main::@4
|
||||
//SEG31 [15] *((word) 53280) ← ++ *((word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
//SEG31 [15] *(((byte*))(word) 53280) ← ++ *(((byte*))(word) 53280) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc $d020
|
||||
//SEG32 [16] *((word) 53248+(byte/signed byte/word/signed word) 33) ← -- *((word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
//SEG32 [16] *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) ← -- *(((byte*))(word) 53248+(byte/signed byte/word/signed word) 33) [ ] ( main:0 [ ] ) -- _deref_cowo1=_dec__deref_cowo1
|
||||
dec $d000+$21
|
||||
//SEG33 [17] *((const byte*) main::BGCOL#0) ← ++ *((const byte*) main::BGCOL#0) [ ] ( main:0 [ ] ) -- _deref_cowo1=_inc__deref_cowo1
|
||||
inc BGCOL
|
||||
|
@ -11,7 +11,7 @@
|
||||
(label) main::@4
|
||||
(label) main::@return
|
||||
(byte*) main::BGCOL
|
||||
(const byte*) main::BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) main::BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(byte) main::a
|
||||
(byte) main::a#0 reg byte a 20.0
|
||||
(byte) main::i
|
||||
@ -23,7 +23,7 @@
|
||||
(byte*) main::sc2
|
||||
(const byte*) main::sc2#0 sc2 = (const byte*) main::screen#0+(byte/signed byte/word/signed word) 81
|
||||
(byte*) main::screen
|
||||
(const byte*) main::screen#0 screen = (word/signed word) 1024
|
||||
(const byte*) main::screen#0 screen = ((byte*))(word/signed word) 1024
|
||||
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::j#2 main::j#1 ]
|
||||
|
@ -24,7 +24,7 @@ lvaluevar: scope:[lvaluevar] from main::@3
|
||||
[7] phi() [ ] ( main:0::lvaluevar:5 [ ] )
|
||||
to:lvaluevar::@1
|
||||
lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2
|
||||
[8] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/(word/signed word) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:0::lvaluevar:5 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
|
||||
[8] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/((byte*))(word/signed word) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:0::lvaluevar:5 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
|
||||
[8] (byte) lvaluevar::i#2 ← phi( lvaluevar/(byte/signed byte/word/signed word) 2 lvaluevar::@2/(byte) lvaluevar::i#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:0::lvaluevar:5 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
|
||||
[9] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:0::lvaluevar:5 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
|
||||
to:lvaluevar::@return
|
||||
@ -40,7 +40,7 @@ rvaluevar: scope:[rvaluevar] from main::@2
|
||||
[14] phi() [ ] ( main:0::rvaluevar:4 [ ] )
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
[15] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/(word/signed word) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:0::rvaluevar:4 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
|
||||
[15] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/((byte*))(word/signed word) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:0::rvaluevar:4 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
|
||||
[15] (byte) rvaluevar::i#2 ← phi( rvaluevar/(byte/signed byte/word/signed word) 2 rvaluevar::@2/(byte) rvaluevar::i#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:0::rvaluevar:4 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
|
||||
[16] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:0::rvaluevar:4 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
|
||||
to:rvaluevar::@return
|
||||
|
@ -218,7 +218,7 @@ main::@return: scope:[main] from main
|
||||
@1: scope:[] from @begin
|
||||
to:@2
|
||||
lvalue: scope:[lvalue] from
|
||||
(byte[1024]) lvalue::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i ← (byte/signed byte/word/signed word) 2
|
||||
@ -245,7 +245,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@3
|
||||
@2: scope:[] from @1
|
||||
to:@3
|
||||
rvalue: scope:[rvalue] from
|
||||
(byte[1024]) rvalue::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b ← *((byte[1024]) rvalue::SCREEN)
|
||||
(byte~) rvalue::$0 ← (byte[1024]) rvalue::SCREEN *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::b ← (byte~) rvalue::$0
|
||||
@ -274,7 +274,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@3
|
||||
@3: scope:[] from @2
|
||||
to:@4
|
||||
lvaluevar: scope:[lvaluevar] from
|
||||
(byte*) lvaluevar::screen ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -301,7 +301,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@3
|
||||
@4: scope:[] from @3
|
||||
to:@5
|
||||
rvaluevar: scope:[rvaluevar] from
|
||||
(byte*) rvaluevar::screen ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -362,7 +362,7 @@ main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from
|
||||
(byte[1024]) lvalue::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i ← (byte/signed byte/word/signed word) 2
|
||||
@ -379,7 +379,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from
|
||||
(byte[1024]) rvalue::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b ← *((byte[1024]) rvalue::SCREEN)
|
||||
(byte~) rvalue::$0 ← (byte[1024]) rvalue::SCREEN *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::b ← (byte~) rvalue::$0
|
||||
@ -398,7 +398,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from
|
||||
(byte*) lvaluevar::screen ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -415,7 +415,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from
|
||||
(byte*) rvaluevar::screen ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -458,7 +458,7 @@ main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from main
|
||||
(byte[1024]) lvalue::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i ← (byte/signed byte/word/signed word) 2
|
||||
@ -475,7 +475,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from main::@1
|
||||
(byte[1024]) rvalue::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b ← *((byte[1024]) rvalue::SCREEN)
|
||||
(byte~) rvalue::$0 ← (byte[1024]) rvalue::SCREEN *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::b ← (byte~) rvalue::$0
|
||||
@ -494,7 +494,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
(byte*) lvaluevar::screen ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -511,7 +511,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
(byte*) rvaluevar::screen ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -556,7 +556,7 @@ main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from main
|
||||
(byte[1024]) lvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN#0 + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -577,7 +577,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from main::@1
|
||||
(byte[1024]) rvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b#0 ← *((byte[1024]) rvalue::SCREEN#0)
|
||||
(byte~) rvalue::$0 ← (byte[1024]) rvalue::SCREEN#0 *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::b#1 ← (byte~) rvalue::$0
|
||||
@ -600,7 +600,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
(byte*) lvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b#0 ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -623,7 +623,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
(byte*) rvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -670,7 +670,7 @@ main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from main
|
||||
(byte[1024]) lvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN#0 + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -691,7 +691,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from main::@1
|
||||
(byte[1024]) rvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b#0 ← *((byte[1024]) rvalue::SCREEN#0)
|
||||
(byte~) rvalue::$0 ← (byte[1024]) rvalue::SCREEN#0 *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::b#1 ← (byte~) rvalue::$0
|
||||
@ -714,7 +714,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
(byte*) lvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b#0 ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -737,7 +737,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
(byte*) rvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -867,7 +867,7 @@ main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from main
|
||||
(byte[1024]) lvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN#0 + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -888,7 +888,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from main::@1
|
||||
(byte[1024]) rvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b#0 ← *((byte[1024]) rvalue::SCREEN#0)
|
||||
(byte~) rvalue::$0 ← (byte[1024]) rvalue::SCREEN#0 *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::b#1 ← (byte~) rvalue::$0
|
||||
@ -911,7 +911,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
(byte*) lvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b#0 ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -934,7 +934,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
(byte*) rvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -989,7 +989,7 @@ main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from main
|
||||
(byte[1024]) lvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN#0 + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -1008,7 +1008,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from main::@1
|
||||
(byte[1024]) rvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b#0 ← *((byte[1024]) rvalue::SCREEN#0)
|
||||
(byte) rvalue::b#1 ← (byte[1024]) rvalue::SCREEN#0 *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -1027,7 +1027,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
(byte*) lvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b#0 ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -1047,7 +1047,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
(byte*) rvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -1092,7 +1092,7 @@ main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from main
|
||||
(byte[1024]) lvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN#0 + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -1111,7 +1111,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from main::@1
|
||||
(byte[1024]) rvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b#0 ← *((byte[1024]) rvalue::SCREEN#0)
|
||||
(byte) rvalue::b#1 ← (byte[1024]) rvalue::SCREEN#0 *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -1130,7 +1130,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
(byte*) lvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b#0 ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -1150,7 +1150,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
(byte*) rvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -1195,7 +1195,7 @@ main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from main
|
||||
(byte[1024]) lvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN#0 + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -1213,7 +1213,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from main::@1
|
||||
(byte[1024]) rvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b#0 ← *((byte[1024]) rvalue::SCREEN#0)
|
||||
(byte) rvalue::b#1 ← (byte[1024]) rvalue::SCREEN#0 *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -1231,7 +1231,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
(byte*) lvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b#0 ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -1250,7 +1250,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
(byte*) rvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -1296,7 +1296,7 @@ main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
lvalue: scope:[lvalue] from main
|
||||
(byte[1024]) lvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) lvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
*((byte[1024]) lvalue::SCREEN#0) ← (byte/signed byte/word/signed word) 1
|
||||
*((byte[1024]) lvalue::SCREEN#0 + (byte/signed byte/word/signed word) 1) ← (byte/signed byte/word/signed word) 2
|
||||
(byte) lvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -1313,7 +1313,7 @@ lvalue::@return: scope:[lvalue] from lvalue::@1
|
||||
return
|
||||
to:@return
|
||||
rvalue: scope:[rvalue] from main::@1
|
||||
(byte[1024]) rvalue::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) rvalue::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvalue::b#0 ← *((byte[1024]) rvalue::SCREEN#0)
|
||||
(byte) rvalue::b#1 ← (byte[1024]) rvalue::SCREEN#0 *idx (byte/signed byte/word/signed word) 1
|
||||
(byte) rvalue::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
@ -1330,7 +1330,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
return
|
||||
to:@return
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
(byte*) lvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) lvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) lvaluevar::b#0 ← (byte/signed byte/word/signed word) 4
|
||||
(byte) lvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:lvaluevar::@1
|
||||
@ -1348,7 +1348,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
return
|
||||
to:@return
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
(byte*) rvaluevar::screen#0 ← (word/signed word) 1024
|
||||
(byte*) rvaluevar::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) rvaluevar::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
@ -1369,14 +1369,14 @@ rvaluevar::@return: scope:[rvaluevar] from rvaluevar::@1
|
||||
to:@end
|
||||
@end: scope:[] from @5
|
||||
|
||||
Constant (const byte[1024]) lvalue::SCREEN#0 = 1024
|
||||
Constant (const byte[1024]) lvalue::SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) lvalue::i#0 = 2
|
||||
Constant (const byte[1024]) rvalue::SCREEN#0 = 1024
|
||||
Constant (const byte[1024]) rvalue::SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) rvalue::i#0 = 2
|
||||
Constant (const byte*) lvaluevar::screen#0 = 1024
|
||||
Constant (const byte*) lvaluevar::screen#0 = ((byte*))1024
|
||||
Constant (const byte) lvaluevar::b#0 = 4
|
||||
Constant (const byte) lvaluevar::i#0 = 2
|
||||
Constant (const byte*) rvaluevar::screen#0 = 1024
|
||||
Constant (const byte*) rvaluevar::screen#0 = ((byte*))1024
|
||||
Constant (const byte) rvaluevar::i#0 = 2
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@ -1564,10 +1564,10 @@ Inlining constant with var siblings (const byte*) rvaluevar::screen#0
|
||||
Inlining constant with var siblings (const byte) rvaluevar::i#0
|
||||
Inlining constant with var siblings (const byte) rvaluevar::i#0
|
||||
Constant inlined lvalue::i#0 = (byte/signed byte/word/signed word) 2
|
||||
Constant inlined rvaluevar::screen#0 = (word/signed word) 1024
|
||||
Constant inlined rvaluevar::screen#0 = ((byte*))(word/signed word) 1024
|
||||
Constant inlined rvalue::i#0 = (byte/signed byte/word/signed word) 2
|
||||
Constant inlined lvaluevar::i#0 = (byte/signed byte/word/signed word) 2
|
||||
Constant inlined lvaluevar::screen#0 = (word/signed word) 1024
|
||||
Constant inlined lvaluevar::screen#0 = ((byte*))(word/signed word) 1024
|
||||
Constant inlined rvaluevar::i#0 = (byte/signed byte/word/signed word) 2
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
CONTROL FLOW GRAPH
|
||||
@ -1621,7 +1621,7 @@ rvalue::@return: scope:[rvalue] from rvalue::@1
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
to:lvaluevar::@1
|
||||
lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2
|
||||
(byte*) lvaluevar::screen#2 ← phi( lvaluevar/(word/signed word) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 )
|
||||
(byte*) lvaluevar::screen#2 ← phi( lvaluevar/((byte*))(word/signed word) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 )
|
||||
(byte) lvaluevar::i#2 ← phi( lvaluevar/(byte/signed byte/word/signed word) 2 lvaluevar::@2/(byte) lvaluevar::i#1 )
|
||||
if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto lvaluevar::@2
|
||||
to:lvaluevar::@return
|
||||
@ -1636,7 +1636,7 @@ lvaluevar::@return: scope:[lvaluevar] from lvaluevar::@1
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
(byte*) rvaluevar::screen#2 ← phi( rvaluevar/(word/signed word) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 )
|
||||
(byte*) rvaluevar::screen#2 ← phi( rvaluevar/((byte*))(word/signed word) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 )
|
||||
(byte) rvaluevar::i#2 ← phi( rvaluevar/(byte/signed byte/word/signed word) 2 rvaluevar::@2/(byte) rvaluevar::i#1 )
|
||||
if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto rvaluevar::@2
|
||||
to:rvaluevar::@return
|
||||
@ -1662,7 +1662,7 @@ FINAL SYMBOL TABLE
|
||||
(label) lvalue::@2
|
||||
(label) lvalue::@return
|
||||
(byte[1024]) lvalue::SCREEN
|
||||
(const byte[1024]) lvalue::SCREEN#0 = (word/signed word) 1024
|
||||
(const byte[1024]) lvalue::SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) lvalue::i
|
||||
(byte) lvalue::i#1
|
||||
(byte) lvalue::i#2
|
||||
@ -1688,7 +1688,7 @@ FINAL SYMBOL TABLE
|
||||
(label) rvalue::@2
|
||||
(label) rvalue::@return
|
||||
(byte[1024]) rvalue::SCREEN
|
||||
(const byte[1024]) rvalue::SCREEN#0 = (word/signed word) 1024
|
||||
(const byte[1024]) rvalue::SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) rvalue::b
|
||||
(byte) rvalue::b#0
|
||||
(byte) rvalue::b#1
|
||||
@ -1736,7 +1736,7 @@ main::@return: scope:[main] from main::@3
|
||||
lvaluevar: scope:[lvaluevar] from main::@3
|
||||
to:lvaluevar::@1
|
||||
lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2
|
||||
(byte*) lvaluevar::screen#2 ← phi( lvaluevar/(word/signed word) 1024 lvaluevar::@2/(byte*~) lvaluevar::screen#4 )
|
||||
(byte*) lvaluevar::screen#2 ← phi( lvaluevar/((byte*))(word/signed word) 1024 lvaluevar::@2/(byte*~) lvaluevar::screen#4 )
|
||||
(byte) lvaluevar::i#2 ← phi( lvaluevar/(byte/signed byte/word/signed word) 2 lvaluevar::@2/(byte~) lvaluevar::i#4 )
|
||||
if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto lvaluevar::@2
|
||||
to:lvaluevar::@return
|
||||
@ -1753,7 +1753,7 @@ lvaluevar::@2: scope:[lvaluevar] from lvaluevar::@1
|
||||
rvaluevar: scope:[rvaluevar] from main::@2
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
(byte*) rvaluevar::screen#2 ← phi( rvaluevar/(word/signed word) 1024 rvaluevar::@2/(byte*~) rvaluevar::screen#4 )
|
||||
(byte*) rvaluevar::screen#2 ← phi( rvaluevar/((byte*))(word/signed word) 1024 rvaluevar::@2/(byte*~) rvaluevar::screen#4 )
|
||||
(byte) rvaluevar::i#2 ← phi( rvaluevar/(byte/signed byte/word/signed word) 2 rvaluevar::@2/(byte~) rvaluevar::i#4 )
|
||||
if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto rvaluevar::@2
|
||||
to:rvaluevar::@return
|
||||
@ -1838,7 +1838,7 @@ lvaluevar: scope:[lvaluevar] from main::@3
|
||||
[7] phi() [ ]
|
||||
to:lvaluevar::@1
|
||||
lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2
|
||||
[8] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/(word/signed word) 1024 lvaluevar::@2/(byte*~) lvaluevar::screen#4 ) [ lvaluevar::i#2 lvaluevar::screen#2 ]
|
||||
[8] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/((byte*))(word/signed word) 1024 lvaluevar::@2/(byte*~) lvaluevar::screen#4 ) [ lvaluevar::i#2 lvaluevar::screen#2 ]
|
||||
[8] (byte) lvaluevar::i#2 ← phi( lvaluevar/(byte/signed byte/word/signed word) 2 lvaluevar::@2/(byte~) lvaluevar::i#4 ) [ lvaluevar::i#2 lvaluevar::screen#2 ]
|
||||
[9] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ]
|
||||
to:lvaluevar::@return
|
||||
@ -1856,7 +1856,7 @@ rvaluevar: scope:[rvaluevar] from main::@2
|
||||
[16] phi() [ ]
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
[17] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/(word/signed word) 1024 rvaluevar::@2/(byte*~) rvaluevar::screen#4 ) [ rvaluevar::i#2 rvaluevar::screen#2 ]
|
||||
[17] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/((byte*))(word/signed word) 1024 rvaluevar::@2/(byte*~) rvaluevar::screen#4 ) [ rvaluevar::i#2 rvaluevar::screen#2 ]
|
||||
[17] (byte) rvaluevar::i#2 ← phi( rvaluevar/(byte/signed byte/word/signed word) 2 rvaluevar::@2/(byte~) rvaluevar::i#4 ) [ rvaluevar::i#2 rvaluevar::screen#2 ]
|
||||
[18] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ]
|
||||
to:rvaluevar::@return
|
||||
@ -1946,7 +1946,7 @@ lvaluevar: scope:[lvaluevar] from main::@3
|
||||
[7] phi() [ ]
|
||||
to:lvaluevar::@1
|
||||
lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2
|
||||
[8] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/(word/signed word) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ]
|
||||
[8] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/((byte*))(word/signed word) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ]
|
||||
[8] (byte) lvaluevar::i#2 ← phi( lvaluevar/(byte/signed byte/word/signed word) 2 lvaluevar::@2/(byte) lvaluevar::i#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ]
|
||||
[9] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ]
|
||||
to:lvaluevar::@return
|
||||
@ -1962,7 +1962,7 @@ rvaluevar: scope:[rvaluevar] from main::@2
|
||||
[14] phi() [ ]
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
[15] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/(word/signed word) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ]
|
||||
[15] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/((byte*))(word/signed word) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ]
|
||||
[15] (byte) rvaluevar::i#2 ← phi( rvaluevar/(byte/signed byte/word/signed word) 2 rvaluevar::@2/(byte) rvaluevar::i#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ]
|
||||
[16] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ]
|
||||
to:rvaluevar::@return
|
||||
@ -2032,7 +2032,7 @@ lvaluevar: scope:[lvaluevar] from main::@3
|
||||
[7] phi() [ ] ( main:0::lvaluevar:5 [ ] )
|
||||
to:lvaluevar::@1
|
||||
lvaluevar::@1: scope:[lvaluevar] from lvaluevar lvaluevar::@2
|
||||
[8] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/(word/signed word) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:0::lvaluevar:5 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
|
||||
[8] (byte*) lvaluevar::screen#2 ← phi( lvaluevar/((byte*))(word/signed word) 1024 lvaluevar::@2/(byte*) lvaluevar::screen#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:0::lvaluevar:5 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
|
||||
[8] (byte) lvaluevar::i#2 ← phi( lvaluevar/(byte/signed byte/word/signed word) 2 lvaluevar::@2/(byte) lvaluevar::i#1 ) [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:0::lvaluevar:5 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
|
||||
[9] if((byte) lvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] ( main:0::lvaluevar:5 [ lvaluevar::i#2 lvaluevar::screen#2 ] )
|
||||
to:lvaluevar::@return
|
||||
@ -2048,7 +2048,7 @@ rvaluevar: scope:[rvaluevar] from main::@2
|
||||
[14] phi() [ ] ( main:0::rvaluevar:4 [ ] )
|
||||
to:rvaluevar::@1
|
||||
rvaluevar::@1: scope:[rvaluevar] from rvaluevar rvaluevar::@2
|
||||
[15] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/(word/signed word) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:0::rvaluevar:4 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
|
||||
[15] (byte*) rvaluevar::screen#2 ← phi( rvaluevar/((byte*))(word/signed word) 1024 rvaluevar::@2/(byte*) rvaluevar::screen#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:0::rvaluevar:4 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
|
||||
[15] (byte) rvaluevar::i#2 ← phi( rvaluevar/(byte/signed byte/word/signed word) 2 rvaluevar::@2/(byte) rvaluevar::i#1 ) [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:0::rvaluevar:4 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
|
||||
[16] if((byte) rvaluevar::i#2<(byte/signed byte/word/signed word) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] ( main:0::rvaluevar:4 [ rvaluevar::i#2 rvaluevar::screen#2 ] )
|
||||
to:rvaluevar::@return
|
||||
@ -2268,7 +2268,7 @@ lvaluevar: {
|
||||
.label i = 2
|
||||
//SEG20 [8] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1]
|
||||
b1_from_lvaluevar:
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = (word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -2314,7 +2314,7 @@ rvaluevar: {
|
||||
.label i = 5
|
||||
//SEG35 [15] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1]
|
||||
b1_from_rvaluevar:
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = (word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -2542,7 +2542,7 @@ lvaluevar: {
|
||||
.label screen = 2
|
||||
//SEG20 [8] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1]
|
||||
b1_from_lvaluevar:
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = (word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -2582,7 +2582,7 @@ rvaluevar: {
|
||||
.label screen = 2
|
||||
//SEG35 [15] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1]
|
||||
b1_from_rvaluevar:
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = (word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -2730,7 +2730,7 @@ lvaluevar: {
|
||||
.label screen = 2
|
||||
//SEG20 [8] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1]
|
||||
b1_from_lvaluevar:
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = (word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -2770,7 +2770,7 @@ rvaluevar: {
|
||||
.label screen = 2
|
||||
//SEG35 [15] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1]
|
||||
b1_from_rvaluevar:
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = (word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -2925,7 +2925,7 @@ lvaluevar: {
|
||||
.const b = 4
|
||||
.label screen = 2
|
||||
//SEG20 [8] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1]
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = (word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -2962,7 +2962,7 @@ lvaluevar: {
|
||||
rvaluevar: {
|
||||
.label screen = 2
|
||||
//SEG35 [15] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1]
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = (word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -3064,7 +3064,7 @@ FINAL SYMBOL TABLE
|
||||
(label) lvalue::@2
|
||||
(label) lvalue::@return
|
||||
(byte[1024]) lvalue::SCREEN
|
||||
(const byte[1024]) lvalue::SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1024]) lvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) lvalue::i
|
||||
(byte) lvalue::i#1 reg byte x 22.0
|
||||
(byte) lvalue::i#2 reg byte x 14.666666666666666
|
||||
@ -3090,7 +3090,7 @@ FINAL SYMBOL TABLE
|
||||
(label) rvalue::@2
|
||||
(label) rvalue::@return
|
||||
(byte[1024]) rvalue::SCREEN
|
||||
(const byte[1024]) rvalue::SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1024]) rvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) rvalue::b
|
||||
(byte) rvalue::b#0 reg byte a 20.0
|
||||
(byte) rvalue::b#1 reg byte a 20.0
|
||||
@ -3157,7 +3157,7 @@ lvaluevar: {
|
||||
.const b = 4
|
||||
.label screen = 2
|
||||
//SEG20 [8] phi from lvaluevar to lvaluevar::@1 [phi:lvaluevar->lvaluevar::@1]
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = (word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG21 [8] phi (byte*) lvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:lvaluevar->lvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
@ -3194,7 +3194,7 @@ lvaluevar: {
|
||||
rvaluevar: {
|
||||
.label screen = 2
|
||||
//SEG35 [15] phi from rvaluevar to rvaluevar::@1 [phi:rvaluevar->rvaluevar::@1]
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = (word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
//SEG36 [15] phi (byte*) rvaluevar::screen#2 = ((byte*))(word/signed word) 1024 [phi:rvaluevar->rvaluevar::@1#0] -- zpptrby1=cowo1
|
||||
lda #<$400
|
||||
sta screen
|
||||
lda #>$400
|
||||
|
@ -6,7 +6,7 @@
|
||||
(label) lvalue::@2
|
||||
(label) lvalue::@return
|
||||
(byte[1024]) lvalue::SCREEN
|
||||
(const byte[1024]) lvalue::SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1024]) lvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) lvalue::i
|
||||
(byte) lvalue::i#1 reg byte x 22.0
|
||||
(byte) lvalue::i#2 reg byte x 14.666666666666666
|
||||
@ -32,7 +32,7 @@
|
||||
(label) rvalue::@2
|
||||
(label) rvalue::@return
|
||||
(byte[1024]) rvalue::SCREEN
|
||||
(const byte[1024]) rvalue::SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1024]) rvalue::SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) rvalue::b
|
||||
(byte) rvalue::b#0 reg byte a 20.0
|
||||
(byte) rvalue::b#1 reg byte a 20.0
|
||||
|
@ -51,7 +51,7 @@ INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte[1024]) main::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -87,7 +87,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte[1024]) main::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -113,7 +113,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[1024]) main::SCREEN ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -141,7 +141,7 @@ CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[1024]) main::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -171,7 +171,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[1024]) main::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -226,7 +226,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[1024]) main::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -258,7 +258,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[1024]) main::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -285,7 +285,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[1024]) main::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -312,7 +312,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[1024]) main::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -338,7 +338,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[1024]) main::SCREEN#0 ← (word/signed word) 1024
|
||||
(byte[1024]) main::SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 2
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@2
|
||||
@ -357,7 +357,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte[1024]) main::SCREEN#0 = 1024
|
||||
Constant (const byte[1024]) main::SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte) main::i#0 = 2
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@ -417,7 +417,7 @@ FINAL SYMBOL TABLE
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(byte[1024]) main::SCREEN
|
||||
(const byte[1024]) main::SCREEN#0 = (word/signed word) 1024
|
||||
(const byte[1024]) main::SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte) main::b
|
||||
(byte) main::b#0
|
||||
(byte) main::i
|
||||
@ -776,7 +776,7 @@ FINAL SYMBOL TABLE
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(byte[1024]) main::SCREEN
|
||||
(const byte[1024]) main::SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1024]) main::SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) main::b
|
||||
(byte) main::b#0 reg byte a 110.0
|
||||
(byte) main::i
|
||||
|
@ -6,7 +6,7 @@
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(byte[1024]) main::SCREEN
|
||||
(const byte[1024]) main::SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte[1024]) main::SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte) main::b
|
||||
(byte) main::b#0 reg byte a 110.0
|
||||
(byte) main::i
|
||||
|
@ -58,8 +58,8 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCROLL ← (word) 53270
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
@ -95,8 +95,8 @@ main::@return: scope:[main] from main::@4
|
||||
Removing empty block main::@4
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCROLL ← (word) 53270
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
@ -131,8 +131,8 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCROLL ← (word) 53270
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -171,8 +171,8 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -223,8 +223,8 @@ main::@return: scope:[main] from main::@2
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -322,8 +322,8 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -374,8 +374,8 @@ Inversing boolean not (boolean~) main::$1 ← (byte) main::c#0 != (byte) '@' fro
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -431,8 +431,8 @@ Alias (byte*) SCREEN#2 = (byte*) SCREEN#3
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -479,8 +479,8 @@ Alias (byte[]) TEXT#2 = (byte[]) TEXT#5
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -523,8 +523,8 @@ Self Phi Eliminated (byte[]) TEXT#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -565,8 +565,8 @@ Redundant Phi (byte[]) TEXT#2 (byte[]) TEXT#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -604,8 +604,8 @@ Simple Condition (boolean~) main::$1 if((byte) main::c#0!=(byte) '@') goto main:
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte[]) TEXT#0 ← (string) "01234567@"
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
@ -638,8 +638,8 @@ main::@return: scope:[main] from main::@2
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCROLL#0 = 53270
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte*) SCROLL#0 = ((byte*))53270
|
||||
Constant (const byte[]) TEXT#0 = "01234567@"
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
@ -755,9 +755,9 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCROLL
|
||||
(const byte*) SCROLL#0 = (word) 53270
|
||||
(const byte*) SCROLL#0 = ((byte*))(word) 53270
|
||||
(byte[]) TEXT
|
||||
(const byte[]) TEXT#0 = (string) "01234567@"
|
||||
(void()) main()
|
||||
@ -1439,9 +1439,9 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCROLL
|
||||
(const byte*) SCROLL#0 SCROLL = (word) 53270
|
||||
(const byte*) SCROLL#0 SCROLL = ((byte*))(word) 53270
|
||||
(byte[]) TEXT
|
||||
(const byte[]) TEXT#0 TEXT = (string) "01234567@"
|
||||
(void()) main()
|
||||
|
@ -2,9 +2,9 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCROLL
|
||||
(const byte*) SCROLL#0 SCROLL = (word) 53270
|
||||
(const byte*) SCROLL#0 SCROLL = ((byte*))(word) 53270
|
||||
(byte[]) TEXT
|
||||
(const byte[]) TEXT#0 TEXT = (string) "01234567@"
|
||||
(void()) main()
|
||||
|
@ -149,10 +149,10 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) RASTER ← (word) 53266
|
||||
(byte*) BGCOL ← (word) 53280
|
||||
(byte*) SCROLL ← (word) 53270
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
@ -245,10 +245,10 @@ Removing empty block @1
|
||||
Removing empty block fillscreen::@2
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) RASTER ← (word) 53266
|
||||
(byte*) BGCOL ← (word) 53280
|
||||
(byte*) SCROLL ← (word) 53270
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from
|
||||
@ -331,10 +331,10 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) RASTER ← (word) 53266
|
||||
(byte*) BGCOL ← (word) 53280
|
||||
(byte*) SCROLL ← (word) 53270
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -431,10 +431,10 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -611,10 +611,10 @@ fillscreen::@return: scope:[fillscreen] from fillscreen::@1
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -950,10 +950,10 @@ Culled Empty Block (label) @3
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -1131,10 +1131,10 @@ Inversing boolean not (boolean~) main::$10 ← (byte) main::c#0 != (byte) '@' fr
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -1347,10 +1347,10 @@ Alias (byte) fillscreen::fill#0 = (byte) fillscreen::fill#2
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -1488,10 +1488,10 @@ Alias (byte*) TEXT#13 = (byte*) TEXT#2
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -1640,10 +1640,10 @@ Self Phi Eliminated (byte*) fillscreen::screen#2
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -1775,10 +1775,10 @@ Redundant Phi (byte*) fillscreen::screen#2 (byte*) fillscreen::cursor#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -1883,10 +1883,10 @@ Redundant Phi (byte*) TEXT#11 (byte*) TEXT#10
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -1987,10 +1987,10 @@ Simple Condition (boolean~) fillscreen::$1 if((byte*) fillscreen::cursor#1<(byte
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← (word) 53266
|
||||
(byte*) BGCOL#0 ← (word) 53280
|
||||
(byte*) SCROLL#0 ← (word) 53270
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) RASTER#0 ← ((byte*)) (word) 53266
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word) 53280
|
||||
(byte*) SCROLL#0 ← ((byte*)) (word) 53270
|
||||
(byte*) TEXT#0 ← (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
@ -2076,10 +2076,10 @@ fillscreen::@return: scope:[fillscreen] from fillscreen::@1
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) RASTER#0 = 53266
|
||||
Constant (const byte*) BGCOL#0 = 53280
|
||||
Constant (const byte*) SCROLL#0 = 53270
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte*) RASTER#0 = ((byte*))53266
|
||||
Constant (const byte*) BGCOL#0 = ((byte*))53280
|
||||
Constant (const byte*) SCROLL#0 = ((byte*))53270
|
||||
Constant (const byte*) TEXT#0 = "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
Constant (const byte) fillscreen::fill#0 = 32
|
||||
Constant (const byte) main::scroll#0 = 7
|
||||
@ -2872,13 +2872,13 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 = (word) 53280
|
||||
(const byte*) BGCOL#0 = ((byte*))(word) 53280
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 = (word) 53266
|
||||
(const byte*) RASTER#0 = ((byte*))(word) 53266
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCROLL
|
||||
(const byte*) SCROLL#0 = (word) 53270
|
||||
(const byte*) SCROLL#0 = ((byte*))(word) 53270
|
||||
(byte*) TEXT
|
||||
(const byte*) TEXT#0 = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill)
|
||||
@ -4684,13 +4684,13 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = (word) 53266
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word) 53266
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCROLL
|
||||
(const byte*) SCROLL#0 SCROLL = (word) 53270
|
||||
(const byte*) SCROLL#0 SCROLL = ((byte*))(word) 53270
|
||||
(byte*) TEXT
|
||||
(const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill)
|
||||
|
@ -2,13 +2,13 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = (word) 53266
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word) 53266
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCROLL
|
||||
(const byte*) SCROLL#0 SCROLL = (word) 53270
|
||||
(const byte*) SCROLL#0 SCROLL = ((byte*))(word) 53270
|
||||
(byte*) TEXT
|
||||
(const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill)
|
||||
|
@ -55,95 +55,96 @@ scroll_bit::@4: scope:[scroll_bit] from scroll_bit
|
||||
[20] call next_char param-assignment [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ next_char::c#2 nxt#15 ] )
|
||||
to:scroll_bit::@8
|
||||
scroll_bit::@8: scope:[scroll_bit] from scroll_bit::@4
|
||||
[21] (word) scroll_bit::c#0 ← (byte) next_char::c#2 [ scroll_bit::c#0 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::c#0 nxt#15 ] )
|
||||
[22] (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte/signed byte/word/signed word) 3 [ scroll_bit::$4 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::$4 nxt#15 ] )
|
||||
[23] (byte*~) scroll_bit::$5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ scroll_bit::$5 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::$5 nxt#15 ] )
|
||||
[24] (byte*) current_chargen#5 ← (byte*~) scroll_bit::$5 [ current_chargen#5 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_chargen#5 nxt#15 ] )
|
||||
[21] (byte~) scroll_bit::$3 ← (byte) next_char::c#2 [ scroll_bit::$3 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::$3 nxt#15 ] )
|
||||
[22] (word) scroll_bit::c#0 ← ((word)) (byte~) scroll_bit::$3 [ scroll_bit::c#0 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::c#0 nxt#15 ] )
|
||||
[23] (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte/signed byte/word/signed word) 3 [ scroll_bit::$4 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::$4 nxt#15 ] )
|
||||
[24] (byte*~) scroll_bit::$5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ scroll_bit::$5 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::$5 nxt#15 ] )
|
||||
[25] (byte*) current_chargen#5 ← (byte*~) scroll_bit::$5 [ current_chargen#5 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_chargen#5 nxt#15 ] )
|
||||
to:scroll_bit::@1
|
||||
scroll_bit::@1: scope:[scroll_bit] from scroll_bit scroll_bit::@8
|
||||
[25] (byte*) nxt#36 ← phi( scroll_bit/(byte*) nxt#31 scroll_bit::@8/(byte*) nxt#15 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[25] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte/word/signed word) 128 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[25] (byte*) current_chargen#19 ← phi( scroll_bit/(byte*) current_chargen#27 scroll_bit::@8/(byte*) current_chargen#5 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[26] call scroll_hard param-assignment [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[26] (byte*) nxt#36 ← phi( scroll_bit/(byte*) nxt#31 scroll_bit::@8/(byte*) nxt#15 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[26] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte/word/signed word) 128 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[26] (byte*) current_chargen#19 ← phi( scroll_bit/(byte*) current_chargen#27 scroll_bit::@8/(byte*) current_chargen#5 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[27] call scroll_hard param-assignment [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_bit::@7
|
||||
scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1
|
||||
asm { sei }
|
||||
[28] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[29] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_bit::@2
|
||||
scroll_bit::@2: scope:[scroll_bit] from scroll_bit::@3 scroll_bit::@7
|
||||
[29] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word) 40+(byte/signed byte/word/signed word) 39 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[29] (byte) scroll_bit::r#2 ← phi( scroll_bit::@3/(byte) scroll_bit::r#1 scroll_bit::@7/(byte/signed byte/word/signed word) 0 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[30] (byte) scroll_bit::bits#0 ← (byte*) current_chargen#19 *idx (byte) scroll_bit::r#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] )
|
||||
[31] (byte~) scroll_bit::$10 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$10 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$10 ] )
|
||||
[32] if((byte~) scroll_bit::$10==(byte/signed byte/word/signed word) 0) goto scroll_bit::@3 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[30] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word) 40+(byte/signed byte/word/signed word) 39 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[30] (byte) scroll_bit::r#2 ← phi( scroll_bit::@3/(byte) scroll_bit::r#1 scroll_bit::@7/(byte/signed byte/word/signed word) 0 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[31] (byte) scroll_bit::bits#0 ← (byte*) current_chargen#19 *idx (byte) scroll_bit::r#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] )
|
||||
[32] (byte~) scroll_bit::$10 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$10 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$10 ] )
|
||||
[33] if((byte~) scroll_bit::$10==(byte/signed byte/word/signed word) 0) goto scroll_bit::@3 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
to:scroll_bit::@5
|
||||
scroll_bit::@5: scope:[scroll_bit] from scroll_bit::@2
|
||||
to:scroll_bit::@3
|
||||
scroll_bit::@3: scope:[scroll_bit] from scroll_bit::@2 scroll_bit::@5
|
||||
[33] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte/word/signed word) 128+(byte) ' ' ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] )
|
||||
[34] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[35] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word) 40 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] )
|
||||
[36] (byte) scroll_bit::r#1 ← ++ (byte) scroll_bit::r#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[37] if((byte) scroll_bit::r#1!=(byte/signed byte/word/signed word) 8) goto scroll_bit::@2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[34] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte/word/signed word) 128+(byte) ' ' ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] )
|
||||
[35] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[36] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word) 40 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] )
|
||||
[37] (byte) scroll_bit::r#1 ← ++ (byte) scroll_bit::r#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[38] if((byte) scroll_bit::r#1!=(byte/signed byte/word/signed word) 8) goto scroll_bit::@2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
to:scroll_bit::@6
|
||||
scroll_bit::@6: scope:[scroll_bit] from scroll_bit::@3
|
||||
[38] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[39] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
asm { cli }
|
||||
to:scroll_bit::@return
|
||||
scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6
|
||||
[40] return [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[41] return [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:@return
|
||||
scroll_hard: scope:[scroll_hard] from scroll_bit::@1
|
||||
[41] phi() [ ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[42] phi() [ ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_hard::@1
|
||||
scroll_hard::@1: scope:[scroll_hard] from scroll_hard scroll_hard::@1
|
||||
[42] (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte/signed byte/word/signed word) 0 scroll_hard::@1/(byte) scroll_hard::i#1 ) [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[43] (byte~) scroll_hard::$17 ← (const byte[]) scroll_hard::line0#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$17 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$17 ] )
|
||||
[44] *((const byte[]) scroll_hard::line0#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$17 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[45] (byte~) scroll_hard::$19 ← (const byte[]) scroll_hard::line1#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$19 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$19 ] )
|
||||
[46] *((const byte[]) scroll_hard::line1#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$19 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[47] (byte~) scroll_hard::$21 ← (const byte[]) scroll_hard::line2#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$21 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$21 ] )
|
||||
[48] *((const byte[]) scroll_hard::line2#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$21 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[49] (byte~) scroll_hard::$23 ← (const byte[]) scroll_hard::line3#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$23 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$23 ] )
|
||||
[50] *((const byte[]) scroll_hard::line3#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$23 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[51] (byte~) scroll_hard::$25 ← (const byte[]) scroll_hard::line4#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$25 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$25 ] )
|
||||
[52] *((const byte[]) scroll_hard::line4#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$25 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[53] (byte~) scroll_hard::$27 ← (const byte[]) scroll_hard::line5#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$27 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$27 ] )
|
||||
[54] *((const byte[]) scroll_hard::line5#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$27 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[55] (byte~) scroll_hard::$29 ← (const byte[]) scroll_hard::line6#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$29 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$29 ] )
|
||||
[56] *((const byte[]) scroll_hard::line6#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$29 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[57] (byte~) scroll_hard::$31 ← (const byte[]) scroll_hard::line7#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$31 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$31 ] )
|
||||
[58] *((const byte[]) scroll_hard::line7#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$31 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[59] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 [ scroll_hard::i#1 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
[60] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word) 39) goto scroll_hard::@1 [ scroll_hard::i#1 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
[43] (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte/signed byte/word/signed word) 0 scroll_hard::@1/(byte) scroll_hard::i#1 ) [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[44] (byte~) scroll_hard::$17 ← (const byte[]) scroll_hard::line0#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$17 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$17 ] )
|
||||
[45] *((const byte[]) scroll_hard::line0#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$17 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[46] (byte~) scroll_hard::$19 ← (const byte[]) scroll_hard::line1#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$19 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$19 ] )
|
||||
[47] *((const byte[]) scroll_hard::line1#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$19 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[48] (byte~) scroll_hard::$21 ← (const byte[]) scroll_hard::line2#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$21 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$21 ] )
|
||||
[49] *((const byte[]) scroll_hard::line2#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$21 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[50] (byte~) scroll_hard::$23 ← (const byte[]) scroll_hard::line3#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$23 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$23 ] )
|
||||
[51] *((const byte[]) scroll_hard::line3#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$23 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[52] (byte~) scroll_hard::$25 ← (const byte[]) scroll_hard::line4#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$25 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$25 ] )
|
||||
[53] *((const byte[]) scroll_hard::line4#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$25 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[54] (byte~) scroll_hard::$27 ← (const byte[]) scroll_hard::line5#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$27 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$27 ] )
|
||||
[55] *((const byte[]) scroll_hard::line5#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$27 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[56] (byte~) scroll_hard::$29 ← (const byte[]) scroll_hard::line6#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$29 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$29 ] )
|
||||
[57] *((const byte[]) scroll_hard::line6#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$29 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[58] (byte~) scroll_hard::$31 ← (const byte[]) scroll_hard::line7#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$31 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$31 ] )
|
||||
[59] *((const byte[]) scroll_hard::line7#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$31 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[60] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 [ scroll_hard::i#1 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
[61] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word) 39) goto scroll_hard::@1 [ scroll_hard::i#1 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
to:scroll_hard::@return
|
||||
scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1
|
||||
[61] return [ ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[62] return [ ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:27 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:@return
|
||||
next_char: scope:[next_char] from scroll_bit::@4
|
||||
[62] (byte) next_char::c#0 ← *((byte*) nxt#31) [ nxt#31 next_char::c#0 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ nxt#31 next_char::c#0 ] )
|
||||
[63] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 [ nxt#31 next_char::c#0 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ nxt#31 next_char::c#0 ] )
|
||||
[63] (byte) next_char::c#0 ← *((byte*) nxt#31) [ nxt#31 next_char::c#0 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ nxt#31 next_char::c#0 ] )
|
||||
[64] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 [ nxt#31 next_char::c#0 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ nxt#31 next_char::c#0 ] )
|
||||
to:next_char::@2
|
||||
next_char::@2: scope:[next_char] from next_char
|
||||
[64] (byte) next_char::c#1 ← *((const byte*) TEXT#0) [ next_char::c#1 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#1 ] )
|
||||
[65] (byte) next_char::c#1 ← *((const byte*) TEXT#0) [ next_char::c#1 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#1 ] )
|
||||
to:next_char::@1
|
||||
next_char::@1: scope:[next_char] from next_char next_char::@2
|
||||
[65] (byte) next_char::c#2 ← phi( next_char/(byte) next_char::c#0 next_char::@2/(byte) next_char::c#1 ) [ next_char::c#2 nxt#18 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#18 ] )
|
||||
[65] (byte*) nxt#18 ← phi( next_char/(byte*) nxt#31 next_char::@2/(const byte*) TEXT#0 ) [ next_char::c#2 nxt#18 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#18 ] )
|
||||
[66] (byte*) nxt#15 ← ++ (byte*) nxt#18 [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#15 ] )
|
||||
[66] (byte) next_char::c#2 ← phi( next_char/(byte) next_char::c#0 next_char::@2/(byte) next_char::c#1 ) [ next_char::c#2 nxt#18 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#18 ] )
|
||||
[66] (byte*) nxt#18 ← phi( next_char/(byte*) nxt#31 next_char::@2/(const byte*) TEXT#0 ) [ next_char::c#2 nxt#18 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#18 ] )
|
||||
[67] (byte*) nxt#15 ← ++ (byte*) nxt#18 [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#15 ] )
|
||||
to:next_char::@return
|
||||
next_char::@return: scope:[next_char] from next_char::@1
|
||||
[67] return [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#15 ] )
|
||||
[68] return [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#15 ] )
|
||||
to:@return
|
||||
fillscreen: scope:[fillscreen] from main
|
||||
[68] phi() [ ] ( main:0::fillscreen:2 [ ] )
|
||||
[69] phi() [ ] ( main:0::fillscreen:2 [ ] )
|
||||
to:fillscreen::@1
|
||||
fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1
|
||||
[69] (byte*) fillscreen::cursor#2 ← phi( fillscreen/(const byte*) SCREEN#0 fillscreen::@1/(byte*) fillscreen::cursor#1 ) [ fillscreen::cursor#2 ] ( main:0::fillscreen:2 [ fillscreen::cursor#2 ] )
|
||||
[70] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:0::fillscreen:2 [ fillscreen::cursor#2 ] )
|
||||
[71] (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 [ fillscreen::cursor#1 ] ( main:0::fillscreen:2 [ fillscreen::cursor#1 ] )
|
||||
[72] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:0::fillscreen:2 [ fillscreen::cursor#1 ] )
|
||||
[70] (byte*) fillscreen::cursor#2 ← phi( fillscreen/(const byte*) SCREEN#0 fillscreen::@1/(byte*) fillscreen::cursor#1 ) [ fillscreen::cursor#2 ] ( main:0::fillscreen:2 [ fillscreen::cursor#2 ] )
|
||||
[71] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:0::fillscreen:2 [ fillscreen::cursor#2 ] )
|
||||
[72] (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 [ fillscreen::cursor#1 ] ( main:0::fillscreen:2 [ fillscreen::cursor#1 ] )
|
||||
[73] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:0::fillscreen:2 [ fillscreen::cursor#1 ] )
|
||||
to:fillscreen::@return
|
||||
fillscreen::@return: scope:[fillscreen] from fillscreen::@1
|
||||
[73] return [ ] ( main:0::fillscreen:2 [ ] )
|
||||
[74] return [ ] ( main:0::fillscreen:2 [ ] )
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,17 +2,17 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
(const byte*) BGCOL#0 BGCOL = (word) 53280
|
||||
(const byte*) BGCOL#0 BGCOL = ((byte*))(word) 53280
|
||||
(byte*) CHARGEN
|
||||
(const byte*) CHARGEN#0 CHARGEN = (word) 53248
|
||||
(const byte*) CHARGEN#0 CHARGEN = ((byte*))(word) 53248
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 PROCPORT = (byte/signed byte/word/signed word) 1
|
||||
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word) 1
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = (word) 53266
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word) 53266
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCROLL
|
||||
(const byte*) SCROLL#0 SCROLL = (word) 53270
|
||||
(const byte*) SCROLL#0 SCROLL = ((byte*))(word) 53270
|
||||
(byte*) TEXT
|
||||
(const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
(byte) current_bit
|
||||
@ -51,7 +51,7 @@
|
||||
(byte) next_char::return
|
||||
(byte*) nxt
|
||||
(byte*) nxt#0 nxt zp ZP_PTR_BYTE:7 2.5
|
||||
(byte*) nxt#15 nxt zp ZP_PTR_BYTE:7 0.5714285714285714
|
||||
(byte*) nxt#15 nxt zp ZP_PTR_BYTE:7 0.5
|
||||
(byte*) nxt#18 nxt zp ZP_PTR_BYTE:7 4.0
|
||||
(byte*) nxt#31 nxt zp ZP_PTR_BYTE:7 1.5454545454545456
|
||||
(byte*) nxt#36 nxt zp ZP_PTR_BYTE:7 0.3529411764705882
|
||||
@ -62,6 +62,7 @@
|
||||
(void()) scroll_bit()
|
||||
(byte~) scroll_bit::$0 reg byte a 4.0
|
||||
(byte~) scroll_bit::$10 reg byte a 22.0
|
||||
(byte~) scroll_bit::$3 reg byte a 4.0
|
||||
(word~) scroll_bit::$4 $4 zp ZP_WORD:9 4.0
|
||||
(byte*~) scroll_bit::$5 $5 zp ZP_PTR_BYTE:3 4.0
|
||||
(label) scroll_bit::@1
|
||||
@ -130,6 +131,7 @@ reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
|
||||
zp ZP_PTR_BYTE:7 [ nxt#18 nxt#31 nxt#0 nxt#36 nxt#15 ]
|
||||
reg byte a [ next_char::c#2 next_char::c#0 next_char::c#1 ]
|
||||
reg byte a [ scroll_bit::$0 ]
|
||||
reg byte a [ scroll_bit::$3 ]
|
||||
zp ZP_WORD:9 [ scroll_bit::c#0 scroll_bit::$4 ]
|
||||
reg byte a [ scroll_bit::bits#0 ]
|
||||
reg byte a [ scroll_bit::$10 ]
|
||||
|
@ -16,7 +16,8 @@ main::@return: scope:[main] from main::@1
|
||||
[4] return [ ] ( main:0 [ ] )
|
||||
to:@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
[5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] )
|
||||
[6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] )
|
||||
[7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] )
|
||||
[5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ] ( main:0 [ main::i#2 main::j#2 main::$2 ] )
|
||||
[6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] )
|
||||
[7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] )
|
||||
[8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] )
|
||||
to:main::@1
|
||||
|
@ -4,7 +4,7 @@ void main() {
|
||||
byte j = 0;
|
||||
signed byte i = -127;
|
||||
while(i<127) {
|
||||
screen[j] = i;
|
||||
screen[j] = (byte)i;
|
||||
i++;
|
||||
j++;
|
||||
}
|
||||
@ -23,7 +23,8 @@ main::@1:
|
||||
if((boolean~) main::$1) goto main::@2
|
||||
goto main::@3
|
||||
main::@2:
|
||||
*((byte[]) main::screen + (byte) main::j) ← (signed byte) main::i
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i
|
||||
*((byte[]) main::screen + (byte) main::j) ← (byte~) main::$2
|
||||
(signed byte) main::i ← ++ (signed byte) main::i
|
||||
(byte) main::j ← ++ (byte) main::j
|
||||
goto main::@1
|
||||
@ -37,6 +38,7 @@ SYMBOLS
|
||||
(void()) main()
|
||||
(signed byte/signed word~) main::$0
|
||||
(boolean~) main::$1
|
||||
(byte~) main::$2
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
@ -49,7 +51,7 @@ INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte[]) main::screen ← (word/signed word) 1024
|
||||
(byte[]) main::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte/signed word~) main::$0 ← - (byte/signed byte/word/signed word) 127
|
||||
(signed byte) main::i ← (signed byte/signed word~) main::$0
|
||||
@ -59,7 +61,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((boolean~) main::$1) goto main::@2
|
||||
to:main::@4
|
||||
main::@2: scope:[main] from main::@1 main::@5
|
||||
*((byte[]) main::screen + (byte) main::j) ← (signed byte) main::i
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i
|
||||
*((byte[]) main::screen + (byte) main::j) ← (byte~) main::$2
|
||||
(signed byte) main::i ← ++ (signed byte) main::i
|
||||
(byte) main::j ← ++ (byte) main::j
|
||||
to:main::@1
|
||||
@ -87,7 +90,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte[]) main::screen ← (word/signed word) 1024
|
||||
(byte[]) main::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte/signed word~) main::$0 ← - (byte/signed byte/word/signed word) 127
|
||||
(signed byte) main::i ← (signed byte/signed word~) main::$0
|
||||
@ -97,7 +100,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((boolean~) main::$1) goto main::@2
|
||||
to:main::@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((byte[]) main::screen + (byte) main::j) ← (signed byte) main::i
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i
|
||||
*((byte[]) main::screen + (byte) main::j) ← (byte~) main::$2
|
||||
(signed byte) main::i ← ++ (signed byte) main::i
|
||||
(byte) main::j ← ++ (byte) main::j
|
||||
to:main::@1
|
||||
@ -115,7 +119,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[]) main::screen ← (word/signed word) 1024
|
||||
(byte[]) main::screen ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte/signed word~) main::$0 ← - (byte/signed byte/word/signed word) 127
|
||||
(signed byte) main::i ← (signed byte/signed word~) main::$0
|
||||
@ -125,7 +129,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((boolean~) main::$1) goto main::@2
|
||||
to:main::@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((byte[]) main::screen + (byte) main::j) ← (signed byte) main::i
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i
|
||||
*((byte[]) main::screen + (byte) main::j) ← (byte~) main::$2
|
||||
(signed byte) main::i ← ++ (signed byte) main::i
|
||||
(byte) main::j ← ++ (byte) main::j
|
||||
to:main::@1
|
||||
@ -145,7 +150,7 @@ CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte/signed word~) main::$0 ← - (byte/signed byte/word/signed word) 127
|
||||
(signed byte) main::i#0 ← (signed byte/signed word~) main::$0
|
||||
@ -161,7 +166,8 @@ main::@2: scope:[main] from main::@1
|
||||
(byte) main::j#2 ← phi( main::@1/(byte) main::j#3 )
|
||||
(byte[]) main::screen#1 ← phi( main::@1/(byte[]) main::screen#2 )
|
||||
(signed byte) main::i#3 ← phi( main::@1/(signed byte) main::i#2 )
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (signed byte) main::i#3
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#3
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#3
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -179,7 +185,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte/signed word~) main::$0 ← - (byte/signed byte/word/signed word) 127
|
||||
(signed byte) main::i#0 ← (signed byte/signed word~) main::$0
|
||||
@ -195,7 +201,8 @@ main::@2: scope:[main] from main::@1
|
||||
(byte) main::j#2 ← phi( main::@1/(byte) main::j#3 )
|
||||
(byte[]) main::screen#1 ← phi( main::@1/(byte[]) main::screen#2 )
|
||||
(signed byte) main::i#3 ← phi( main::@1/(signed byte) main::i#2 )
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (signed byte) main::i#3
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#3
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#3
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -217,6 +224,7 @@ INITIAL SSA SYMBOL TABLE
|
||||
(void()) main()
|
||||
(signed byte/signed word~) main::$0
|
||||
(boolean~) main::$1
|
||||
(byte~) main::$2
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
@ -241,7 +249,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte/signed word~) main::$0 ← - (byte/signed byte/word/signed word) 127
|
||||
(signed byte) main::i#0 ← (signed byte/signed word~) main::$0
|
||||
@ -257,7 +265,8 @@ main::@2: scope:[main] from main::@1
|
||||
(byte) main::j#2 ← phi( main::@1/(byte) main::j#3 )
|
||||
(byte[]) main::screen#1 ← phi( main::@1/(byte[]) main::screen#2 )
|
||||
(signed byte) main::i#3 ← phi( main::@1/(signed byte) main::i#2 )
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (signed byte) main::i#3
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#3
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#3
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -278,7 +287,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte) main::i#0 ← - (byte/signed byte/word/signed word) 127
|
||||
to:main::@1
|
||||
@ -290,7 +299,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((boolean~) main::$1) goto main::@2
|
||||
to:main::@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (signed byte) main::i#2
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#2
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#2
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -308,7 +318,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte) main::i#0 ← - (byte/signed byte/word/signed word) 127
|
||||
to:main::@1
|
||||
@ -320,7 +330,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((boolean~) main::$1) goto main::@2
|
||||
to:main::@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (signed byte) main::i#2
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#2
|
||||
*((byte[]) main::screen#1 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#2
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -338,7 +349,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte) main::i#0 ← - (byte/signed byte/word/signed word) 127
|
||||
to:main::@1
|
||||
@ -349,7 +360,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((boolean~) main::$1) goto main::@2
|
||||
to:main::@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#2
|
||||
*((byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#2
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -367,7 +379,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte[]) main::screen#0 ← (word/signed word) 1024
|
||||
(byte[]) main::screen#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
(signed byte) main::i#0 ← - (byte/signed byte/word/signed word) 127
|
||||
to:main::@1
|
||||
@ -377,7 +389,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((signed byte) main::i#2<(byte/signed byte/word/signed word) 127) goto main::@2
|
||||
to:main::@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#2
|
||||
*((byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#2
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -389,7 +402,7 @@ main::@return: scope:[main] from main::@1
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte[]) main::screen#0 = 1024
|
||||
Constant (const byte[]) main::screen#0 = ((byte*))1024
|
||||
Constant (const byte) main::j#0 = 0
|
||||
Constant (const signed byte) main::i#0 = -127
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
@ -404,7 +417,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((signed byte) main::i#2<(byte/signed byte/word/signed word) 127) goto main::@2
|
||||
to:main::@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#2
|
||||
*((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#2
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -434,7 +448,8 @@ main::@1: scope:[main] from main main::@2
|
||||
if((signed byte) main::i#2<(byte/signed byte/word/signed word) 127) goto main::@2
|
||||
to:main::@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#2
|
||||
*((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#2
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
to:main::@1
|
||||
@ -451,6 +466,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(byte~) main::$2
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
@ -461,7 +477,7 @@ FINAL SYMBOL TABLE
|
||||
(byte) main::j#1
|
||||
(byte) main::j#2
|
||||
(byte[]) main::screen
|
||||
(const byte[]) main::screen#0 = (word/signed word) 1024
|
||||
(const byte[]) main::screen#0 = ((byte*))(word/signed word) 1024
|
||||
|
||||
Block Sequence Planned @begin @1 @end main main::@1 main::@return main::@2
|
||||
Block Sequence Planned @begin @1 @end main main::@1 main::@return main::@2
|
||||
@ -483,7 +499,8 @@ main::@return: scope:[main] from main::@1
|
||||
return
|
||||
to:@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
*((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2
|
||||
(byte~) main::$2 ← ((byte)) (signed byte) main::i#2
|
||||
*((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2
|
||||
(signed byte) main::i#1 ← ++ (signed byte) main::i#2
|
||||
(byte) main::j#1 ← ++ (byte) main::j#2
|
||||
(signed byte~) main::i#4 ← (signed byte) main::i#1
|
||||
@ -497,6 +514,7 @@ Calls in [] to main:0
|
||||
Propagating live ranges...
|
||||
Propagating live ranges...
|
||||
Propagating live ranges...
|
||||
Propagating live ranges...
|
||||
CONTROL FLOW GRAPH - LIVE RANGES FOUND
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
@ -516,22 +534,24 @@ main::@return: scope:[main] from main::@1
|
||||
[4] return [ ]
|
||||
to:@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
[5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ]
|
||||
[6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ]
|
||||
[7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ]
|
||||
[8] (signed byte~) main::i#4 ← (signed byte) main::i#1 [ main::i#4 main::j#1 ]
|
||||
[9] (byte~) main::j#4 ← (byte) main::j#1 [ main::i#4 main::j#4 ]
|
||||
[5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ]
|
||||
[6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ]
|
||||
[7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ]
|
||||
[8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ]
|
||||
[9] (signed byte~) main::i#4 ← (signed byte) main::i#1 [ main::i#4 main::j#1 ]
|
||||
[10] (byte~) main::j#4 ← (byte) main::j#1 [ main::i#4 main::j#4 ]
|
||||
to:main::@1
|
||||
|
||||
Created 2 initial phi equivalence classes
|
||||
Coalesced [8] main::i#4 ← main::i#1
|
||||
Coalesced [9] main::j#4 ← main::j#1
|
||||
Coalesced [9] main::i#4 ← main::i#1
|
||||
Coalesced [10] main::j#4 ← main::j#1
|
||||
Coalesced down to 2 phi equivalence classes
|
||||
Block Sequence Planned @begin @1 @end main main::@1 main::@return main::@2
|
||||
Adding NOP phi() at start of main
|
||||
Propagating live ranges...
|
||||
Propagating live ranges...
|
||||
Propagating live ranges...
|
||||
Propagating live ranges...
|
||||
CONTROL FLOW GRAPH - BEFORE EFFECTIVE LIVE RANGES
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
@ -551,9 +571,10 @@ main::@return: scope:[main] from main::@1
|
||||
[4] return [ ]
|
||||
to:@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
[5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ]
|
||||
[6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ]
|
||||
[7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ]
|
||||
[5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ]
|
||||
[6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ]
|
||||
[7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ]
|
||||
[8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ]
|
||||
to:main::@1
|
||||
|
||||
CONTROL FLOW GRAPH - PHI MEM COALESCED
|
||||
@ -575,9 +596,10 @@ main::@return: scope:[main] from main::@1
|
||||
[4] return [ ] ( main:0 [ ] )
|
||||
to:@return
|
||||
main::@2: scope:[main] from main::@1
|
||||
[5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] )
|
||||
[6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] )
|
||||
[7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] )
|
||||
[5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ] ( main:0 [ main::i#2 main::j#2 main::$2 ] )
|
||||
[6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] )
|
||||
[7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] )
|
||||
[8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] )
|
||||
to:main::@1
|
||||
|
||||
DOMINATORS
|
||||
@ -603,22 +625,26 @@ Loop head: main::@1 tails: main::@2 blocks: main::@2 main::@1 depth: 1
|
||||
|
||||
VARIABLE REGISTER WEIGHTS
|
||||
(void()) main()
|
||||
(byte~) main::$2 22.0
|
||||
(signed byte) main::i
|
||||
(signed byte) main::i#1 11.0
|
||||
(signed byte) main::i#2 14.666666666666666
|
||||
(signed byte) main::i#2 11.0
|
||||
(byte) main::j
|
||||
(byte) main::j#1 22.0
|
||||
(byte) main::j#2 8.25
|
||||
(byte) main::j#2 6.6000000000000005
|
||||
(byte[]) main::screen
|
||||
|
||||
Initial phi equivalence classes
|
||||
[ main::i#2 main::i#1 ]
|
||||
[ main::j#2 main::j#1 ]
|
||||
Added variable main::$2 to zero page equivalence class [ main::$2 ]
|
||||
Complete equivalence classes
|
||||
[ main::i#2 main::i#1 ]
|
||||
[ main::j#2 main::j#1 ]
|
||||
[ main::$2 ]
|
||||
Allocated zp ZP_SBYTE:2 [ main::i#2 main::i#1 ]
|
||||
Allocated zp ZP_BYTE:3 [ main::j#2 main::j#1 ]
|
||||
Allocated zp ZP_BYTE:4 [ main::$2 ]
|
||||
INITIAL ASM
|
||||
//SEG0 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
@ -640,6 +666,7 @@ bend:
|
||||
//SEG7 main
|
||||
main: {
|
||||
.const screen = $400
|
||||
.label _2 = 4
|
||||
.label i = 2
|
||||
.label j = 3
|
||||
//SEG8 [2] phi from main to main::@1 [phi:main->main::@1]
|
||||
@ -668,18 +695,21 @@ main: {
|
||||
rts
|
||||
//SEG15 main::@2
|
||||
b2:
|
||||
//SEG16 [5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_zpby1=zpsby1
|
||||
//SEG16 [5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ] ( main:0 [ main::i#2 main::j#2 main::$2 ] ) -- zpby1=_byte_zpsby1
|
||||
lda i
|
||||
sta _2
|
||||
//SEG17 [6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_zpby1=zpby2
|
||||
lda _2
|
||||
ldx j
|
||||
sta screen,x
|
||||
//SEG17 [6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
//SEG18 [7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
inc i
|
||||
//SEG18 [7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- zpby1=_inc_zpby1
|
||||
//SEG19 [8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- zpby1=_inc_zpby1
|
||||
inc j
|
||||
//SEG19 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG20 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
b1_from_b2:
|
||||
//SEG20 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG21 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
//SEG21 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG22 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
jmp b1
|
||||
}
|
||||
|
||||
@ -699,17 +729,16 @@ MISSING FRAGMENTS
|
||||
Statement [3] if((signed byte) main::i#2<(byte/signed byte/word/signed word) 127) goto main::@2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) always clobbers reg byte a
|
||||
Potential registers zp ZP_SBYTE:2 [ main::i#2 main::i#1 ] : zp ZP_SBYTE:2 , reg sbyte a , reg sbyte x , reg sbyte y ,
|
||||
Potential registers zp ZP_BYTE:3 [ main::j#2 main::j#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:4 [ main::$2 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y ,
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [main] 30.25: zp ZP_BYTE:3 [ main::j#2 main::j#1 ] 25.67: zp ZP_SBYTE:2 [ main::i#2 main::i#1 ]
|
||||
Uplift Scope [main] 28.6: zp ZP_BYTE:3 [ main::j#2 main::j#1 ] 22: zp ZP_SBYTE:2 [ main::i#2 main::i#1 ] 22: zp ZP_BYTE:4 [ main::$2 ]
|
||||
Uplift Scope []
|
||||
|
||||
Uplifting [main] best 495 combination reg byte x [ main::j#2 main::j#1 ] zp ZP_SBYTE:2 [ main::i#2 main::i#1 ]
|
||||
Uplifting [main] best 495 combination reg byte x [ main::j#2 main::j#1 ] zp ZP_SBYTE:2 [ main::i#2 main::i#1 ] reg byte a [ main::$2 ]
|
||||
Uplifting [] best 495 combination
|
||||
MISSING FRAGMENTS
|
||||
asby=_inc_asby
|
||||
cowo1_derefidx_xby=asby
|
||||
cowo1_derefidx_yby=asby
|
||||
xsby_lt_coby1_then_la1
|
||||
ysby_lt_coby1_then_la1
|
||||
Removing instruction jmp b1
|
||||
@ -760,17 +789,18 @@ main: {
|
||||
rts
|
||||
//SEG15 main::@2
|
||||
b2:
|
||||
//SEG16 [5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_xby=zpsby1
|
||||
//SEG16 [5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ] ( main:0 [ main::i#2 main::j#2 main::$2 ] ) -- aby=_byte_zpsby1
|
||||
lda i
|
||||
//SEG17 [6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta screen,x
|
||||
//SEG17 [6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
//SEG18 [7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
inc i
|
||||
//SEG18 [7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- xby=_inc_xby
|
||||
//SEG19 [8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- xby=_inc_xby
|
||||
inx
|
||||
//SEG19 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG20 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
b1_from_b2:
|
||||
//SEG20 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG21 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
//SEG21 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG22 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
jmp b1
|
||||
}
|
||||
|
||||
@ -818,17 +848,18 @@ main: {
|
||||
rts
|
||||
//SEG15 main::@2
|
||||
b2:
|
||||
//SEG16 [5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_xby=zpsby1
|
||||
//SEG16 [5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ] ( main:0 [ main::i#2 main::j#2 main::$2 ] ) -- aby=_byte_zpsby1
|
||||
lda i
|
||||
//SEG17 [6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta screen,x
|
||||
//SEG17 [6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
//SEG18 [7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
inc i
|
||||
//SEG18 [7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- xby=_inc_xby
|
||||
//SEG19 [8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- xby=_inc_xby
|
||||
inx
|
||||
//SEG19 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG20 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
b1_from_b2:
|
||||
//SEG20 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG21 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
//SEG21 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG22 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
jmp b1
|
||||
}
|
||||
|
||||
@ -875,16 +906,17 @@ main: {
|
||||
rts
|
||||
//SEG15 main::@2
|
||||
b2:
|
||||
//SEG16 [5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_xby=zpsby1
|
||||
//SEG16 [5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ] ( main:0 [ main::i#2 main::j#2 main::$2 ] ) -- aby=_byte_zpsby1
|
||||
lda i
|
||||
//SEG17 [6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta screen,x
|
||||
//SEG17 [6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
//SEG18 [7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
inc i
|
||||
//SEG18 [7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- xby=_inc_xby
|
||||
//SEG19 [8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- xby=_inc_xby
|
||||
inx
|
||||
//SEG19 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG20 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG21 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
//SEG20 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG21 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG22 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
jmp b1
|
||||
}
|
||||
|
||||
@ -893,20 +925,22 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(byte~) main::$2 reg byte a 22.0
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(signed byte) main::i
|
||||
(signed byte) main::i#1 i zp ZP_SBYTE:2 11.0
|
||||
(signed byte) main::i#2 i zp ZP_SBYTE:2 14.666666666666666
|
||||
(signed byte) main::i#2 i zp ZP_SBYTE:2 11.0
|
||||
(byte) main::j
|
||||
(byte) main::j#1 reg byte x 22.0
|
||||
(byte) main::j#2 reg byte x 8.25
|
||||
(byte) main::j#2 reg byte x 6.6000000000000005
|
||||
(byte[]) main::screen
|
||||
(const byte[]) main::screen#0 screen = (word/signed word) 1024
|
||||
(const byte[]) main::screen#0 screen = ((byte*))(word/signed word) 1024
|
||||
|
||||
zp ZP_SBYTE:2 [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::j#2 main::j#1 ]
|
||||
reg byte a [ main::$2 ]
|
||||
|
||||
FINAL CODE
|
||||
//SEG0 Basic Upstart
|
||||
@ -945,16 +979,17 @@ main: {
|
||||
rts
|
||||
//SEG15 main::@2
|
||||
b2:
|
||||
//SEG16 [5] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (signed byte) main::i#2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_xby=zpsby1
|
||||
//SEG16 [5] (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 [ main::i#2 main::j#2 main::$2 ] ( main:0 [ main::i#2 main::j#2 main::$2 ] ) -- aby=_byte_zpsby1
|
||||
lda i
|
||||
//SEG17 [6] *((const byte[]) main::screen#0 + (byte) main::j#2) ← (byte~) main::$2 [ main::i#2 main::j#2 ] ( main:0 [ main::i#2 main::j#2 ] ) -- cowo1_derefidx_xby=aby
|
||||
sta screen,x
|
||||
//SEG17 [6] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
//SEG18 [7] (signed byte) main::i#1 ← ++ (signed byte) main::i#2 [ main::j#2 main::i#1 ] ( main:0 [ main::j#2 main::i#1 ] ) -- zpsby1=_inc_zpsby1
|
||||
inc i
|
||||
//SEG18 [7] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- xby=_inc_xby
|
||||
//SEG19 [8] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#1 main::j#1 ] ( main:0 [ main::i#1 main::j#1 ] ) -- xby=_inc_xby
|
||||
inx
|
||||
//SEG19 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG20 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG21 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
//SEG20 [2] phi from main::@2 to main::@1 [phi:main::@2->main::@1]
|
||||
//SEG21 [2] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@1#0] -- register_copy
|
||||
//SEG22 [2] phi (signed byte) main::i#2 = (signed byte) main::i#1 [phi:main::@2->main::@1#1] -- register_copy
|
||||
jmp b1
|
||||
}
|
||||
|
||||
|
@ -2,17 +2,19 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(byte~) main::$2 reg byte a 22.0
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(signed byte) main::i
|
||||
(signed byte) main::i#1 i zp ZP_SBYTE:2 11.0
|
||||
(signed byte) main::i#2 i zp ZP_SBYTE:2 14.666666666666666
|
||||
(signed byte) main::i#2 i zp ZP_SBYTE:2 11.0
|
||||
(byte) main::j
|
||||
(byte) main::j#1 reg byte x 22.0
|
||||
(byte) main::j#2 reg byte x 8.25
|
||||
(byte) main::j#2 reg byte x 6.6000000000000005
|
||||
(byte[]) main::screen
|
||||
(const byte[]) main::screen#0 screen = (word/signed word) 1024
|
||||
(const byte[]) main::screen#0 screen = ((byte*))(word/signed word) 1024
|
||||
|
||||
zp ZP_SBYTE:2 [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::j#2 main::j#1 ]
|
||||
reg byte a [ main::$2 ]
|
||||
|
@ -19,7 +19,7 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
*((byte*) SCREEN) ← (byte/signed byte/word/signed word) 1
|
||||
@ -36,7 +36,7 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
*((byte*) SCREEN) ← (byte/signed byte/word/signed word) 1
|
||||
@ -55,7 +55,7 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 )
|
||||
@ -74,7 +74,7 @@ main::@return: scope:[main] from main
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 )
|
||||
@ -107,7 +107,7 @@ Culled Empty Block (label) @2
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#2 )
|
||||
@ -126,7 +126,7 @@ Alias (byte*) SCREEN#0 = (byte*) SCREEN#1 (byte*) SCREEN#2
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
*((byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1
|
||||
@ -139,7 +139,7 @@ main::@return: scope:[main] from main
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -160,7 +160,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@return
|
||||
|
||||
@ -376,7 +376,7 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@return
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) main()
|
||||
(label) main::@return
|
||||
|
||||
|
@ -379,8 +379,8 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) COLORS ← (word) 55296
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS ← ((byte*)) (word) 55296
|
||||
(byte) FILL ← (byte/word/signed word) 230
|
||||
(byte) numpoints ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -629,8 +629,8 @@ Removing empty block findcol::@15
|
||||
Removing empty block findcol::@18
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) COLORS ← (word) 55296
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS ← ((byte*)) (word) 55296
|
||||
(byte) FILL ← (byte/word/signed word) 230
|
||||
(byte) numpoints ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -848,8 +848,8 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) COLORS ← (word) 55296
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS ← ((byte*)) (word) 55296
|
||||
(byte) FILL ← (byte/word/signed word) 230
|
||||
(byte) numpoints ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -1093,8 +1093,8 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -1547,8 +1547,8 @@ findcol::@17: scope:[findcol] from findcol::@8
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -2394,8 +2394,8 @@ Culled Empty Block (label) @6
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -2855,8 +2855,8 @@ Inversing boolean not (boolean~) findcol::$17 ← (byte) findcol::diff#6 >= (byt
|
||||
Succesful SSA optimization Pass2UnaryNotSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -3378,8 +3378,8 @@ Alias (byte) findcol::mincol#2 = (byte) findcol::mincol#3 (byte) findcol::return
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -3678,8 +3678,8 @@ Alias (byte) findcol::mincol#10 = (byte) findcol::mincol#11 (byte) findcol::minc
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -3939,8 +3939,8 @@ Self Phi Eliminated (byte[]) COLS#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -4195,8 +4195,8 @@ Redundant Phi (byte[]) COLS#1 (byte[]) COLS#11
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -4428,8 +4428,8 @@ Simple Condition (boolean~) findcol::$19 if((byte) findcol::i#1<(byte) numpoints
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← (word) 55296
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(byte*) COLORS#0 ← ((byte*)) (word) 55296
|
||||
(byte) FILL#0 ← (byte/word/signed word) 230
|
||||
(byte) numpoints#0 ← (byte/signed byte/word/signed word) 6
|
||||
(byte[]) XPOS#0 ← { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
@ -4628,8 +4628,8 @@ findcol::@17: scope:[findcol] from findcol::@8
|
||||
to:@end
|
||||
@end: scope:[] from @5
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) COLORS#0 = 55296
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const byte*) COLORS#0 = ((byte*))55296
|
||||
Constant (const byte) FILL#0 = 230
|
||||
Constant (const byte) numpoints#0 = 6
|
||||
Constant (const byte[]) XPOS#0 = { 5, 15, 6, 34, 21, 31 }
|
||||
@ -5995,13 +5995,13 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) COLORS
|
||||
(const byte*) COLORS#0 = (word) 55296
|
||||
(const byte*) COLORS#0 = ((byte*))(word) 55296
|
||||
(byte[]) COLS
|
||||
(const byte[]) COLS#0 = { (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 7 }
|
||||
(byte) FILL
|
||||
(const byte) FILL#0 = (byte/word/signed word) 230
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte[]) XPOS
|
||||
(const byte[]) XPOS#0 = { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
(byte[]) YPOS
|
||||
@ -10402,13 +10402,13 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) COLORS
|
||||
(const byte*) COLORS#0 COLORS = (word) 55296
|
||||
(const byte*) COLORS#0 COLORS = ((byte*))(word) 55296
|
||||
(byte[]) COLS
|
||||
(const byte[]) COLS#0 COLS = { (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 7 }
|
||||
(byte) FILL
|
||||
(const byte) FILL#0 FILL = (byte/word/signed word) 230
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[]) XPOS
|
||||
(const byte[]) XPOS#0 XPOS = { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
(byte[]) YPOS
|
||||
|
@ -2,13 +2,13 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) COLORS
|
||||
(const byte*) COLORS#0 COLORS = (word) 55296
|
||||
(const byte*) COLORS#0 COLORS = ((byte*))(word) 55296
|
||||
(byte[]) COLS
|
||||
(const byte[]) COLS#0 COLS = { (byte/signed byte/word/signed word) 1, (byte/signed byte/word/signed word) 2, (byte/signed byte/word/signed word) 3, (byte/signed byte/word/signed word) 4, (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 7 }
|
||||
(byte) FILL
|
||||
(const byte) FILL#0 FILL = (byte/word/signed word) 230
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte[]) XPOS
|
||||
(const byte[]) XPOS#0 XPOS = { (byte/signed byte/word/signed word) 5, (byte/signed byte/word/signed word) 15, (byte/signed byte/word/signed word) 6, (byte/signed byte/word/signed word) 34, (byte/signed byte/word/signed word) 21, (byte/signed byte/word/signed word) 31 }
|
||||
(byte[]) YPOS
|
||||
|
@ -91,9 +91,9 @@ SYMBOLS
|
||||
|
||||
INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2 ← (word/signed word~) $0
|
||||
(byte*) SCREEN2 ← ((byte*)) (word/signed word~) $0
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -154,9 +154,9 @@ Removing empty block @2
|
||||
Removing empty block sum2::@1
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2 ← (word/signed word~) $0
|
||||
(byte*) SCREEN2 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -204,9 +204,9 @@ PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN ← (word/signed word) 1024
|
||||
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2 ← (word/signed word~) $0
|
||||
(byte*) SCREEN2 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i ← (byte/signed byte/word/signed word) 0
|
||||
@ -271,9 +271,9 @@ Completing Phi functions...
|
||||
Completing Phi functions...
|
||||
CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2#0 ← (word/signed word~) $0
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN2#4 ← phi( @3/(byte*) SCREEN2#5 )
|
||||
@ -356,9 +356,9 @@ sum2::@return: scope:[sum2] from sum2
|
||||
|
||||
CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2#0 ← (word/signed word~) $0
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN2#4 ← phi( @3/(byte*) SCREEN2#5 )
|
||||
@ -522,9 +522,9 @@ Culled Empty Block (label) @4
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2#0 ← (word/signed word~) $0
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte*) SCREEN2#4 ← phi( @3/(byte*) SCREEN2#5 )
|
||||
@ -614,7 +614,7 @@ Not aliassing across scopes: sum2::b#0 main::$3
|
||||
Not aliassing across scopes: sum2::c#0 main::$4
|
||||
Not aliassing across scopes: main::$5 sum2::return#3
|
||||
Alias (byte*) SCREEN#0 = (byte*) SCREEN#3 (byte*) SCREEN#5
|
||||
Alias (byte*) SCREEN2#0 = (byte*) SCREEN2#4 (byte*) SCREEN2#5 (word/signed word~) $0
|
||||
Alias (byte*) SCREEN2#0 = (byte*) SCREEN2#4 (byte*) SCREEN2#5
|
||||
Alias (byte) sum::return#0 = (byte) sum::return#2 (byte) sum::return#3 (byte) sum::return#1 (byte~) sum::$1 (byte) sum::return#4
|
||||
Alias (byte*) SCREEN#1 = (byte*) SCREEN#2 (byte*) SCREEN#4
|
||||
Alias (byte) main::i#2 = (byte) main::i#3 (byte) main::i#4
|
||||
@ -629,8 +629,9 @@ Alias (byte) sum2::c#0 = (byte) sum2::c#1
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -698,8 +699,9 @@ Self Phi Eliminated (byte*) SCREEN2#1
|
||||
Succesful SSA optimization Pass2SelfPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -759,8 +761,9 @@ Redundant Phi (byte*) SCREEN2#1 (byte*) SCREEN2#0
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -817,8 +820,9 @@ Simple Condition (boolean~) main::$6 if((byte) main::i#1!=(byte/signed byte/word
|
||||
Succesful SSA optimization Pass2ConditionalJumpSimplification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN#0 ← (word/signed word) 1024
|
||||
(byte*) SCREEN2#0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024
|
||||
(word/signed word~) $0 ← (word/signed word) 1024 + (byte/signed byte/word/signed word) 40
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (word/signed word~) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
(byte) main::i#0 ← (byte/signed byte/word/signed word) 0
|
||||
@ -870,11 +874,66 @@ sum2::@return: scope:[sum2] from sum2
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Constant (const byte*) SCREEN#0 = 1024
|
||||
Constant (const byte*) SCREEN2#0 = 1024+40
|
||||
Constant (const byte*) SCREEN#0 = ((byte*))1024
|
||||
Constant (const word/signed word) $0 = 1024+40
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte*) SCREEN2#0 ← ((byte*)) (const word/signed word) $0
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@4
|
||||
(byte) main::i#2 ← phi( main/(const byte) main::i#0 main::@4/(byte) main::i#1 )
|
||||
(byte~) main::$0 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 1
|
||||
(byte~) main::$1 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 2
|
||||
(byte) sum::a#0 ← (byte) main::i#2
|
||||
(byte) sum::b#0 ← (byte~) main::$0
|
||||
(byte) sum::c#0 ← (byte~) main::$1
|
||||
call sum param-assignment
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@1
|
||||
(byte~) main::$2 ← (byte) sum::return#0
|
||||
*((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$2
|
||||
(byte~) main::$3 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 1
|
||||
(byte~) main::$4 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 2
|
||||
(byte) sum2::a#0 ← (byte) main::i#2
|
||||
(byte) sum2::b#0 ← (byte~) main::$3
|
||||
(byte) sum2::c#0 ← (byte~) main::$4
|
||||
call sum2 param-assignment
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
(byte~) main::$5 ← (byte) sum2::return#0
|
||||
*((byte*) SCREEN2#0 + (byte) main::i#2) ← (byte~) main::$5
|
||||
(byte) main::i#1 ← ++ (byte) main::i#2
|
||||
if((byte) main::i#1!=(byte/signed byte/word/signed word) 11) goto main::@1
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
sum: scope:[sum] from main::@1
|
||||
(byte~) sum::$0 ← (byte) sum::a#0 + (byte) sum::b#0
|
||||
(byte) sum::return#0 ← (byte~) sum::$0 + (byte) sum::c#0
|
||||
to:sum::@return
|
||||
sum::@return: scope:[sum] from sum
|
||||
return
|
||||
to:@return
|
||||
sum2: scope:[sum2] from main::@3
|
||||
(byte~) sum2::$0 ← (byte) sum2::a#0 + (byte) sum2::b#0
|
||||
(byte) sum2::return#0 ← (byte~) sum2::$0 + (byte) sum2::c#0
|
||||
to:sum2::@return
|
||||
sum2::@return: scope:[sum2] from sum2
|
||||
return
|
||||
to:@return
|
||||
@3: scope:[] from @begin
|
||||
call main param-assignment
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Constant (const byte*) SCREEN2#0 = ((byte*))$0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@3
|
||||
main: scope:[main] from @3
|
||||
@ -948,6 +1007,7 @@ Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
|
||||
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
|
||||
Inlining constant with var siblings (const byte) main::i#0
|
||||
Inlining constant with var siblings (const byte) main::i#0
|
||||
Constant inlined $0 = (word/signed word) 1024+(byte/signed byte/word/signed word) 40
|
||||
Constant inlined main::i#0 = (byte/signed byte/word/signed word) 0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
CONTROL FLOW GRAPH
|
||||
@ -1007,9 +1067,9 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 = (word/signed word) 1024+(byte/signed byte/word/signed word) 40
|
||||
(const byte*) SCREEN2#0 = ((byte*))(word/signed word) 1024+(byte/signed byte/word/signed word) 40
|
||||
(void()) main()
|
||||
(byte~) main::$0
|
||||
(byte~) main::$1
|
||||
@ -2081,9 +2141,9 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 SCREEN2 = (word/signed word) 1024+(byte/signed byte/word/signed word) 40
|
||||
(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word) 1024+(byte/signed byte/word/signed word) 40
|
||||
(void()) main()
|
||||
(byte~) main::$0 reg byte x 7.333333333333333
|
||||
(byte~) main::$1 reg byte a 7.333333333333333
|
||||
|
@ -2,9 +2,9 @@
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = (word/signed word) 1024
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 SCREEN2 = (word/signed word) 1024+(byte/signed byte/word/signed word) 40
|
||||
(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word) 1024+(byte/signed byte/word/signed word) 40
|
||||
(void()) main()
|
||||
(byte~) main::$0 reg byte x 7.333333333333333
|
||||
(byte~) main::$1 reg byte a 7.333333333333333
|
||||
|
@ -16,7 +16,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
[4] (byte) main::k#2 ← phi( main::@2/(byte/signed byte/word/signed word) 0 main::@3/(byte) main::k#1 ) [ main::j#6 main::i#4 main::k#2 ] ( main:0 [ main::j#6 main::i#4 main::k#2 ] )
|
||||
[5] (byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) main::i#4 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ] )
|
||||
[6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] )
|
||||
[6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] )
|
||||
[7] (byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] )
|
||||
[8] *((byte*) main::zpptr2#1) ← (byte) main::k#2 [ main::j#6 main::i#4 main::k#2 ] ( main:0 [ main::j#6 main::i#4 main::k#2 ] )
|
||||
[9] (byte) main::k#1 ← ++ (byte) main::k#2 [ main::j#6 main::i#4 main::k#1 ] ( main:0 [ main::j#6 main::i#4 main::k#1 ] )
|
||||
|
@ -23,7 +23,7 @@ main::@2:
|
||||
main::@3:
|
||||
(byte*~) main::$0 ← (byte*) main::zpptr + (byte) main::i
|
||||
(byte*) main::zpptr2 ← (byte*~) main::$0
|
||||
(word~) main::$1 ← _word_ (byte) main::j
|
||||
(word~) main::$1 ← ((word)) (byte) main::j
|
||||
(word) main::w ← (word~) main::$1
|
||||
(byte*~) main::$2 ← (byte*) main::zpptr2 + (word) main::w
|
||||
(byte*) main::zpptr2 ← (byte*~) main::$2
|
||||
@ -65,7 +65,7 @@ INITIAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte*) main::zpptr ← (word/signed word) 4096
|
||||
(byte*) main::zpptr ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -77,7 +77,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte*~) main::$0 ← (byte*) main::zpptr + (byte) main::i
|
||||
(byte*) main::zpptr2 ← (byte*~) main::$0
|
||||
(word~) main::$1 ← _word_ (byte) main::j
|
||||
(word~) main::$1 ← ((word)) (byte) main::j
|
||||
(word) main::w ← (word~) main::$1
|
||||
(byte*~) main::$2 ← (byte*) main::zpptr2 + (word) main::w
|
||||
(byte*) main::zpptr2 ← (byte*~) main::$2
|
||||
@ -111,7 +111,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from
|
||||
(byte*) main::zpptr ← (word/signed word) 4096
|
||||
(byte*) main::zpptr ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -123,7 +123,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte*~) main::$0 ← (byte*) main::zpptr + (byte) main::i
|
||||
(byte*) main::zpptr2 ← (byte*~) main::$0
|
||||
(word~) main::$1 ← _word_ (byte) main::j
|
||||
(word~) main::$1 ← ((word)) (byte) main::j
|
||||
(word) main::w ← (word~) main::$1
|
||||
(byte*~) main::$2 ← (byte*) main::zpptr2 + (word) main::w
|
||||
(byte*) main::zpptr2 ← (byte*~) main::$2
|
||||
@ -156,7 +156,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::zpptr ← (word/signed word) 4096
|
||||
(byte*) main::zpptr ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -168,7 +168,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte*~) main::$0 ← (byte*) main::zpptr + (byte) main::i
|
||||
(byte*) main::zpptr2 ← (byte*~) main::$0
|
||||
(word~) main::$1 ← _word_ (byte) main::j
|
||||
(word~) main::$1 ← ((word)) (byte) main::j
|
||||
(word) main::w ← (word~) main::$1
|
||||
(byte*~) main::$2 ← (byte*) main::zpptr2 + (word) main::w
|
||||
(byte*) main::zpptr2 ← (byte*~) main::$2
|
||||
@ -205,7 +205,7 @@ CONTROL FLOW GRAPH SSA
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::zpptr#0 ← (word/signed word) 4096
|
||||
(byte*) main::zpptr#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -226,7 +226,7 @@ main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte*) main::zpptr#1 ← phi( main::@2/(byte*) main::zpptr#2 main::@3/(byte*) main::zpptr#1 )
|
||||
(byte*~) main::$0 ← (byte*) main::zpptr#1 + (byte) main::i#2
|
||||
(byte*) main::zpptr2#0 ← (byte*~) main::$0
|
||||
(word~) main::$1 ← _word_ (byte) main::j#2
|
||||
(word~) main::$1 ← ((word)) (byte) main::j#2
|
||||
(word) main::w#0 ← (word~) main::$1
|
||||
(byte*~) main::$2 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
(byte*) main::zpptr2#1 ← (byte*~) main::$2
|
||||
@ -264,7 +264,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::zpptr#0 ← (word/signed word) 4096
|
||||
(byte*) main::zpptr#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -285,7 +285,7 @@ main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte*) main::zpptr#1 ← phi( main::@2/(byte*) main::zpptr#2 main::@3/(byte*) main::zpptr#1 )
|
||||
(byte*~) main::$0 ← (byte*) main::zpptr#1 + (byte) main::i#2
|
||||
(byte*) main::zpptr2#0 ← (byte*~) main::$0
|
||||
(word~) main::$1 ← _word_ (byte) main::j#2
|
||||
(word~) main::$1 ← ((word)) (byte) main::j#2
|
||||
(word) main::w#0 ← (word~) main::$1
|
||||
(byte*~) main::$2 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
(byte*) main::zpptr2#1 ← (byte*~) main::$2
|
||||
@ -374,7 +374,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::zpptr#0 ← (word/signed word) 4096
|
||||
(byte*) main::zpptr#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -395,7 +395,7 @@ main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte*) main::zpptr#1 ← phi( main::@2/(byte*) main::zpptr#2 main::@3/(byte*) main::zpptr#1 )
|
||||
(byte*~) main::$0 ← (byte*) main::zpptr#1 + (byte) main::i#2
|
||||
(byte*) main::zpptr2#0 ← (byte*~) main::$0
|
||||
(word~) main::$1 ← _word_ (byte) main::j#2
|
||||
(word~) main::$1 ← ((word)) (byte) main::j#2
|
||||
(word) main::w#0 ← (word~) main::$1
|
||||
(byte*~) main::$2 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
(byte*) main::zpptr2#1 ← (byte*~) main::$2
|
||||
@ -438,7 +438,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::zpptr#0 ← (word/signed word) 4096
|
||||
(byte*) main::zpptr#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -458,7 +458,7 @@ main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::i#2 ← phi( main::@2/(byte) main::i#4 main::@3/(byte) main::i#2 )
|
||||
(byte*) main::zpptr#1 ← phi( main::@2/(byte*) main::zpptr#2 main::@3/(byte*) main::zpptr#1 )
|
||||
(byte*) main::zpptr2#0 ← (byte*) main::zpptr#1 + (byte) main::i#2
|
||||
(word) main::w#0 ← _word_ (byte) main::j#2
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#2
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -491,7 +491,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::zpptr#0 ← (word/signed word) 4096
|
||||
(byte*) main::zpptr#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -511,7 +511,7 @@ main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::i#2 ← phi( main::@2/(byte) main::i#4 )
|
||||
(byte*) main::zpptr#1 ← phi( main::@2/(byte*) main::zpptr#2 )
|
||||
(byte*) main::zpptr2#0 ← (byte*) main::zpptr#1 + (byte) main::i#2
|
||||
(word) main::w#0 ← _word_ (byte) main::j#2
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#2
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -544,7 +544,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::zpptr#0 ← (word/signed word) 4096
|
||||
(byte*) main::zpptr#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -561,7 +561,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::k#2 ← phi( main::@2/(byte) main::k#0 main::@3/(byte) main::k#1 )
|
||||
(byte*) main::zpptr2#0 ← (byte*) main::zpptr#2 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#4
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#4
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -594,7 +594,7 @@ CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
to:@1
|
||||
main: scope:[main] from @1
|
||||
(byte*) main::zpptr#0 ← (word/signed word) 4096
|
||||
(byte*) main::zpptr#0 ← ((byte*)) (word/signed word) 4096
|
||||
(byte) main::j#0 ← (byte/signed byte/word/signed word) 0
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@5
|
||||
@ -611,7 +611,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::k#2 ← phi( main::@2/(byte) main::k#0 main::@3/(byte) main::k#1 )
|
||||
(byte*) main::zpptr2#0 ← (byte*) main::zpptr#2 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#4
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#4
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -633,7 +633,7 @@ main::@return: scope:[main] from main::@5
|
||||
to:@end
|
||||
@end: scope:[] from @1
|
||||
|
||||
Constant (const byte*) main::zpptr#0 = 4096
|
||||
Constant (const byte*) main::zpptr#0 = ((byte*))4096
|
||||
Constant (const byte) main::j#0 = 0
|
||||
Constant (const byte) main::i#0 = 0
|
||||
Constant (const byte) main::k#0 = 0
|
||||
@ -655,7 +655,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::k#2 ← phi( main::@2/(const byte) main::k#0 main::@3/(byte) main::k#1 )
|
||||
(byte*) main::zpptr2#0 ← (byte*) main::zpptr#2 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#4
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#4
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -697,7 +697,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::k#2 ← phi( main::@2/(const byte) main::k#0 main::@3/(byte) main::k#1 )
|
||||
(byte*) main::zpptr2#0 ← (byte*) main::zpptr#2 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#4
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#4
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -737,7 +737,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::k#2 ← phi( main::@2/(const byte) main::k#0 main::@3/(byte) main::k#1 )
|
||||
(byte*) main::zpptr2#0 ← (byte*) main::zpptr#3 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#6
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#6
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -776,7 +776,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::k#2 ← phi( main::@2/(const byte) main::k#0 main::@3/(byte) main::k#1 )
|
||||
(byte*) main::zpptr2#0 ← (byte*) main::zpptr#3 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#6
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#6
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -814,7 +814,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::k#2 ← phi( main::@2/(const byte) main::k#0 main::@3/(byte) main::k#1 )
|
||||
(byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#6
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#6
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -862,7 +862,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
(byte) main::k#2 ← phi( main::@2/(byte/signed byte/word/signed word) 0 main::@3/(byte) main::k#1 )
|
||||
(byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#6
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#6
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -907,7 +907,7 @@ FINAL SYMBOL TABLE
|
||||
(word) main::w
|
||||
(word) main::w#0
|
||||
(byte*) main::zpptr
|
||||
(const byte*) main::zpptr#0 = (word/signed word) 4096
|
||||
(const byte*) main::zpptr#0 = ((byte*))(word/signed word) 4096
|
||||
(byte*) main::zpptr2
|
||||
(byte*) main::zpptr2#0
|
||||
(byte*) main::zpptr2#1
|
||||
@ -935,7 +935,7 @@ main::@2: scope:[main] from main::@1 main::@8
|
||||
main::@3: scope:[main] from main::@2 main::@9
|
||||
(byte) main::k#2 ← phi( main::@2/(byte/signed byte/word/signed word) 0 main::@9/(byte~) main::k#3 )
|
||||
(byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) main::i#4
|
||||
(word) main::w#0 ← _word_ (byte) main::j#6
|
||||
(word) main::w#0 ← ((word)) (byte) main::j#6
|
||||
(byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0
|
||||
*((byte*) main::zpptr2#1) ← (byte) main::k#2
|
||||
(byte) main::k#1 ← ++ (byte) main::k#2
|
||||
@ -993,7 +993,7 @@ main::@2: scope:[main] from main::@1 main::@8
|
||||
main::@3: scope:[main] from main::@2 main::@9
|
||||
[4] (byte) main::k#2 ← phi( main::@2/(byte/signed byte/word/signed word) 0 main::@9/(byte~) main::k#3 ) [ main::j#6 main::i#4 main::k#2 ]
|
||||
[5] (byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) main::i#4 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ]
|
||||
[6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ]
|
||||
[6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ]
|
||||
[7] (byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ]
|
||||
[8] *((byte*) main::zpptr2#1) ← (byte) main::k#2 [ main::j#6 main::i#4 main::k#2 ]
|
||||
[9] (byte) main::k#1 ← ++ (byte) main::k#2 [ main::j#6 main::i#4 main::k#1 ]
|
||||
@ -1056,7 +1056,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
[4] (byte) main::k#2 ← phi( main::@2/(byte/signed byte/word/signed word) 0 main::@3/(byte) main::k#1 ) [ main::j#6 main::i#4 main::k#2 ]
|
||||
[5] (byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) main::i#4 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ]
|
||||
[6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ]
|
||||
[6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ]
|
||||
[7] (byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ]
|
||||
[8] *((byte*) main::zpptr2#1) ← (byte) main::k#2 [ main::j#6 main::i#4 main::k#2 ]
|
||||
[9] (byte) main::k#1 ← ++ (byte) main::k#2 [ main::j#6 main::i#4 main::k#1 ]
|
||||
@ -1093,7 +1093,7 @@ main::@2: scope:[main] from main::@1 main::@4
|
||||
main::@3: scope:[main] from main::@2 main::@3
|
||||
[4] (byte) main::k#2 ← phi( main::@2/(byte/signed byte/word/signed word) 0 main::@3/(byte) main::k#1 ) [ main::j#6 main::i#4 main::k#2 ] ( main:0 [ main::j#6 main::i#4 main::k#2 ] )
|
||||
[5] (byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) main::i#4 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ] )
|
||||
[6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] )
|
||||
[6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] )
|
||||
[7] (byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] )
|
||||
[8] *((byte*) main::zpptr2#1) ← (byte) main::k#2 [ main::j#6 main::i#4 main::k#2 ] ( main:0 [ main::j#6 main::i#4 main::k#2 ] )
|
||||
[9] (byte) main::k#1 ← ++ (byte) main::k#2 [ main::j#6 main::i#4 main::k#1 ] ( main:0 [ main::j#6 main::i#4 main::k#1 ] )
|
||||
@ -1254,7 +1254,7 @@ main: {
|
||||
lda #>zpptr
|
||||
adc #0
|
||||
sta zpptr2+1
|
||||
//SEG24 [6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
//SEG24 [6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
lda j
|
||||
sta w
|
||||
lda #0
|
||||
@ -1307,14 +1307,14 @@ Statement [5] (byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) ma
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::j#6 main::j#1 ]
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::i#4 main::i#1 ]
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ main::k#2 main::k#1 ]
|
||||
Statement [6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) always clobbers reg byte a
|
||||
Statement [6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) always clobbers reg byte a
|
||||
Statement [7] (byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] ) always clobbers reg byte a
|
||||
Statement [8] *((byte*) main::zpptr2#1) ← (byte) main::k#2 [ main::j#6 main::i#4 main::k#2 ] ( main:0 [ main::j#6 main::i#4 main::k#2 ] ) always clobbers reg byte a reg byte y
|
||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ main::j#6 main::j#1 ]
|
||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ main::i#4 main::i#1 ]
|
||||
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ main::k#2 main::k#1 ]
|
||||
Statement [5] (byte*) main::zpptr2#0 ← (const byte*) main::zpptr#0 + (byte) main::i#4 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 ] ) always clobbers reg byte a
|
||||
Statement [6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) always clobbers reg byte a
|
||||
Statement [6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) always clobbers reg byte a
|
||||
Statement [7] (byte*) main::zpptr2#1 ← (byte*) main::zpptr2#0 + (word) main::w#0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#1 ] ) always clobbers reg byte a
|
||||
Statement [8] *((byte*) main::zpptr2#1) ← (byte) main::k#2 [ main::j#6 main::i#4 main::k#2 ] ( main:0 [ main::j#6 main::i#4 main::k#2 ] ) always clobbers reg byte a reg byte y
|
||||
Potential registers zp ZP_BYTE:2 [ main::j#6 main::j#1 ] : zp ZP_BYTE:2 , reg byte x ,
|
||||
@ -1409,7 +1409,7 @@ main: {
|
||||
lda #>zpptr
|
||||
adc #0
|
||||
sta zpptr2+1
|
||||
//SEG24 [6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
//SEG24 [6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
lda j
|
||||
sta w
|
||||
lda #0
|
||||
@ -1520,7 +1520,7 @@ main: {
|
||||
lda #>zpptr
|
||||
adc #0
|
||||
sta zpptr2+1
|
||||
//SEG24 [6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
//SEG24 [6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
lda j
|
||||
sta w
|
||||
lda #0
|
||||
@ -1624,7 +1624,7 @@ main: {
|
||||
lda #>zpptr
|
||||
adc #0
|
||||
sta zpptr2+1
|
||||
//SEG24 [6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
//SEG24 [6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
lda j
|
||||
sta w
|
||||
lda #0
|
||||
@ -1719,7 +1719,7 @@ main: {
|
||||
lda #>zpptr
|
||||
adc #0
|
||||
sta zpptr2+1
|
||||
//SEG24 [6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
//SEG24 [6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
lda j
|
||||
sta w
|
||||
lda #0
|
||||
@ -1783,7 +1783,7 @@ FINAL SYMBOL TABLE
|
||||
(word) main::w
|
||||
(word) main::w#0 w zp ZP_WORD:6 2002.0
|
||||
(byte*) main::zpptr
|
||||
(const byte*) main::zpptr#0 zpptr = (word/signed word) 4096
|
||||
(const byte*) main::zpptr#0 zpptr = ((byte*))(word/signed word) 4096
|
||||
(byte*) main::zpptr2
|
||||
(byte*) main::zpptr2#0 zpptr2 zp ZP_PTR_BYTE:4 1001.0
|
||||
(byte*) main::zpptr2#1 zpptr2 zp ZP_PTR_BYTE:4 2002.0
|
||||
@ -1844,7 +1844,7 @@ main: {
|
||||
lda #>zpptr
|
||||
adc #0
|
||||
sta zpptr2+1
|
||||
//SEG24 [6] (word) main::w#0 ← _word_ (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
//SEG24 [6] (word) main::w#0 ← ((word)) (byte) main::j#6 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ( main:0 [ main::j#6 main::i#4 main::k#2 main::zpptr2#0 main::w#0 ] ) -- zpwo1=_word_zpby1
|
||||
lda j
|
||||
sta w
|
||||
lda #0
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user